我希望更改 PDF 书签选项卡中显示的标题,以匹配我列出章节的格式。
\documentclass[]{report}
\usepackage[hidelinks]{hyperref} %to add hyperlinks throughout document
\usepackage{titlesec} %reformatting the chapter headings
\titleformat{\chapter}[block]
{\normalfont\LARGE\bfseries\centering}{CHAPTER \thechapter}{0em}{:\hspace{2mm}}
\begin{document}
\chapter{THE BEGINNING}
Hello.
\chapter{THE END}
Goodbye.
\end{document}
我目前拥有的是:
可以选择创建以下书签:
我希望我的书签看起来与章节标题的格式相同:
我发现我可以输入\pdfbookmark[0]{THE BEGINNING}{name1}
,但我需要删除创建的书签hyperref
(如果我有多个章节、节、小节等,并且必须使用此方法手动输入它们,那么这并不理想。)
我是否必须先更改\chapter{THE BEGINNING}
为\chapter{CHAPTER \thechapter: THE BEGINNING}
,然后再担心从标题和目录中删除“第 1 章:开始”的章节号?
更新:
我发现的最佳选择是: 如何删除章节编号但不将其从目录中删除
我可以使用代码
\newcommand{\mychapter}[2]{
\setcounter{chapter}{#1}
\setcounter{section}{0}
\chapter*{#2}
\addcontentsline{toc}{chapter}{#2}}
我使用 TeXMaker,我喜欢它提供的用于打开/组织子文件的结构(即使用\input{...}
)。为了尽可能保持井然有序,我采取了以下做法:
创建
.tex
标题为Chapter.1.THEBEGINNING
该子文件将包括
\mychapter{1}{CHAPTER \thechapter: THE BEGINNING}
我的主要文件将包括
\input{Chapter.1.THEBEGINNING}
效果已经足够好了……尽管仍在寻找更好的选择。
答案1
此示例提供了一个小的修改沃纳的解决方案。不是修补内部,而是在包的书签钩子中\Hy@writebookmark
重新定义:\numberline
addtohook
bookmark
\documentclass{report}
\usepackage{hyperref}
\usepackage{bookmark}
\bookmarksetup{numbered}
\usepackage{titlesec} %reformatting the chapter headings
\titleformat{\chapter}[block]
{\normalfont\LARGE\bfseries\centering}
{CHAPTER\thechapter: }{0em}{}
\makeatletter
\bookmarksetup{%
addtohook={%
\ifnum\toclevel@chapter=\bookmarkget{level}\relax
\renewcommand*{\numberline}[1]{CHAPTER #1: }%
\fi
},
}
\makeatother
\begin{document}
\tableofcontents
\chapter{THE BEGINNING}
Hello.
\section{A section}
\chapter{THE END}
Goodbye.
\end{document}
答案2
\numberline
您可以插入一个条件来改变处理 s 时函数的方式\chapter
:
\documentclass{report}
\PassOptionsToPackage{hyperref}{hidelinks}
\usepackage{bookmark,etoolbox}
\bookmarksetup{numbered}
\usepackage{titlesec} %reformatting the chapter headings
\titleformat{\chapter}[block]
{\normalfont\LARGE\bfseries\centering}{CHAPTER \thechapter:\hspace{2mm}}{0em}{}
\makeatletter
\patchcmd{\Hy@writebookmark}% <cmd>
{\let\chapternumberline\Hy@numberline}% <search>
{\ifx\Hy@toclevel\toclevel@chapter\def\numberline##1{CHAPTER ##1: }\fi}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\tableofcontents
\chapter{THE BEGINNING}
Hello.
\section{A section}
\chapter{THE END}
Goodbye.
\end{document}
默认值\numberline
(类似\Hy@numberline
用于hyperref
是设置数字后跟一个空格:
\def\numberline#1{#1 }
我刚刚打了补丁\Hy@writebookmark
来纠正你使用条件\numberline
处理的问题。补丁需要\chapter
\ifx\Hy@toclevel\toclevel@chapter
etoolbox
。它可以更新,为不同的部门单位/标题提供不同的前缀。