Closed woct0rdho closed 8 months ago
Duplicate of https://github.com/CTeX-org/ctex-kit/issues/456
好的,我可以给我们生成的tex文件写个后处理的脚本来自动加上\nobreak
。不过为什么用了ctexart
就可以避免这个问题呢?
ctex 宏包/文档类默认修改了很多东西,对你的例子最有影响的应该是 scheme=chinese
会把正文字号设成五号字(10.5bp)和设置 \parindent
为两个汉字宽度。以下使用 scheme=plain
的 ctex 例子,能复现问题(指,得到和你发的截图一样的断行位置)。
% !TeX program = xelatex
\documentclass{article}
\usepackage[fontset=fandol, scheme=plain]{ctex}
%\usepackage{xeCJK}
\begin{document}
壹二三四五六七八九十贰二三四五六七八九十叁二三四五六七八九十肆一…”
\end{document}
PS: 总是可以用 \showbox
和 \showoutput
来查看某个盒子、整个文档在输出时的差异。
看样子在合适的字号和字数下就会出现这个问题,我先用\nobreak
来解决吧。
检查
编译环境
操作系统
TeX 发行版
描述问题
单独使用
xeCJK
而不用ctexart
时,如果一行末尾附近有一个省略号和一个右引号,可能导致右引号出现在行首。两个省略号和一个右引号也是一样。使用
ctexart
时没有发现这个问题。但我在做一些以英文为主的排版,感觉单独使用xeCJK
比较方便。最小工作示例(MWE)
用 XeLaTeX 编译后,日志文件输出:
PDF显示:![scrshot](https://github.com/CTeX-org/forum/assets/23053399/6ea4c999-ce8d-44d8-8e07-adbf631a6c53)
我还做了这些尝试
按照 #298 尝试修改
LongPunct
和MiddlePunct
,没有解决问题。