如何使用 hyperref 包和模板 tstextbook

如何使用 hyperref 包和模板 tstextbook

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 中的书签。

A

b

我没有对任何 mtc 文件进行任何更改。

相关内容