我如何才能限制句号周围非句号的空间(即,不结束句子)?
在我的论文中,我需要引用限定名称(例如A.x
)。目前,我将它们排版为\texttt{A.x}
。但是,这有时会在句号周围产生一些空格,例如在以下代码片段中:
我希望在分隔名称各部分的句点符号周围只留出一点点空间,但我能找到的所有内容都与数学模式下的间距有关。此外,我尝试暂时将 catcode 更改为.
11,如下所示:
\newcommand{\codename}[1]{
\begingroup
\catcode`.=11
\texttt{#1}
\endgroup
}
然后使用\codename{A.x}
。然而,这并没有帮助。
非常感谢您的帮助。
答案1
答案2
我认为 OP 的主要问题是他不喜欢将\texttt
点设置为与所有其他字符相同的宽度。
这里我使用一个标记循环来解决这个问题。我搜索 参数的每个标记\codename
。每当我找到 时.
,我就用 替换它\nobreak{\textrm{.}}\nobreak
。这意味着带有多个点的代码名称对于宏来说没有问题。
这将避免由于上下文而由点引入的间距,并且通过在 中设置点\textrm
,它将避免点的额外宽度,即使\codename
在 中设置了\texttt
。
\documentclass{article}
\usepackage{tokcycle}
\Characterdirective{\ifx.#1\addcytoks{\nobreak{\textrm{.}}\nobreak}\else
\addcytoks{#1}\fi}
\newcommand\codename[1]{\tokencyclexpress#1\endtokencyclexpress}
\begin{document}
Here is \codename{A.1} code name.
Code names such as \texttt{\codename{A.2.4}}, can contain multiple dots!
By setting the dots in textrm, extra spacing is avoided even if the
codename is set in texttt.
\end{document}