如何定义一种新的列类型,将列的内容(包含)提供给命令?

如何定义一种新的列类型,将列的内容(包含)提供给命令?

我正在使用包排版文档tipa,并且经常发生表格列中每个单元格的内容名义上是 IPA 并且需要括在\textipa{和之间的}情况。因此,我想定义一个将添加这些封闭字符串的列类型。

\newcolumntype我知道使用from 包array将此类单元格内容括在两个字符串之间的技巧,例如\newcolumntype{M}{>{$}p<{$}}提供数学模式 $。但如果要添加的字符串包含反斜杠或括号怎么办?

MNWE。在这里,\textipa消失了,我得到了文字括号。\backslash并且\arraybackslash无济于事。

    \documentclass[12pt,a4paper]{article}
    \usepackage{array} % for \newcolumntype
    \usepackage{tipa}
    \newcolumntype{I}{>{\textipa\{}c<{\}}}

    \begin{document}
    \begin{tabular}{I}
    lOrEm IpsUm
    \end{tabular}
    \end{document}

答案1

感谢 Ulrike Fischer 向我推荐这个答案,我现在发现下面的代码可以满足我的要求。(我添加了另外两列,以表明期望的效果不会超出它应该发生的一列。)请注意,命令中>跟在后面的括号表达式不包含用于包含参数的括号。<\newcolumntype\textipa

\documentclass[12pt,a4paper]{article}
\usepackage{array} % for \newcolumntype
\usepackage{collcell}
\usepackage{tipa}

\newcolumntype{I}{>{\collectcell\textipa}c<{\endcollectcell}}

\begin{document}
\begin{tabular}{lIl}
left&lOrEm IpsUm&right
\end{tabular}
\end{document}

相关内容