是否可以使用管道字符 | 来分隔表格中的单元格?

是否可以使用管道字符 | 来分隔表格中的单元格?

我想知道是否可以使用管道字符|而不是 来&分隔单元格。

像这样:

c1 | c2 | c3 \\
c4 | c5 | c6 \\

而不是这样:

c1 & c2 & c3 \\
c4 & c5 & c6 \\

答案1

如果你不将其|用于其他用途

\catcode`\|=4 

答案2

除了使用 (本质上脆弱的) catcode 技巧 (正如 David 所建议的) 之外,您还可以定义一个带有分隔参数的简单辅助宏:

\documentclass{scrartcl}
\usepackage{array}
\begin{document}

  \def\row#1|#2|#3\\{#1 & #2 & #3 \tabularnewline}
  \begin{tabular}{ccc}
    \row c1 | c2 | c3 \\
    \row c4 | c5 | c6 \\
  \end{tabular}
\end{document}

尽管\row每行开头的额外内容需要多输入一些,但它也为您带来了一些额外的灵活性:您现在可以轻松地重新排列、跳过或格式化列,只需改变\row:例如,\def\row#1|#2|#3\\{\textbf{#1} & & #3 \tabularnewline}将第一列设置为粗体,并且(可能暂时)跳过第二列。

答案3

这是使用该database模块的 ConTeXt 解决方案。其思路是定义一个分隔列表,使用竖线作为分隔符,使用表格宏作为分隔符。示例:

\usemodule [database]

\defineseparatedlist
  [Table]
  [separator=|,
   before=\bTABLE, after=\eTABLE,
   first=\bTR, last=\eTR,
   left=\bTD, right=\eTD]

\starttext
  \startTable
    alpha | beta   | gamma
    first | second | third
  \stopTable
\stoptext

结果

作为分隔符,可以使用字符串comma(默认)、、tab或,space或者任何字符,就像我在这里对竖线所做的那样。

由于可以配置宏、分隔符和引用,因此可以使用相同的技术来排版 CSV 数据。

相关内容