-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ctex: 公式后接中文标点时,若字间距被挤压,可能出现多余空行(pdfLaTeX) #671
Comments
Windows + pdflatex => 使用的中文支持方式是 CJK 包。很可能是 CJK 包自身的问题,可以构建一个直接使用 CJK 包的例子,看一看。 |
我刚测了一下,似乎只用cjk宏没有问题。 \documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
这是一段文本\kern.5em这是一段文本这是一段文本这是一段文本这是一段文本 $abcde$。
这是一段文本\kern.5em这是一段文本这是一段文本这是一段文本这是一段文本 $abcde$.
这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本 $abcde$.
\hrule
\end{CJK*}
\end{document} |
问一下,您那边直接按我给的例子编译,有没有多空行? |
上面有人测试了你没看到吗 |
呃,本来的例子是数学公式被挤压,而现在的是字间距被拉伸而数学公式被调整到了另一行。 \documentclass{ctexart}
\begin{document}
这是一段文本这是一段文本这是一段文本这是一段文本这是一段 $abcde$。
这是一段文本这是一段文本这是一段文本这是一段文本这是一段 $abcde$.
这是一段文本这是一段文本这是一段文本这是一段文本这是一段 $abcde$
这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本。
\end{document} 试一试?(谢谢! |
|
可以在出问题的文档中、 \showboxdepth=1000 \showboxbreadth=1000 \showlists 运行后将log文件内容贴上来吗? |
我刚(并不)十分仔细地看了看 |
|
不出所料,空行应该是「标点挤压机制」造成的。 从最后一个自然段最后一行的末尾可以看到,「全角句号」前后分别插入了许多东西,既是用于标点挤压、也是用于实现「行末的全角句号只占半宽」。具体内容是:
当这一组东西出现在段落末尾时,TeX会先做一个 在第一个自然段的末尾,由于内容的自然宽度大于行长,所以内容里的glue被挤压收缩(看log是已经被挤压到极限了)。但此时,TeX找到了一处「合法断行点」,即是那个 所以得想办法去掉那对互斥的kern,让TeX的段末算法正常工作才行。 手动解决方案是在出现空行的那个自然段末尾,紧跟在全角标点后面连加两个 |
在 Windows 10 下,使用 pdfLaTeX 编译时,第一段后出现未预期的多余空行:
使用 XeLaTeX 或 LuaLaTeX 时,空行消失:
执行
pdfLaTeX -ver
的输出:默认页面大小为
b5paper
,CTeX 宏集版本为v2.5.10
。The text was updated successfully, but these errors were encountered: