diff --git a/bithesis-doc.tex b/bithesis-doc.tex index b51267dd..393c11fc 100644 --- a/bithesis-doc.tex +++ b/bithesis-doc.tex @@ -1236,7 +1236,7 @@ \subsubsection{其他配置} 在 Windows 和 MacOS 中,该字体已经安装;在 Linux 中需要用户自行安装(如果你是 WSL 用户,可参照\ref{sec:word-fonts}直接使用 Windows 下的字体)。 \end{function} -\begin{function}[added=2023-04-22]{misc/tabularFontSize} +\begin{function}[added=2023-04-22, updated=2024-05-13]{misc/tabularFontSize} \begin{bitsyntax}[emph={[1]tabularFontSize}] tabularFontSize = (*(5)|其他字号*) \end{bitsyntax} @@ -1248,6 +1248,8 @@ \subsubsection{其他配置} 如果你需要临时调整表格中的字号,可以使用 |\BITSetup| 命令 在局部范围内覆盖此选项(注意使用大括号)。 + 此选项影响的“表格”具体包括标准 |tabular|、|tabular*| 环境,以及 |tabularx| 和 |longtable| 宏包提供的环境。 + \begin{latex} { \BITSetup{ misc / tabularFontSize = -4} @@ -1332,7 +1334,7 @@ \subsubsection{其他配置} \end{function} -\begin{function}[added=2024-04-30]{misc/tabularRowSeparation} +\begin{function}[added=2024-04-30, updated=2024-05-13]{misc/tabularRowSeparation} \begin{bitsyntax}[emph={[1]tabularRowSeparation}] tabularRowSeparation = (*(1)|\marg{正实数}*) \end{bitsyntax} @@ -1343,6 +1345,8 @@ \subsubsection{其他配置} 学校没有明文规定,不过设为1.25更接近本科Word模板实作,设为1.6更接近硕博Word模板实作。 + 此选项影响的“表格”具体包括标准 |tabular|、|tabular*| 环境,以及 |tabularx| 宏包提供的环境。并不影响 |longtable| 宏包提供的环境,因为宏包已经调节了。 + \textit{请在导言区使用此选项。} \end{function} diff --git a/bithesis.dtx b/bithesis.dtx index 17114c06..a6f47ac3 100644 --- a/bithesis.dtx +++ b/bithesis.dtx @@ -1461,6 +1461,8 @@ {\hspace{.5em}\titlerule*{.}\contentspage} % \end{macrocode} % +% \subsubsection{定义样式相关函数} +% % \begin{macro}{\frontmatter} % 定义前置内容的页面样式。 % \begin{macrocode} @@ -1481,7 +1483,7 @@ \linespread{1.53}\selectfont \pagestyle{BIThesis} - % 表格内容默认使用五号字。 + % 调整表格内容字号(默认五号)和各行之间的距离。 % % 由于这种方式会影响所有的表格, % 所以我们尽可能延迟这种影响。 @@ -1489,9 +1491,23 @@ % 不过,在目前的代码实现中没有在封面 % 之类的地方使用表格,所以目前即使放在 % preamble 中也不会有影响。 - \AtBeginEnvironment{tabular}{\zihao{\l_@@_misc_tabular_font_size_tl}} - \AtBeginEnvironment{tabular*}{\zihao{\l_@@_misc_tabular_font_size_tl}} - \AtBeginEnvironment{tabularx}{\zihao{\l_@@_misc_tabular_font_size_tl}} + % + % 支持标准tabular、tabular*环境和宏包tabularx、longtable。 + \clist_map_inline:nn + {tabular, tabular*, tabularx, longtable} + { + \AtBeginEnvironment {##1} { + % 字号只想设置表格内容,不想影响caption。 + % 一般caption在环境之外,自然不受影响; + % 而longtable的caption虽在环境内,但caption宏包能正常处理。 + \zihao{\l_@@_misc_tabular_font_size_tl} + % 各行间距只想影响表格,不想影响矩阵,因此也必须在钩子中设置。 + % 另外,longtable宏包已经调节了空隙,我们就不重复调节了。 + \str_if_eq:nnF {##1} {longtable} { + \cs_set:Npn \arraystretch {\l_@@_misc_tabular_row_separation_tl} + } + } + } } % \end{macrocode} % \end{macro} @@ -1632,8 +1648,6 @@ % 调整浮动体与文字之间的距离 \addtolength{\intextsep}{\l_@@_misc_float_separation_tl\baselineskip} \addtolength{\textfloatsep}{\l_@@_misc_float_separation_tl\baselineskip} - % 调整表格各行之间的距离 - \cs_set:Npn \arraystretch {\l_@@_misc_tabular_row_separation_tl} } % \end{macrocode} % \end{macro}