我在使用 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}