我有一张桌子
Rank ITML SDALF KISSME LDM LMNN
1 5.53 5.60 14.17 13.51 7.29
5 18.89 23.45 48.54 40.73 21.00
10 29.96 36.09 52.57 52.13 32.06
20 44.20 51.96 70.53 70.81 48.94
我想要的结果就像
具体来说,我需要
- 更改行名称以添加引用
- 排成一行大胆的风格
\midrule
在特定名称后面的一行中添加
在 中pgfplotstable
,可以使用其名称轻松引用列。但我找不到像列一样轻松自定义行样式的解决方案。我可以使用一些解决方案来按pgfplotstabletranspose
行制作表格,但第一列不被视为名称,而是字符串类型的数据列,结果如下图所示:
这样,该行就只能通过数字来引用。我可以像这样更改某一行的名称:
\pgfplotstabletranspose[string type, colnames from=Rank, input colnames to=Rank]\loadedtable{cuhk03-sota.txt}
\pgfplotstabletypeset[
string type,
every head row/.style={before row=\toprule, after row=\midrule},
every last row/.style={after row=\hline},
every row 0 column Rank/.style={/pgfplots/table/@cell content/.add={\relax}{\cite{davis2007information}},},
}{\loadedtable}
但这显然不是一个好办法。当我在中间添加一行时,下面的所有行号都必须更改!有没有好的方法来处理行名?
答案1
我不同意@JohnKormylo;) 问题不在于引用,而在于
· 破解head row
在某些列中添加单词“排名”的方法:
every head row/.style={
typeset cell/.code={%% add the word 'Rank'...
\ifnum\pgfplotstablecol=\pgfplotstablecols%
\pgfkeyssetvalue{/pgfplots/table/@cell content}{Rank ##1\\}%
\else%
\ifnum\pgfplotstablecol=1%
\pgfkeyssetvalue{/pgfplots/table/@cell content}{##1 &}%
\else%
\pgfkeyssetvalue{/pgfplots/table/@cell content}{Rank ##1 &}%
\fi\fi%
}%%
},
· 另一方面,引用可以简单地通过使用来添加biblatex/biber
,
我们必须使用匹配的参考书目,然后
display columns/0/.style={
postproc cell content/.style={@cell content={##1 \cite{##1} }}
},
(或者可能是另一个“引用来源”;取决于标签的来源)。
· 全部一起:
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ITML,
title = {Citation of ITML},
}
@book{SDALF,
title = {Citation of SDALF},
}
@book{KISSME,
title = {Citation of KISSME},
}
@book{LDM,
title = {Citation of LDM},
}
@book{LMNN,
title = {Citation of LMNN},
}
\end{filecontents}
\documentclass[border=5pt, varwidth]{standalone}
\usepackage{pgfplotstable}
\usepackage[style=numeric]{biblatex}
\addbibresource{\jobname.bib}
\usepackage[colorlinks=true, citecolor=purple, pdfborder={0 0 0}]{hyperref}
\begin{document}
\pgfplotstableread[header=true]{
Rank ITML SDALF KISSME LDM LMNN
1 5.53 5.60 14.17 13.51 7.29
5 18.89 23.45 48.54 40.73 21.00
10 29.96 36.09 52.57 52.13 32.06
20 44.20 51.96 70.53 70.81 48.94
}\Actual
\textbf{\Large Actual:} \pgfplotstabletypeset[string type]{\Actual}
\bigskip
\pgfplotstableset{string type,
column type={>{\bfseries}c}, % bfseries for head row (1/2)
postproc cell content/.append style={% normalfont for cells (2/2)
/pgfplots/table/@cell content/.add={\fontseries{\seriesdefault}\selectfont}{}
},
%
every head row/.style={
before row=\hline,
after row=\hline,
typeset cell/.code={%% add the word 'Rank'...
\ifnum\pgfplotstablecol=\pgfplotstablecols%
\pgfkeyssetvalue{/pgfplots/table/@cell content}{Rank ##1\\}%
\else%
\ifnum\pgfplotstablecol=1%
\pgfkeyssetvalue{/pgfplots/table/@cell content}{##1 &}%
\else%
\pgfkeyssetvalue{/pgfplots/table/@cell content}{Rank ##1 &}%
\fi\fi%
}%%
},
%
every last row/.style={
after row=\hline,
},
%
display columns/0/.style={% citations
postproc cell content/.style={@cell content={##1 \cite{##1} }},
column type=l,
},
}
\textbf{\Large Target:} \pgfplotstabletranspose[
colnames from=Rank,
input colnames to=Method,
]\Target{\Actual}
\pgfplotstabletypeset[]{\Target}
%\cite{ITML}
\printbibliography[title=Citations]
\end{document}