Soul 与 Microtype 的追踪对比

Soul 与 Microtype 的追踪对比

使用小写/全大写时,系统提示我调整字距。我发现\SetTracking和。使用其中一个是否有优势?如果有,为什么?它们的作用完全相同吗microtype\sosoul

答案1

让我们用以下输入做一个实验:

\documentclass{article}
\usepackage{lmodern}
\usepackage{soul}
\usepackage{microtype}

\begin{document}

\scshape\textls{x} % this for not spoiling the test

\tracingcommands=1
\wlog{^^J========================^^J}

\so{Some spaced out text}

\wlog{^^J========================^^J}

\textls{Some spaced out text}

\wlog{^^J========================^^J}
\tracingcommands=0
\end{document}

在日志文件中,的命令列表从\so第 137 行开始,到第 4694 行结束,而的命令列表从\textls第 4698 行开始,到第 4827 行结束。第一个\textls命令只是为了避免使用字体初始化产生的不相关命令破坏测试。

不同之处在于\so必须进行大量的装箱和拆箱操作,而microtype的跟踪则在字体级别进行。该\so命令还必须对允许的标记进行许多检查,并且不接受文本中的任何宏,因此有时必须借助\soulregister

对于相同的文本,我毫不犹豫地选择执行 4500+ 条命令和 129 条命令。;-)

相关内容