为什么`\textelp{}'括号后的空间比前面的多?

为什么`\textelp{}'括号后的空间比前面的多?

我注意到一些关于csquotes的问题\textelp,似乎以前没有人在这里问过。使用最少的 LaTeX 输入

\documentclass{article}
\usepackage{csquotes}
\begin{document}
Lorem ipsum \textelp{} sit amet
\end{document}

我得到这个输出:

This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/NixOS.org) (preloaded format=pdflatex 2021.2.2)  13 FEB 2021 12:20
entering extended mode
[...]
LaTeX2e <2020-10-01>
L3 programming layer <2020-10-05> xparse <2020-03-03>

pdfLaTeX 输出

括号内省略号右侧的空间比左侧的空间大(具体而言,在上面放大的图像中,右侧有 17 个像素,左侧有 13 个像素(即,右侧的空间大约 31%)。

在这个现实世界中,未缩放的不对称示例中,括号内的省略号右侧有 7 个像素,左侧有 5 个像素(即右侧的空间增加了 40%),从而使不对称更加明显:

pdfLaTeX 输出

\textelp我在的文档中没有看到这一点csquotes.pdf。这种不对称是预期的行为吗?如果是,为什么?如果不是,为什么会发生这种情况,以及(对我来说更重要的是)是否可以csquotes修复,或者我是否容易修补?

答案1

标准省略号保留了句号的空间因素,如果省略号结束一个句子,则是正确的,如果后面还有其他内容,则省略号无关紧要。

\textelp相反,命令不应该结束一个句子,所以\@应该添加。

在下面的例子中,句子结束句号后的额外空格被放大,以更好地显示发生的情况。

\documentclass{article}
\usepackage{csquotes}

\begin{document}

\xspaceskip=20pt % to make the spacing more evident

% this is the default definition
% \newcommand{\mktextelp}{[\textellipsis\unkern]}

Lorem ipsum \textelp{} sit amet

% the fix
\renewcommand{\mktextelp}{[\textellipsis\unkern]\@}

Lorem ipsum \textelp{} sit amet

\end{document}

在此处输入图片描述

\mktextelpins应该以同样的方式重新定义:

\renewcommand{\mktextelpins}[1]{[\textellipsis\unkern\@] [#1]}

相关内容