排版双倍空格的最简单方法

排版双倍空格的最简单方法

我有一个非常简单的问题。

有时我需要在字母或单词之间加两个空格,如下所示:

a a    %this is a single space
a  a   %this is a double space

我希望双倍空格看起来就像单倍空格*2。实现此目的的最简单方法是什么?

目前我正在做的是

a\ \ a

但我觉得这不是实现我目标的干净方法

答案1

双倍空格的概念定义得非常模糊,如果你试图用它来向读者表达任何含义,那将是非常令人困惑的。TeX 不是打字机,空格没有固定的长度,它们会拉伸和收缩以调整单词以帮助换行,因此在源代码中,单词之间只有一个空格,而紧行和松行之间的空格可能相差两倍。现代计算机中 10pt 的单词间距是

\glue 3.33333 plus 1.66666 minus 1.11111 

因此介于 2.2pt 和 5pt 之间。

因此,紧密线上的双倍空格比松散线上的单倍空格要小。

答案2

您可以使用双波浪线~~来获得两个空格。但也许\enskip也可以提供帮助,或者您可以定义一个命令,例如\ds(用于双倍空格),以便在将来想要更改双倍空格的宽度时可以灵活使用。

TeX 中的空格

\documentclass{article}

\newcommand{\ds}{~~}

\begin{document}
H H (normal Space)

H~~H (doubled Space with \verb+~~+, double Tilde)

H\ds H (doubled Space with userdefined \verb+\ds+)

H\enskip H (\verb+\enskip+)

H\quad H (\verb+\quad+)

H\qquad H (\verb+\qquad+)

H\hspace{5em} H (certain space with \verb+\hspace+)
\end{document}

如果您仅在特殊列表中需要此功能,则可以定义一个以列表为参数的命令。我过去常常使用xparse逐字参数(类型v)来定义命令,因为\newcommmand将解析参数并截断空格,然后\obeyspaces才能完成其工作。

\documentclass{article}

\usepackage{xparse}
\NewDocumentCommand{ \letterlist }{ v }
 {%
  {\obeyspaces#1}%
 }

\begin{document}
            A B  C   D E      F

\letterlist{A B  C   D E      F}
\end{document}

使用 \obeyspaces

但图像显示单空格和双空格很容易混淆,因此可以考虑使用其他符号来分隔列表……

相关内容