
В моем документе Latex есть довольно большая таблица, и в тексте, сопровождающем таблицу, я хотел бы указать что-то вроде:
Как показано в столбце А Таблицы III, это ...
Я знаю, как сделать перекрестную ссылку на таблицу, но как сделать перекрестную ссылку на имя столбца? Причина, по которой я хочу это сделать, заключается в том, что имя столбца может измениться, и я не хочу искать в своем документе все случаи, где я использовал имя столбца.
Упрощенная версия моей таблицы выглядит так:
\begin{table}[htbp]
\caption{The caption}
\label{tbl:data}
\tiny
\begin{tabularx}{\columnwidth}{l X c c c c c}
\textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \# Changed &F\\
\hline
\multirow{4}{*}{X} & X1 & 1 & 2 & 3 & 4 & 5\\
& X2 & 6 & 7 & 8 & 9 &\\
& X3 & 10 & 11 & 12 & 13 & 14\\
& X4 & 15 & 16 & 17 & 18 & 19\\
\hline
\end{tabularx}
\end{table}
решение1
Это версия, которая будет работать с «любым» заголовком столбца, записывая в него фальшивую метку .aux
и ссылаясь на нее с помощью \nameref*
.
Если заголовок столбца — просто «чистый» A
и т. д., то лучше подойдет другой подход, основанный на счетчиках!
\documentclass{article}
\usepackage{tabularx}
\usepackage{multirow}
\newcommand{\columnheaddisplaystyle}[1]{%
\textbf{#1}%
}
\makeatletter
\newcommand{\labelthis}[2]{%
\columnheaddisplaystyle{#2}%
\immediate\write\@auxout{%
\string\newlabel{#1}{{}{}{#2}{}}
}%
}
\usepackage{hyperref}
\makeatletter
\begin{document}
\begin{table}[htbp]
\caption{The caption}
\label{tbl:data}
\tiny
\begin{tabularx}{\columnwidth}{l X c c c c c}
\labelthis{mycolumn}{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \# Changed &F\\
\hline
\multirow{4}{*}{X} & X1 & 1 & 2 & 3 & 4 & 5\\
& X2 & 6 & 7 & 8 & 9 &\\
& X3 & 10 & 11 & 12 & 13 & 14\\
& X4 & 15 & 16 & 17 & 18 & 19\\
\hline
\end{tabularx}
\end{table}
As presented in column \nameref*{mycolumn} in Table \ref{tbl:data}, it is ...
\end{document}