在宏中使用标签

在宏中使用标签

我在使用 pgfplotstable 将列标题加粗(当然是在表格中)时遇到了问题。您可以看到问题这里 我找到了一种解决方法。它不像我希望的那样通用,但至少我知道有一种方法可以做到这一点。

我唯一要做的就是在创建表时向表中添加选项,就像这样:

\pgfplotstabletypeset
[columns/col1/.style{column name=\textbf{col1}},
columns/col2/.style{column name=\textbf{col2}},
columns/col3/.style{column name=\textbf{col3}},
columns/col4/.style{column name=\textbf{col4}},
columns/col5/.style{column name=\textbf{col5}}
]{
col1 & col2 & col3 & col4 & col5 \\
1st & at me & agam & at us & againn \\
2st & at you & agat & at you & agaibh \\
3st & at him & aige & at them & acu \\
& at her & aici & & \\
}

正如您所见,这不是最好的做事方式,尤其是当您刚接触 latex 并试图向人们介绍 latex 时,那些以前从未使用过 latex 的人。这就是为什么我想为所有这些选项创建一个宏,以便其他人只需将 \mymacro(column1name, column2name, ...) 添加到 \pgfplotstabletypeset 的一侧即可使一切变得更容易。

我尝试过这个:

\newcommand\mymacro[3]{    % 3 is just an example, I did \mymacroone .. two ..                    %etc in order to be able to apply the same concept in different situations
columns/#1/.style{column name=\textbf{#1}},
columns/#2/.style{column name=\textbf{#2}},
columns/#3/.style{column name=\textbf{#3}}
}

但这会产生一个错误,并且(水平模式下无法使用#) 无法编译。有谁知道更好的方法吗,或者我该如何修正表达式以使 iot 可编译?我尝试使用 {#}、#、{#}、##,但无法正确执行。

答案1

在此处输入图片描述

\documentclass[12pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}

\usepackage{pgfplotstable}
\usepackage{booktabs}
\def\tableborder{1.5pt}

% global settings
\pgfplotstableset{
    after row={\hline},
    every head row/.style={
        before row={
        \noalign{\hrule height 1.5pt}
        },
        after row={
            \hline
        },  
    },
    every last row/.style={
        after row=\noalign{\hrule height 1.5pt}
    },
    col sep = &,
    row sep=\\,
    % column type/.add={}{\vrule width \tableborder},
    every col no 1/.style={ column type/.add={|}{} },
    every col no 2/.style={ column type/.add={|}{} },
    every col no 3/.style={ column type/.add={|}{} },
    every col no 4/.style={ column type/.add={|}{} },
    every col no 5/.style={ column type/.add={|}{} },
    every first column/.style={
        column type/.add={!{\vrule width 1.5pt}}{}
    },
    every last column/.style={
        column type/.add={}{!{\vrule width 1.5pt}}
    },
    string type,
}


\newcommand\mymacro[5]{%
[columns/col1/.style={column name=\textbf{#1}},
columns/col2/.style={column name=\textbf{#2}},
columns/col3/.style={column name=\textbf{#3}},
columns/col4/.style={column name=\textbf{#4}},
columns/col5/.style={column name=\textbf{#5}}]}

\begin{document}


\expandafter\pgfplotstabletypeset\mymacro{red}{blue}{green}{yellow}{pink}
{
col1 & col2 & col3 & col4 & col5 \\
1st & at me & agam & at us & againn \\
2st & at you & agat & at you & agaibh \\
3st & at him & aige & at them & acu \\
& at her & aici & & \\
}
\end{document}

相关内容