我正在使用包排版文档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}