在表格标题中使用自己的命令时出现问题

在表格标题中使用自己的命令时出现问题

我创建了一个新命令,\newcommand如下所示:


\newcommand{\tC}[1]{@{\hspace{0.1em}}#1@{}}

反过来,我尝试使用这个新命令来创建表,如下所示:


\begin{table}[ht!]
    \centering
    \begin{tabular}{|\tC{l}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|\tC{c}|}
    {\small Tonalidad} & {\small 7 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$} & {\small 6 $\flat$}
    \end{tabular}
    \caption{Caption}
\end{table}

但是我收到以下错误:

 Package array Error: Illegal pream-token (\tC): `c' used.

附加信息:
我已经在 TeXworks 中测试了代码,并且它可以工作。我在分享Latex
提前感谢您的帮助。

答案1

表格列规范槽内的宏很棘手,只有 Black TeX Wizardry 才能起作用。

我建议使用一种新的列类型\newcolumntype,赋予它一个唯一的名称,f并在那里添加规范,例如该\small指令也可以在那里使用。

由于该类型有 15 列c*{15}{f{c}|}可用作短路解决方案。

\documentclass{article}

\usepackage{array}

\begin{document}

%\newcommand{\tC}[1]{@{\hspace{0.1em}}#1@{}}

\newcolumntype{f}[1]{@{\hspace{0.1em}}>{\small}#1@{}}

In turn I have tried to use this new command in the creation of tables as follows:


\begin{table}[ht!]
    \centering
    \begin{tabular}{|f{l}|*{15}{f{c}|}}
      Tonalidad &  7 $\flat$ & 6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$ &  6 $\flat$
    \end{tabular}
    \caption{Caption}
\end{table}
\end{document}

在此处输入图片描述

相关内容