有没有什么方法可以在 LaTeX 中实现与其他文字处理器中的制表符相同的效果?
- 与表格的不同之处在于,文本不仅限于单元格,还可以跨越边界。
- 我可以定义每个段落的制表符
它也应该适用于其他语言(从右到左和从左到右),就像这个问题一样:希伯来语与德语/英语并排翻译
答案1
您可以使用该tabbing
环境;下面是该环境使用的一些示例(该示例是西班牙语,但不太相关)以及其主要命令的简要说明:
\documentclass{article}
\begin{document}
\begin{tabbing}
Programa\quad \= : \= \TeX \\
Autor \> : \> Donald Knuth \\
Manuales \> : \\
\qquad\= The Advanced \TeX\ Book\quad\= David Salomon\quad\=
Springer-Verlag\kill \\
\>\textsf{T\a'itulo} \>\textsf{Autor} \>\textsf{Editorial}\\
\>The \TeX Book \>Donald Knuth \>Addison-Wesley\\
\>The Advanced \TeX\ Book \>David Salomon \>Springer-Verlag
\end{tabbing}
\begin{tabbing}
Fila 1 Columna 1\hspace{2cm}\= Fila 1 Columna 2 \\
\> Fila 2 Columna 2\hspace{1.8cm}\= Fila 2 Columna 3 \+\+ \\
Fila 3 Columna 3 \- \\
Fila 4 Columna 2 \> Fila 4 Columna 3 \\
\< Fila 5 Columna 1 \> Fila 5 Columna 2 \> Fila 5 Columna 3 \\
Fila 6 Columna 2 \> Fila 6 Columna 3 \- \\
Fila 7 Columna 1 \> Fila 7 Columna 2 \> Fila 7 Columna 3 \\
Fila 8 Columna 1 \' Derecha \\
Fila 9 Columna 1 \> y \' Fila 9 Columna 2 \\
\pushtabs
\quad\= Fila 10 Columna nueva 1\hspace{2.5cm}\= Fila 10
Columna nueva 2 \\
\> Fila 11 Columna nueva 2
\> Fila 11 Columna nueva 2 \\
\poptabs
Fila 12 Columna antig\"ua 1 \> Fila 12 Columna antig\"ua 2
\end{tabbing}
\end{document}
现在简要介绍一下这些命令:
\=
设置标签。\>
前进到下一个制表位。\<
\+
用在一行的开头,它会消除该行的效果。\+
在行尾使用时,它会导致所有后续行从第一个制表位开始;\+\+
在行尾使用时,后续行将从第二个制表位开始,依此类推。\-
用于行末,它会消除 的效果\+
。\'
导致以下文本被放置在下一个制表位处;前面的文本将被写入之前,并以长度控制分隔\tabbingsep
。\\
行尾;换行符。\kill
忽略前面的文字;仅用于间距。\pushtabs
删除当前的制表方案(之前已保存)以允许使用新的制表方案。\poptabs
它重新激活以前保存的制表方案。
在tabbing
环境中,命令\=
、 和\'
被重新定义;在该环境中,可以分别使用\a=
、 和来获取重音\a'
。
我不知道这是否适用于从右到左的语言。
答案2
这只是对用户 Gonzalo Medino 的答案的修改。要获得双向制表符,只需使用bidi
包并在文档上运行,而不是运行pdflatex
或:latex
xelatex
\documentclass{article}
\usepackage{bidi}
\begin{document}
\setRTL % to typeset tabbing in RTL mode
\begin{tabbing}
Programa\quad \= : \= \TeX \\
Autor \> : \> Donald Knuth \\
Manuales \> : \\
\qquad\= The Advanced \TeX\ Book\quad\= David Salomon\quad\=
Springer-Verlag\kill \\
\>\textsf{T\a'itulo} \>\textsf{Autor} \>\textsf{Editorial}\\
\>The \TeX Book \>Donald Knuth \>Addison-Wesley\\
\>The Advanced \TeX\ Book \>David Salomon \>Springer-Verlag
\end{tabbing}
\begin{tabbing}
Fila 1 Columna 1\hspace{2cm}\= Fila 1 Columna 2 \\
\> Fila 2 Columna 2\hspace{1.8cm}\= Fila 2 Columna 3 \+\+ \\
Fila 3 Columna 3 \- \\
Fila 4 Columna 2 \> Fila 4 Columna 3 \\
\< Fila 5 Columna 1 \> Fila 5 Columna 2 \> Fila 5 Columna 3 \\
Fila 6 Columna 2 \> Fila 6 Columna 3 \- \\
Fila 7 Columna 1 \> Fila 7 Columna 2 \> Fila 7 Columna 3 \\
Fila 8 Columna 1 \' Derecha \\
Fila 9 Columna 1 \> y \' Fila 9 Columna 2 \\
\pushtabs
\quad\= Fila 10 Columna nueva 1\hspace{2.5cm}\= Fila 10
Columna nueva 2 \\
\> Fila 11 Columna nueva 2
\> Fila 11 Columna nueva 2 \\
\poptabs
Fila 12 Columna antig\"ua 1 \> Fila 12 Columna antig\"ua 2
\end{tabbing}
\end{document}
如您所见,输出对于 RTL 来说是完美的:
即使您想使用tabu
包,该包也能与bidi
包完美配合。尝试:
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabu}
\usepackage{bidi}
\thispagestyle{empty}
\begin{document}
\setRTL % to typeset tabu environment in RTL mode
\taburulecolor |gray!50|{red}\arrayrulewidth=1pt
{
\taburulecolor|yellow|{blue}\tabulinesep=1mm
\begin{tabu}{|X|X|} \hline
Here the lines & are drawn in blue \\ \taburulecolor{green} \hline
But starting from here & they are green coloured ! \\ \hline
And now a nested \textsf{tabu} & \begin{tabu}{|X|} \firsthline\hline
guess what colour \\ \hline
is used for rules ?\\ \lasthline\hline
\end{tabu} \\ \hline
\end{tabu}
}
\end{document}
以下是完美的比迪烟禁忌: