我的目标
我最近开始使用这些ctex
类将我的一些英文文章转换成中文。关于行距,我希望实现以下目标:
- 正文应该有一个领导字体大小的 150%。
- 这里的 leading 指的是两个连续的拉丁字母基线之间的距离,它等于 CJK 字符的两个连续的表意字符基线之间的距离。另一方面,em-box 的大小由字体大小决定。
- 表格和图形的标题也应如此(以防标题很长)。
- 当然,还有脚注、引文、引语等等。
- 然而,我确实不是希望我的表格的行能够被拉伸,因为通常中文只出现在标题中,而表格内容只是数字。
- 我可以用来
\renewcommand{\arraystretch}{<factor>}%
伸展。
- 我可以用来
- 我还想避免拉伸显示的数学周围的垂直跳跃。
- 添加(2018 年 6 月 4 日):由于数学公式大多以拉丁文/希腊文书写,因此其行距应遵循英文排版规则,即 120%。
我的问题
我如何才能实现上述描述?我希望有一个解决方案可以让我设置正文、标题、脚注等的行距,分别地。
我为什么想要这个?
与英语排版不同,字体大小的前 120–145%建议,中文(或日文、韩文)通常需要 150–180% 的字体大小。这是因为 CJK 字形的侧轴承与拉丁语相比,中文需要更多的空间(报纸除外,报纸对中文的建议值为 125–133%)。
这是从根本上不同于丑陋的大学式要求. 普通的中文脚注应该行距比字体大小的 120% 略大一些。
另外,请注意我避免使用诸如、等术语single spacing
。1.5 spacing
我认为专业人士使用点大小来表示行距,或者至少使用它与字体大小的比例,而不是一些晦涩的<multiple> spacing
。
尝试 1
首先,我尝试\linespread{1.25}\selectfont
:
- 根据
ctex
文档的代码行 3747:,{ \dim_to_decimal:n { (#2) * \c_six / \c_five } }
初始行距设置为每一个对应的字体大小。150% 除以 120% 等于1.25
。
但这种传播一切!
与leading
包相同:它只是让我免于进行计算。在文档中\documentclass[zihao=-4]{ctexart}
,\normalsize
命令将字体大小设置为12bp
,因此我可以发出\leading{18bp}
。但由于内部\leading
使用\linespread
,这也会传播所有内容。
第二次尝试
然后我发现这个答案建议结合使用setspace
和caption
包:
% Preamble
%\usepackage{setspace}
\usepackage[nodisplayskipstretch]{setspace} % In my case
\setstretch{1.25} % 1.5/1.2 = 1.25
\usepackage{caption}
\captionsetup{font={stretch=1.25}}
涵盖了我的目标 1、2、4 和 5。对于脚注,我找到了这个问题在哪里
% Preamble
\let\oldfootnote\footnote
%\renewcommand{\footnote}[1]{\oldfootnote{\onehalfspacing #1}}
\renewcommand{\footnote}[1]{\oldfootnote{\setstretch{1.25} #1}} % In my case
是原帖作者建议的。这种方法效果很好,直到同一页出现第二个脚注。两个脚注块的间距不一致。我想我还必须进行调整,\footnotesep
以使脚注的间距均匀,但要调整多少呢?
- 根据
ctex
文档的代码行 3905:\dim_set:Nn \footnotesep { \dim_use:N \box_ht:N \strutbox }
并且\strutbox
默认高度为.7\baselineskip
。我猜\setlength{\footnotesep}{.875\baselineskip}
可以完成这项工作? - 已编辑(2018 年 6 月 2 日):设置脚注分隔时显然还有其他因素在起作用。请参阅下面的两个不同的 MWE。
最小工作示例
已编辑(2018 年 6 月 2 日):我太天真了,以为英文和中文输入的排版输出是相同的。以下英文/拉丁文 MWE 说明了这一点\footnotesep
需要增加:
\documentclass[zihao=-4,scheme=plain]{ctexart} % Do not use Chinese headings
\usepackage{blindtext} % Use Latin blind text, in case you don't have Chinese font.
\usepackage{booktabs}
\newcommand*{\bodytextlinespread}{1.25} % 1.5/1.2 = 1.25
\newcommand*{\captionlinespread} {1.25} % 1.5/1.2 = 1.25
\newcommand*{\footnotelinespread}{1.25} % 1.5/1.2 = 1.25
% Set body text line spacing without stretching displayed math.
\usepackage[nodisplayskipstretch]{setspace}
\setstretch{\bodytextlinespread}
% Patch caption line spacing.
\usepackage{caption}
\captionsetup{font={stretch=\captionlinespread}}
% Patch footnote line spacing.
\let\oldfootnote\footnote
\renewcommand{\footnote}[1]{%
\oldfootnote{\setstretch{\footnotelinespread} #1}}
% The mistakenly added space before #1 should have been dropped.
\begin{document}
\blindtext\footnote{\blindtext}
\[
e^{i \pi} + 1 = 0.
\]
Aha! Another footnote\footnote{\blindtext}.
\begin{table}[h]
\caption[Short caption]{A table with a really really really really
really really really really really really really really really
really really really long caption.}
\centering%
\begin{tabular}{c c}
\toprule
Chinese & Word \\
\midrule
$10$ & $20$ \\
$10$ & $20$ \\
\bottomrule
\end{tabular}
\end{table}
\blindtext
\begin{quote}
\blindtext
\end{quote}
\blindtext
\end{document}
但一位中国 MWE 建议\footnotesep
应该减少(差异很细微,但很明显):
\documentclass[zihao=-4]{ctexart} % Use Chinese headings
\usepackage{zhlipsum} % Use Chinese dummy text.
\usepackage{booktabs}
\newcommand*{\bodytextlinespread}{1.25} % 1.5/1.2 = 1.25
\newcommand*{\captionlinespread} {1.25} % 1.5/1.2 = 1.25
\newcommand*{\footnotelinespread}{1.25} % 1.5/1.2 = 1.25
% Set body text line spacing without stretching displayed math.
\usepackage[nodisplayskipstretch]{setspace}
\setstretch{\bodytextlinespread}
% Patch caption line spacing.
\usepackage{caption}
\captionsetup{font={stretch=\captionlinespread}}
% Patch footnote line spacing.
\let\oldfootnote\footnote
\renewcommand{\footnote}[1]{%
\oldfootnote{\setstretch{\footnotelinespread} #1}}
% The mistakenly added space before #1 should have been dropped.
\begin{document}
\zhlipsum*[1]\footnote{\zhlipsum*[2]}
\[
e^{i \pi} + 1 = 0.
\]
Aha! Another footnote\footnote{\zhlipsum*[3]}. \zhlipsum*[4]
\begin{table}[h]
\caption[Short caption]{A table with a really really really really
really really really really really really really really really
really really really long caption.}
\centering%
\begin{tabular}{c c}
\toprule
Chinese & Word \\
\midrule
$10$ & $20$ \\
$10$ & $20$ \\
\bottomrule
\end{tabular}
\end{table}
\zhlipsum*[5]
\begin{quote}
\zhlipsum*[6]
\end{quote}
\zhlipsum*[7]
\end{document}