Skip to content

Commit b95902e

Browse files
Merge pull request #654 from YDX-2147483647/setspace
fix: `H`与`htbp`型浮动体(表格、算法)内的行间距应当相同
2 parents 7a6a1d1 + 66b220b commit b95902e

File tree

3 files changed

+51
-8
lines changed

3 files changed

+51
-8
lines changed

bithesis.dtx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1623,10 +1623,6 @@
16231623
% preamble 中也不会有影响。
16241624
%
16251625
% 支持标准tabular、tabular*环境和宏包tabularx、longtable。
1626-
%
1627-
% 为保证各种表格效果一致,要先手动重置setspace宏包漏掉的longtable;
1628-
\AtBeginEnvironment {longtable} {\singlespacing}
1629-
% 之后再统一设置。
16301626
\clist_map_inline:nn
16311627
{tabular, tabular*, tabularx, longtable}
16321628
{
@@ -1774,7 +1770,7 @@
17741770
\AtBeginDocument {
17751771
% longtable 宏包有另外的机制,需专门调整
17761772
\@ifpackageloaded{longtable}{
1777-
\setlength{\LTpre}{0.60\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}
1773+
\setlength{\LTpre}{1.60\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}
17781774
\setlength{\LTpost}{1.60\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}
17791775
}{}
17801776
}
@@ -1801,7 +1797,7 @@
18011797
\AtBeginDocument {
18021798
% longtable 宏包有另外的机制,需专门调整
18031799
\@ifpackageloaded{longtable}{
1804-
\setlength{\LTpre}{-0.8\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}
1800+
\setlength{\LTpre}{0.2\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}
18051801
\setlength{\LTpost}{0.1\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}
18061802
}{}
18071803
}
@@ -1834,6 +1830,15 @@
18341830
}
18351831
% \end{macrocode}
18361832
%
1833+
% 为保证各种表格、算法效果一致,要手动重置 setspace 宏包漏掉的情况,具体包括 longtable 和任意 H 型浮动体。
1834+
% 由于浮动体的 H 很难检测,干脆统一设置。(H 未必由 float 宏包提供,例如 algorithm2e 的 H 就不是。)
1835+
% 未使用 |\singlespacing|,因为它会在 |\setstretch{1}| 基础上空一行,添加多余空白。
1836+
% \begin{macrocode}
1837+
\clist_map_inline:nn {longtable, table, algorithm} {
1838+
\AtBeginEnvironment {#1} { \setstretch{1} }
1839+
}
1840+
% \end{macrocode}
1841+
%
18371842
% 调整算法环境内部的字号。
18381843
%
18391844
% 学校无规定,但默认与正文相同,很怪。需要调小至与 caption 相同。

tests/algorithmic/main.tex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
% 孔乙己(1948年本)
1212
口口我從十二歲起,便在鎭口的咸亨酒店裏當夥計,掌櫃說,樣子太傻,怕侍候不了長衫主顧,就在外面做點事罷。外面的短衣主顧,雖然容易說話,但嘮嘮叨叨纏夾不清的也很不少。他們往往要親眼看着黃酒從罎子裏舀出,看過壺子底裏有水沒有,又親眼看將壺子放在熱水裏,然後放心:在這嚴重監督之下,羼水也很爲難。所以過了幾天,掌櫃又說我幹不了這事。
1313

14-
% H 的行距会比 h/t/b/p 大,应该是 algorithms 包的缺陷
15-
\begin{algorithm}[h]
14+
\begin{algorithm}[H]
1615
\caption{口口信号张量CPD算法} \label{algo:test}
1716
\begin{algorithmic}[1]
1817
\REQUIRE 口口带噪信号张量 $\hat{\mathcal{Y}}$,最大迭代次数$I_{\textrm{max}}$,收敛阈值 $\epsilon$

tests/float/main.tex

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
% 以下两个表格各行的间距应完全一致
2+
3+
\documentclass[type=bachelor]{bithesis}
4+
5+
\usepackage{float}
6+
7+
\begin{document}
8+
\frontmatter
9+
\mainmatter
10+
11+
\begin{table}[h]
12+
\centering
13+
\caption{h}
14+
\begin{tabular}{ccccc}
15+
\toprule
16+
U & V & X & Y & Z \\
17+
\midrule
18+
A & 1000 & 10000 & 500 & 50\% \\
19+
B & 5500 & 5000 & 220 & 22\% \\
20+
C & 1100 & 1000 & 280 & 28\% \\ \bottomrule
21+
\end{tabular}
22+
\end{table}
23+
24+
\clearpage
25+
26+
\begin{table}[H]
27+
\centering
28+
\caption{H}
29+
\begin{tabular}{ccccc}
30+
\toprule
31+
U & V & X & Y & Z \\
32+
\midrule
33+
A & 1000 & 10000 & 500 & 50\% \\
34+
B & 5500 & 5000 & 220 & 22\% \\
35+
C & 1100 & 1000 & 280 & 28\% \\ \bottomrule
36+
\end{tabular}
37+
\end{table}
38+
39+
\end{document}

0 commit comments

Comments
 (0)