テーブル内の列名を相互参照するにはどうすればよいですか?

テーブル内の列名を相互参照するにはどうすればよいですか?

私の LaTeX ドキュメントには非常に大きな表があり、表に付随するテキストで次のようなことを述べたいと思います。

表 III の列 A に示されているように、...

テーブルを相互参照する方法はわかっていますが、列名を相互参照するにはどうすればよいでしょうか。列名が変更される可能性があり、列名を使用したすべてのインスタンスをドキュメントで検索したくないためです。

私の表の簡略版は次のようになります。

\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}

関連情報