使用小写/全大写时,系统提示我调整字距。我发现\SetTracking
和。使用其中一个是否有优势?如果有,为什么?它们的作用完全相同吗microtype
?\so
soul
答案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 条命令。;-)