各个长表行的书签?

各个长表行的书签?

我有一个很长的表格,其中的各个部分可以通过以下方式在文档中访问解决方法。

但是,我想让它们显示为书签,但不知道怎么做。 hyperref 包有这个选项-

linktoc=none,section,page,all    % defines which part of an entry in the table of contents is made into a link

我想把类似的东西

\section*{}[First Part]
\label{firstpart}
\input{./firstpart}

但这会产生错误,可能是因为分段命令在表格或其他东西内不起作用。还有命令\listof{}{},但它适用于图形、表格、列表,我不确定如何正确使用它。

最小的工作事物:

\documentclass{article}
    \usepackage[table]{xcolor}
    \usepackage{
        amsmath,
        amsfonts,
        amssymb,
        mathtools,
        gensymb,
        microtype,
        float,
        graphicx,
        color,
        multirow,
        rotating,
        booktabs,
        mathtext,
        longtable,
        units,
        geometry,
        fullpage,
        multicol,
        }
    \usepackage[font=small, labelfont=sc]{caption}
    \usepackage[bookmarksopen,bookmarksopenlevel=3]{hyperref}
    % hyperref to individual longtable rows
    \newcounter{ltrow}
    \newcommand{\rowlabel}[1]{\refstepcounter{ltrow} \label{#1}}
% 
% 
%     
\begin{filecontents}{firstpart.tex}
& & & & & & foo \\ 
& & & & & &  \\ 
& & & & & &  \\ 
& & & & & &  \\ 
& & & & & &  \\ 
\end{filecontents}
%
\begin{filecontents}{secondpart.tex}
& & & & & & bar \\ 
& & & & & &  \\ 
& & & & & &  \\ 
& & & & & &  \\ 
& & & & & &  \\ 
\end{filecontents}
%
\begin{filecontents}{thirdpart.tex}
& & & & & & foobar \\ 
& & & & & &  \\ 
& & & & & &  \\ 
& & & & & &  \\ 
& & & & & &  \\ 
\end{filecontents}
% 
% 
% 
\begin{document}
%
\begin{center}
\footnotesize   
\fontfamily{pag}\selectfont
\hrule
\selectcolormodel{gray}
\rowcolors{2}{yellow}{white}
%   
\begin{longtable}{r| l l l l l | p{9cm}}
\caption{foo} \\
foo & foo & foo & foo & foo & foo & foo \\ \hline \hline
\endhead
\hline
\endfoot
%
\rowlabel{row:firstpart}
\input{firstpart} 
\rowlabel{row:secondpart}
\input{secondpart} 
\rowlabel{row:thirdpart}
\input{thirdpart} 
\end{longtable}
\label{tbl:try2}
foo is at \ref{row:firstpart} \\
bar is at \ref{row:secondpart} \\
foobar is at \ref{row:thirdpart} \\
\end{center}
\end{document}

答案1

一切\protect\section似乎都很好。当然,如果需要链接,还需要做更多工作。

\documentclass{article}

\usepackage{longtable}
\usepackage[bookmarksopen,bookmarksopenlevel=3]{hyperref}
\usepackage{bookmark}
\usepackage{blindtext}

\begin{filecontents}{firstpart.tex}
\blindtext[3]
\end{filecontents}

\begin{document}
\tableofcontents
\begin{longtable}{p{8cm}ll}
  \protect\section{Foo}\label{foo} & Foo & Stuff  \tabularnewline
  \input{firstpart} \tabularnewline
  \protect\section{Foobar}\label{foobar} & Foobar & Important stuff  \tabularnewline
  \input{firstpart} \tabularnewline
\end{longtable}

In \ref{foo} we have seen important stuff!

\end{document}

答案2

在每一行之前插入\pdfbookmark{<bookmark-name>}{<label-name>},我设法将相应的 .pdf 书签添加到它们。它们按预期工作,只有当命令放在正确的位置(否则它不会以正确的顺序出现)以及正确的标签时才有效。我无法让 level=0 或 1 选项工作,但我想所有好事都会在适当的时候发生。可能存在一种更复杂的方法来实现相同的目的,但目前这种方法有效。

相关内容