Tab 不是额外的对齐标签

Tab 不是额外的对齐标签

有没有办法让 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 的人也会加入进来!

相关内容