有没有办法让 LaTeX 在表格环境中呈现制表符来确定列,以便不再需要与号 & ?
大多数情况下,列只包含一个单词,我已经在源代码中用制表符将它们对齐。因此,能够省去 & 会很方便。
答案1
当然可以,尽管我不建议在实践中使用它。原因是:您无法再清楚地分辨单元格的边界在哪里。但是,如果您是唯一编辑文档的人,您可以自由地做您想做的事情。
\documentclass{article}
\makeatletter
\begingroup
\catcode`\^^I=\active
\gdef^^I{\@ifnextchar^^I{}{&}}
\catcode`\^^M=\active
\gdef^^M{\\}%
\endgroup
\newenvironment{mytabular}[1]{%
\catcode`\^^I=\active
\catcode`\^^M=\active
\begin{tabular}{#1}%
}{%
\end{tabular}%
}
\makeatother
\begin{document}
% Note two tabs after b
\begin{mytabular}{lll}
a b c
x yyyyyyy z
\end{mytabular}
\end{document}
作为奖励,换行符会结束一行。如果您想要一个空单元格,请将{}
其内容替换。如果您想要将一行拆分为多个源代码行,请将其附加%
到这些行,但最后一行除外。
答案2
你可以做类似的事情
\newenvironment{tabbedtabular}[1]%
{\catcode9=4\begin{tabular}{#1}}%
{\end{tabular}\catcode9=10}
这会将 TAB 字符 (ASCII 9) 在环境之前放入类别 4 (对齐,默认情况下与 & 类似),之后再放回到类别 10 (空格)。
不过,我不确定这是否一定是个好主意 - 这会让您很难发现,例如,您是否意外地将两个对齐字符放在了一行中,或者将一个对齐字符放在了错误的位置。我相信如果这破坏了其他任何东西,其他比我更精通 TeXpertise 的人也会加入进来!