MWE 是tstextbook
模板:
https://www.typesetters.se/latex-textbook-template/
\usepackage{hyperref}
在文件前言中插入tstextbook.tex
会导致如下错误消息:
./tstextbook.mtc1:1: Argument of \contentsline has an extra }
我理解错误的原因是因为hyperref
重新定义\contentsline
为采用四个参数而不是这里引用的三个参数:
目录中的 Hyperref 没有页码
如果我修改该文件tstextbook.mtc1
并使第一行等于以下内容:
{\reset@font\mtcSfont\mtc@string\contentsline{section}{\noexpand \leavevmode \numberline {1.1}First Section}{\reset@font\mtcSfont 2}{}}
...那么新的错误是
./tstextbook.mtc1:2: Argument of \contentsline has an extra }
因此解决方案似乎相当清楚,即需要插入额外的括号。但是,我仍然对文件.mtc
自动生成的方式/位置感到困惑。.mtc
自己手动更改文件并不是永久的解决方案,因为模板会以某种方式.mtc
自动创建文件。
如果您可以提供使用 tstextbook 模板并将目录超链接到文档中适当页面的工作解决方案,则可以获得加分,但是一旦解决了这里第一个关于包含包的问题,我很乐意稍后发布另一个后续问题。
答案1
为了能够编译,tstextbook.tex
我只做了以下更改来tstextbook.cls
替换两幅图像。
第 50 行 contents={\includegraphics[width=\paperwidth,height=\paperheight]{example-image-A}}}
第 353 行 \marginpar{\vspace{-3mm}\includegraphics[width=1.0cm]{example-image}}}
然后我添加了,在\begin{document}
基本hyperref
设置之前bookmark
\PassOptionsToPackage{hyphens}{url}
\usepackage[bookmarks=true,
pdfpagelabels=true %
]{hyperref}
\hypersetup{%
bookmarksnumbered=true,
bookmarksopen=true,
bookmarksopenlevel=3,
colorlinks,
breaklinks,
linkcolor=blue,
citecolor=blue,
urlcolor=green,
filecolor=black,
linktocpage=true,
}
\RequirePackage{bookmark} % more modern management for bookmarks en pdf
编译后,我发现超链接工作正常,指向主目录中的页面以及各章节的单独目录中的页面。(颜色蓝色)
还有 pdf 中的书签。
我没有对任何 mtc 文件进行任何更改。