我想突出显示除附录、图表目录和表格目录之外的所有章节。我使用 -package bookmark
,并尝试将所有条目设置为level = 0
粗体,并关闭 LoF 等的粗体,但关闭粗体似乎没有效果。
\documentclass[listof=totoc]{scrreprt}
\usepackage{bookmark}
\bookmarksetup{
open,
addtohook={%
\ifnum\bookmarkget{level}=0 %
\bookmarksetup{bold}%
\fi
},
}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{mwe}
\begin{document}
\pdfbookmark[0]{Content}{toc}
\tableofcontents
\bookmarksetupnext{bold=false}
\listoffigures
\newpage
\chapter{Chapter 1}
\lipsum[1]
\begin{figure}[h]
\includegraphics[width=\textwidth]{example-image-a}
\caption{I am a figure\label{fig:one}}
\end{figure}
\section{Section 1}
\lipsum[1]
\begin{figure}[h]
\includegraphics[width=\textwidth]{example-image-a}
\caption{I am a figure\label{fig:one}}
\end{figure}
\bookmarksetupnext{bold=false}
\appendix
\addtocontents{toc}{\protect\contentsline {chapter}{Appendix}{}{}}
\chapter{App 1}
\lipsum[1]
\end{document}
答案1
您可以提供在钩子中使用的附加切换(或条件)。下面我定义了\ifboldPDFchapters
您可以根据需要进行切换,并将条件添加到钩子中:
\usepackage{bookmark}
\newif\ifboldPDFchapters
\bookmarksetup{
open,
addtohook={%
\ifnum\bookmarkget{level}=0 %
\ifboldPDFchapters
\bookmarksetup{bold}%
\fi
\fi
}
}
添加\boldPDFchapterstrue
到您的文档将确保以下所有 0 级元素将被设置在大胆的.\boldPDFchaptersfalse
将删除此设置。
\documentclass[listof=totoc]{scrreprt}
\usepackage{bookmark}
\newif\ifboldPDFchapters
\bookmarksetup{
open,
addtohook={%
\ifnum\bookmarkget{level}=0 %
\ifboldPDFchapters
\bookmarksetup{bold}%
\fi
\fi
}
}
\begin{document}
\boldPDFchapterstrue
\pdfbookmark[0]{Content}{toc}
\tableofcontents
\boldPDFchaptersfalse
\listoffigures
\boldPDFchapterstrue
\chapter{Chapter 1}
\begin{figure} \caption{I am a figure} \end{figure}
\section{Section 1}
\begin{figure} \caption{I am a figure} \end{figure}
\boldPDFchaptersfalse
\appendix
\addtocontents{toc}{\protect\contentsline {chapter}{Appendix}{}{}}
\chapter{App 1}
\end{document}
可以将这些设置作为文档命令本身的一部分:
\newif\ifboldPDFchapters
\boldPDFchapterstrue% All chapter (level 0) bookmarks are BOLD
\bookmarksetup{
open,
addtohook={%
\ifnum\bookmarkget{level}=0 %
\ifboldPDFchapters
\bookmarksetup{bold}%
\fi
\fi
}
}
\let\oldtableofcontents\tableofcontents
% ToC bookmark is BOLD
\renewcommand{\tableofcontents}{{\boldPDFchapterstrue\oldtableofcontents}}
\let\oldlistoffigures\listoffigures
% LoF bookmark is NOT BOLD
\renewcommand{\listoffigures}{{\boldPDFchaptersfalse\oldlistoffigures}}
% Appendix onward has chapter bookmarks NOT BOLD
\let\oldappendix\appendix
\renewcommand{\appendix}{\oldappendix\boldPDFchaptersfalse}
这使您可以按原样设置文档,而无需使用任何开关或临时/中间文档更改。
答案2
addtohook
使用和 的想法是正确的\bookmarksetupnext
。但是,bold=false
会\bookmarksetupnext
被钩子覆盖。因此\bookmarksetupnext
还必须使用钩子:
\documentclass[listof=totoc]{scrreprt}
\usepackage{bookmark}
\bookmarksetup{
open,
addtohook={%
\ifnum\bookmarkget{level}=0 %
\bookmarksetup{bold}%
\fi
},
}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{mwe}
\begin{document}
\pdfbookmark[0]{Content}{toc}
\tableofcontents
\bookmarksetupnext{addtohook=\bookmarksetup{bold=false}}
\listoffigures
\newpage
\chapter{Chapter 1}
\lipsum[1]
\begin{figure}[h]
\includegraphics[width=\textwidth]{example-image-a}
\caption{I am a figure\label{fig:one}}
\end{figure}
\section{Section 1}
\lipsum[1]
\begin{figure}[h]
\includegraphics[width=\textwidth]{example-image-a}
\caption{I am a figure\label{fig:two}}
\end{figure}
\bookmarksetupnext{addtohook=\bookmarksetup{bold=false}}
\appendix
\addtocontents{toc}{\protect\contentsline {chapter}{Appendix}{}{}}
\chapter{App 1}
\lipsum[1]
\end{document}