在 v3.10.4 的文档中关于「xeCJKfntef」宏包有如下的表述:
xeCJK 包含有一个子宏包 xeCJKfntef,可以用它来实现汉字加点和可断行的下划线等。它是 CJKfntef 宏包在 XƎLATEX 下的替换版本,基本用法完全一致。
也有如下的表述:
在汉字下加点,可以和上述下划线命令嵌套使用。
这似乎容易令人以为「上述的六个命令任意嵌套均可以正确断行」,考虑下面的例子:
\listfiles
\documentclass{article}
\usepackage[LoadFandol]{xeCJK}
\usepackage{xeCJKfntef}
\usepackage{xcolor}
\usepackage[paperwidth=10cm]{geometry}
\pagestyle{empty}
\begin{document}
\setlength\parindent{0pt}
虚室生白,吉祥止止\CJKunderline{\CJKunderanyline*{0.5ex}{\color{magenta}\rule{2pt}{2.5ex}}{虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止}}虚室生白,吉祥止止
\bigskip
虚室生白,吉祥止止\CJKunderanyline*{0.5ex}{\color{magenta}\rule{2pt}{2.5ex}}{\CJKunderline{虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止}}虚室生白,吉祥止止
\bigskip
虚室生白,吉祥止止\CJKunderdot{\CJKunderline{虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止}}虚室生白,吉祥止止
\bigskip
虚室生白,吉祥止止\CJKunderline{\CJKunderdot{虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止}}虚室生白,吉祥止止
\end{document}
在旧版的 xeCJKfntef (v3.9.1)的表现为:
在新版的 xeCJKfntef (v3.10.4)的表现更为异常:
对于「上述的六个命令在任意嵌套是的断行行为」,xeCJKfntef提供的支持有多少呢?如果是feature,也许在文档中提及会更好。我没有检索到类似的 issues 。
Edit
爱比较人士前排围观,lua-ul由于有了Callback的功能就是强啊...
\documentclass{article}
\usepackage[fontset=fandol]{ctex}
\usepackage[paperheight=5cm,paperwidth=10cm]{geometry}
\usepackage{xcolor}
\usepackage{luacolor}
\usepackage[soul]{lua-ul}
\pagestyle{empty}
\begin{document}
虚室生白,吉祥止止\underLine[color=magenta]{虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止}虚室生白,吉祥止止
虚室生白,吉祥止止\hl{虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止}虚室生白,吉祥止止
虚室生白,吉祥止止\hl{虚室 hello 生白,吉祥 world \underLine[color=magenta]{止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止虚室生白,吉祥止止 虚室 hello 生白,吉祥 world 止止}虚室生白,吉祥止止}虚室生白,吉祥止止
\end{document}

在 v3.10.4 的文档中关于「xeCJKfntef」宏包有如下的表述:
也有如下的表述:
这似乎容易令人以为「上述的六个命令任意嵌套均可以正确断行」,考虑下面的例子:
在旧版的 xeCJKfntef (v3.9.1)的表现为:
在新版的 xeCJKfntef (v3.10.4)的表现更为异常:
对于「上述的六个命令在任意嵌套是的断行行为」,
xeCJKfntef提供的支持有多少呢?如果是feature,也许在文档中提及会更好。我没有检索到类似的 issues 。Edit
爱比较人士前排围观,
lua-ul由于有了Callback的功能就是强啊...