如何将子表链接到表格

如何将子表链接到表格

这是为了回答这个问题. 另一方面,也许可以使用电子表格或更好的\href选项来改进它。

想法是首先创建一个包含子表的 PDF 文件。

\documentclass[multi=subtable]{standalone}
\usepackage{siunitx}
\usepackage{hyperref}

\newenvironment{subtable}[2]% #1 = target name, #2 = tabular columns
{\hypertarget{#1}\bgroup\begin{tabular}{#2}}% body goes here
{\end{tabular}\egroup}

\begin{document}

\begin{subtable}{first}{S|S}
\multicolumn{2}{c}{First}\\
{x} & {y}\\
\hline
1.0 & 3.2\\
1.5 & 2.9
\end{subtable}

\begin{subtable}{second}{S|S}
\multicolumn{2}{c}{Second}\\
{x} & {y}\\
\hline
1.0 & 3.2\\
1.5 & 2.9
\end{subtable}

\end{document}

然后使用\href将此文件 (test6.pdf) 链接到主文档。请注意使用\#添加锚点。

\documentclass{article}
\usepackage[colorlinks]{hyperref}

\begin{document}
\begin{table}
  \belowcaptionskip=\abovecaptionskip
  \abovecaptionskip=0pt
  \caption{Main Table - click entries}
  \centering
  \begin{tabular}{cc}
    &\href[pdfnewwindow]{test6.pdf\#first}{First} \\% note {first} is the target name
    \href[pdfnewwindow]{test6.pdf\#second}{Second}
  \end{tabular}
\end{table}
\end{document}

请注意,每个子表都会启动一个新的 PDF 查看器,因此您可以通过关闭页面来返回。

答案1

这是一个将所有子表放入附录的版本,仅使用\label\ref。 假设实际的子表会更大,并且可能每个子表都需要一整页。 选择 [hp] 是因为一页上可以容纳多少个 [p] 浮点数没有限制,但也希望在部分的第一页上有一些。

\documentclass{article}
\usepackage{siunitx}
\usepackage{subcaption}
\usepackage[colorlinks]{hyperref}

\DeclareCaptionLabelFormat{linked}{Subtable \ref{main}#2}

\begin{document}
\tableofcontents

\section{Table goes in main text}
\begin{table}[ht]
  \caption{Main Table}\label{main}
  \centering
  \begin{tabular}{cc}
    & See \ref{first}\\
    See \ref{second}&
  \end{tabular}
\end{table}

\clearpage
\appendix
\section[Subtables for Table \ref*{main}]{Subtables for Table \ref{main}}

\begingroup
  \renewcommand{\thetable}{\ref*{main}}%
  \renewcommand{\thesubtable}{.\arabic{subtable}}%
  \captionsetup[subtable]{labelformat=linked}%
  \setcounter{subtable}{0}% not automatic

\begin{table}[hp]
  \captionof{subtable}{}\label{first}
  \centering
  \begin{tabular}{S|S}
    {x} & {y}\\
    \hline
    1.0 & 3.2\\
    1.5 & 2.9
  \end{tabular}
\end{table}
\begin{table}[hp]
  \captionof{subtable}{}\label{second}
  \centering
  \begin{tabular}{S|S}
{x} & {y}\\
    \hline
    1.0 & 3.2\\
    1.5 & 2.9
  \end{tabular}
\end{table}
\endgroup% restore table subcaptions
\end{document}

相关内容