我有一张包含一些数据的表格(右对齐),我想在表格底部为其中一条记录添加注释。但是,当我在记录旁边添加上标标记时,它会将值推到更左侧,导致右对齐丢失。
以下是 MWE:
\documentclass{article}
\usepackage{booktabs}
\usepackage{multicol}
\begin{document}
\begin{table}
\centering
\caption{Test table}
\begin{tabular}{lrrr} \toprule
col 1 & col 2 & col 3 & col 4\\ \midrule
%
test 1 & 2 & 3$^\dagger$ & 4\\
test 2 & 6 & 7 & 8\\
%
\bottomrule
\multicolumn{4}{l}{\footnotesize$^\dagger$Some note goes here.}
\end{tabular}
\end{table}
\end{document}
制作:
有没有办法强制它按列中的值对齐?我能想到的唯一方法是放置一个左对齐的额外列来放置标记,但我想检查是否有更好的方法来做到这一点。
答案1
我建议您加载该threeparttable
包并使用该包的\tnote
指令和threeparttable
环境tablenotes
。
\documentclass{article}
\usepackage{booktabs}
\usepackage[flushleft]{threeparttable}
\begin{document}
\begin{table}
\centering
\begin{threeparttable}
\caption{Test table}
\begin{tabular}{@{} lccc @{}}
\toprule
col 1 & col 2 & col 3 & col 4 \\
\midrule
test 1 & 2 & 3\tnote{$\dagger$} & 4 \\
test 2 & 6 & 7 & 8 \\
\bottomrule
\end{tabular}
\smallskip\footnotessize
\begin{tablenotes}
\item[$\dagger$] Some note goes here.
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
答案2
该软件包nicematrix
提供了一个带有自己的表格注释系统的环境{NiceTabular}
。用户可以使用命令插入表格注释,\tabularnote
就像在 中执行的操作一样\footnote
。
如果命令\tabularnote{...}
恰好位于单元格的末尾(后面没有任何空格),则注释的标签将以重叠位置(向右)组成。以下是一个例子:
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix}
\usepackage{enumitem}
\usepackage{caption}
\begin{document}
\NiceMatrixOptions{ notes = { code-before = \footnotesize } }
\begin{table}
\centering
\caption{Test table}
\begin{NiceTabular}{@{} lccc @{}}
\toprule
col 1 & col 2 & col 3 & col 4 \\
\midrule
test 1 & 2 & 3\tabularnote{First note.} & 4 \\
test 2 & 6\tabularnote{Second Note}& 7 & 8 \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
改变数字的样式很容易。例如,用 1、2、3…… 代替 a、b、c……,也就是\alph
用\arabic
。
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix}
\usepackage{enumitem}
\usepackage{caption}
\begin{document}
\NiceMatrixOptions{ notes = { code-before = \footnotesize , style = \arabic{#1} } }
\begin{table}
\centering
\caption{Test table}
\begin{NiceTabular}{@{} lccc @{}}
\toprule
col 1 & col 2 & col 3 & col 4 \\
\midrule
test 1 & 2 & 3\tabularnote{First note.} & 4 \\
test 2 & 6\tabularnote{Second Note}& 7 & 8 \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
但是,用 †、‡、¶... 替换 a、b、c... 稍微复杂一些:
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix}
\usepackage{enumitem}
\usepackage{caption}
\usepackage{ifthen}
\begin{document}
\NewDocumentCommand{\Symbol}{m}
{
\ifthenelse{\value{#1}=0}
{\relax}
{\ifthenelse{\value{#1}=1}
{$\dagger$}
{\ifthenelse{\value{#1}=2}
{$\ddagger$}
{\ifthenselse{\value{#1}=3}
{\P}
{}}}}}
\NiceMatrixOptions { notes = { code-before = \footnotesize , style = \Symbol{#1} } }
\begin{table}
\centering
\caption{Test table}
\begin{NiceTabular}{@{} lccc @{}}
\toprule
col 1 & col 2 & col 3 & col 4 \\
\midrule
test 1 & 2 & 3\tabularnote{First note.} & 4 \\
test 2 & 6\tabularnote{Second Note}& 7 & 8 \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}