From 4fefdc988414566518978f3528b192a06433f11e Mon Sep 17 00:00:00 2001 From: "Y.D.X." <73375426+YDX-2147483647@users.noreply.github.com> Date: Wed, 22 May 2024 15:00:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=AE=A9=E7=A1=95=E5=8D=9A?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=B9=A6=E8=84=8A=E4=B8=8A=E4=B8=8B=E5=B1=85?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=B9=B6=E9=80=82=E5=BA=94=E9=95=BF=E6=A0=87?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E9=81=BF=E5=85=8D=E4=B8=8E=E5=A7=93=E5=90=8D?= =?UTF-8?q?=E7=B2=98=E8=BF=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves #505 具体修改如下。 - `\vskip` → `\newgeometry` + `\restoregeometry` 原来的`\vskip`没生效(删掉后编译结果相同),而且需要从上边距开始算。干脆改边距好了。 - `center`环境 → `\centering` lshort-zh-cn:`center`等环境会在上下文产生一个额外间距,而`\centering`等命令不产生,只是改变对齐方式。 - `minipage`环境的对齐方式 `t` → `c` 这样遇到超长标题时,可以向两边溢出。 - `\vfill` → `\par` + `\vpace` `\vspace`可以设置间距最小值,避免标题稍长就和姓名学校粘在一起。 另外,`\vfill`会直接生效,而`\vspace`不会,所以要加`\par`。 --- bithesis.dtx | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/bithesis.dtx b/bithesis.dtx index a6f47ac..79fb739 100644 --- a/bithesis.dtx +++ b/bithesis.dtx @@ -1916,24 +1916,23 @@ \cleardoublepage \currentpdfbookmark{书脊}{frontmatter:paperback} \begin{titlepage} - \vskip 5cm - \begin{center} + \centering + % 实现竖排——将水平宽度设得很窄,让文字自动换行,并改小行距 \linespread{1.1}\selectfont - \begin{minipage}[t][19.7cm]{2em} - \begin{center} - { - \heiti\zihao{3} - \tl_if_blank:VTF \l_@@_value_vertical_title_tl - {\l_@@_value_title_tl}{\l_@@_value_vertical_title_tl} - } - \vfill - {\heiti\zihao{3}\@@_secret_info:nn{\l_@@_value_author_tl}{\g_@@_const_substitute_symbol_tl\quad\g_@@_const_substitute_symbol_tl\quad\g_@@_const_substitute_symbol_tl}} - \vfill - {\heiti\zihao{3}\c_@@_label_university_tl} - \end{center} + \begin{minipage}[c][19.7cm]{2em} + \centering + { + \heiti\zihao{3} + \tl_if_blank:VTF \l_@@_value_vertical_title_tl + {\l_@@_value_title_tl}{\l_@@_value_vertical_title_tl} + } + \par + \vspace{1em plus 1fill} + {\heiti\zihao{3}\@@_secret_info:nn{\l_@@_value_author_tl}{\g_@@_const_substitute_symbol_tl\quad\g_@@_const_substitute_symbol_tl\quad\g_@@_const_substitute_symbol_tl}} + \par + \vspace{1em plus 1fill} + {\heiti\zihao{3}\c_@@_label_university_tl} \end{minipage} - \end{center} - % \vskip 5cm \end{titlepage} } % \end{macrocode} @@ -2612,9 +2611,20 @@ % \begin{macrocode} \NewDocumentCommand \MakePaperBack {} { + % 上下各留出规定的边距,到下一页再恢复。 + % 若标题超长,自然会向上下溢出。 + % + % 必须在顶层操作,不然影响不确定。 + % https://tex.stackexchange.com/q/718581 + % + % 单纯`\newgeometry`再`\restoregeometry`相当于仅仅`\clearpage`,也无问题。 + \newgeometry{ + vmargin = 5cm, + } \begin{blindPeerReview}[\l_@@_cover_hide_cover_in_peer_review_bool] \make_paper_back: \end{blindPeerReview} + \restoregeometry } % \end{macrocode} % \end{macro}