Microtype
在字母间距文本的开头和结尾添加额外的空格,通过\SetTracking
命令的“外部间距”选项进行配置。不幸的是,xspace
这破坏了这一点。例如,我为首字母缩略词定义了一些宏:
\newcommand{\foo}[0]{\textsc{foo}\xspace}
现在,排版文本“bar \foo bar”的结果变得不平衡:“FOO”之前的空间比之后的空间大。有人知道解决这个问题的好办法吗?
以下文档添加了大量外部空格以更清楚地说明问题:
\documentclass{report}
\usepackage[tracking]{microtype}
\SetTracking
[outer spacing={2000*,,}]
{encoding=*, shape={sc,scit}}
{100}
\usepackage{xspace}
\newcommand{\foo}[0]{\textsc{foo}\xspace}
\begin{document}
bar \foo bar
bar \textsc{foo} bar
\end{document}
这将打印
"bar foo bar"
在第一段中,
"bar foo bar"
在第二。
答案1
除了使用,您还可以使用在定义中\xspace
终止的技巧:slash
\documentclass{report}
\usepackage[tracking]{microtype}
\SetTracking
[outer spacing={2000*,,}]
{encoding=*, shape={sc,scit}}
{100}
\newcommand{\newfoo}{}% In case `\newfoo` is defined
\def\newfoo/{\textsc{newfoo}}
\begin{document}
bar \textsc{foo} bar
bar \newfoo/ bar
\end{document}
答案2
此问题已修复微型v2.5a(仅仅十一个月后...)。