我有一个很长的表格,其中的各个部分可以通过以下方式在文档中访问这解决方法。
但是,我想让它们显示为书签,但不知道怎么做。 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 选项工作,但我想所有好事都会在适当的时候发生。可能存在一种更复杂的方法来实现相同的目的,但目前这种方法有效。