如何在LaTeX中设置空格后的制表位?

10

我正在尝试在LaTeX的tabbing环境中设置制表位。我的问题是,我想在多个空格之后设置一个制表位。问题是LaTeX会忽略多个空格,并且似乎只支持在实际文本之后设置制表位。

我想要做的是格式化下面的箭头,使它们对齐。

A   -> B
CD  -> A 
BDD -> F

问题在于箭头左侧字符后面的额外空格在设置制表位时被忽略了。有什么解决方法吗?


不清楚。您是否想将空格的含义替换为制表符?您是否想将一对(三个,...)空格的含义替换为制表符命令?->是什么?它是 $\to$ 吗?为什么在 A 后面多一个空格会有问题?难道您不想忽略多个空格吗? - Alexey Malistov
好的,如果在“A”后面放置一个制表符,则它会直接放置在“A”的后面,而我想要做的是放置一个制表符,它恰好位于左侧最右字符位置之后。我已经扩展了示例,这样清楚了吗? - nedned
也许你应该使用\halign\begin{tabular}...\end{tabular}或类似的东西来代替tabbing - Alexey Malistov
4个回答

19

tabbing环境可以设置制表位并相应地定位文本;它可用于模拟简单的表格。

第一行中的\=设置一个制表位,\>则在第二行及以下向下移动到下一个制表位。

请注意,tabbing不会扩展制表位,因此您需要确保它们彼此之间放置足够宽。例如,我在第一行的 A后面放了一些不可断空格:

\begin{tabbing}
A~~~~ \= $\to$ \= B \\
CD \> $\to$ \> A \\
BDD \> $\to$ \> F \\
\end{tabbing}

结果看起来像:

result screenshot

使用表格(如tabular)通常更容易,但tabbing允许重新定义制表符点,因此可以用于模拟缩进的文本,例如源代码。

另请参阅:LaTeX:tabbing


这正是我所想要的解决方案。虽然使用Charles Stewart建议的\hskip命令可能更加简洁。我接受了这个答案,因为它解释了如何在制表环境中使其工作。 - nedned

11

如果你想在数学模式下使用此功能,需在导言区中加入\usepackage{amsmath}并尝试使用以下代码:

\begin{align*}
  A &\to B \\
  CD &\to A
\end{align*}

这个符号"&"是不可见的,而且彼此对齐,所以箭头会排成一行。

这也可以在文本模式下作为表格完成(无需使用amsmath包):

\begin{tabular}{r @{$\to$} l}
  A & B \\
  CD & A
\end{tabular}

在列规范中使用@表达式,可以使用任何你喜欢的符号分隔列 -- 在这种情况下是箭头 -- 从而使该符号在行之间对齐。


8

使用{\hskip 4em}来指定四个字体宽度的空格,或者其他空格。在Latex中有许多预定义的空格字符,例如\qquad代表\hskip2em

以这种方式指定的\hskip空格是不灵活的,也就是说,Tex不会改变空格的数量,但是您可以使用类似{\hskip 3em plus 1em minus 1em}的东西,用于尝试使空格长度为3ems,但可以拉伸或缩短到2ems和4ems之间。


1
在我看来,你回答了一个不同的问题。 - Alexey Malistov
1
@Alexey:不是的。Latex的tabbing环境将在使用hskip生成的空格后设置制表位,因此本答案提供了解决问题的信息。 - Charles Stewart
1
是的,这确实回答了问题,事实上我认为这是比我接受的那个解决方案更优雅的解决方案。但考虑到那个解决方案在选项卡环境中的所有操作都有一个很好的描述,对于着陆在此页面的人来说更有用一些。 - nedned
这是最好的答案,尽管我通常更喜欢使用\hspace: https://tex.stackexchange.com/questions/126200/when-should-you-use-vskip-hskip-rather-than-vspace-hspace-in-a-latex-doc - Alan

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接