这是我第一次在这个网站上发帖,因此对于我所犯的任何错误我深表歉意。
我正在尝试使用文档类编写文档tufte-book
。具体来说,我正在使用此处提供的 overleaf 模板https://www.overleaf.com/latex/templates/a-tufte-style-book-with-vdqi-title-and-contents-page/xqkjxvmrhmmp(这是背面页面的链接)。
我想使用此模板,因为它格式化目录 [TOC]。但是,我注意到目录不可点击。我知道该包hyperref
是迄今为止使目录可点击的推荐选择(如这篇文章所建议的那样如何制作可点击的目录?等等)。然而,遗憾的是,这个 overleaf 模板第 19-21 行的注释明确指出,不能使用 hyperref,否则目录的格式会崩溃。下面一行(第 22 行)如下所示\documentclass[nohyper,nobib]{tufte-book}
。
因此,我想问一下,是否有任何(合理可实现的)方法可以在tufte-book
不使用hyperref
包的类中创建可点击的目录(同时仍保持目录的这种格式)?或者,有没有一种方法可以让目录可点击,hyperref
同时避免类出现任何问题tufte-book
?
感谢您的时间和帮助!
编辑:包括示例
我意识到不包含一个简短的示例是不合理的。以下是我认为格式化标题页和目录所需的所有序言代码。(这完全是从 overleaf 模板复制粘贴的,删除了所有不必要的包/代码)。
%% Unfortunately for the contents to contain
%% the "Parts" lines successfully, hyperref
%% needs to be disabled.
\documentclass[nohyper,nobib]{tufte-book}
% Book metadata
\title{A Tufte-Style Book}
\date{The edition number}
\author[The Tufte-LaTeX Developers (with modifications)]{The Tufte-LaTeX\ Developers (with modifications)}
\publisher{Publisher of This Book}
%%%% Kevin Godny's code for title page and contents from https://groups.google.com/forum/#!topic/tufte-latex/ujdzrktC1BQ
\makeatletter
\renewcommand{\maketitlepage}{%
\begingroup%
\setlength{\parindent}{0pt}
{\fontsize{24}{24}\selectfont\textit{\@author}\par}
\vspace{1.75in}{\fontsize{36}{54}\selectfont\@title\par}
\vspace{0.5in}{\fontsize{14}{14}\selectfont\textsf{\smallcaps{\@date}}\par}
\vfill{\fontsize{14}{14}\selectfont\textit{\@publisher}\par}
\thispagestyle{empty}
\endgroup
}
\makeatother
\titlecontents{part}%
[0pt]% distance from left margin
{\addvspace{0.25\baselineskip}}% above (global formatting of entry)
{\allcaps{Part~\thecontentslabel}\allcaps}% before w/ label (label = ``Part I'')
{\allcaps{Part~\thecontentslabel}\allcaps}% before w/o label
{}% filler and page (leaders and page num)
[\vspace*{0.5\baselineskip}]% after
\titlecontents{chapter}%
[4em]% distance from left margin
{}% above (global formatting of entry)
{\contentslabel{2em}\textit}% before w/ label (label = ``Chapter 1'')
{\hspace{0em}\textit}% before w/o label
{\qquad\thecontentspage}% filler and page (leaders and page num)
[\vspace*{0.5\baselineskip}]% after
%%%% End additional code by Kevin Godby
文档主体的一个最小示例如下(我自己的代码)。
\begin{document}
%%% LAYOUT
\frontmatter
\maketitle
\tableofcontents
\cleardoublepage
\mainmatter
%%% PART 1
\part{Example 1}
\chapter{Ex 1 Ch 1}
Testing.
\chapter{Ex 1 Ch 2}
Testing.
%%% PART 2
\part{Example 2}
\chapter{Ex 2 Ch 1}
Testing.
\chapter{Ex 2 Ch 2}
Testing.
\end{document}
目录看起来会像这样,但同时不可点击。
将包添加hyperref
到序言中会导致许多编译错误。将上述序言示例中的第 4 行更改为也会导致\documentclass{tufte-book}
许多错误。(也许我应该注意到,仅删除第 4 行中的代码nobib
,使其变为\documentclass[nohyper]{tufte-book}
,不会导致任何错误。因此似乎nohyper
是必需的,但不是nobib
。)
EDIT2:显示错误
根据评论,这可能是编译器特定的问题。我正在使用一项大学服务,上面写着“由 ShareLatex 2016 提供支持”,看起来与 overleaf 几乎一模一样。(如果需要,请告诉我如何提供进一步的说明)。
从上面的代码中删除该nohyper
选项后,目录如下所示。
因此,指示第 I 部分和第 II 部分的行已更改。我应该注意到,章节(Ex 1 Ch1、Ex 2 Ch 2、...)变成了指向正确页面的可点击链接。但是,指示第 I 部分和第 II 部分的行不可点击。
一些错误是
未定义控制序列。output.toc,第 1 行
插入的控制序列缺失。output.toc,第 1 行
未定义控制序列。output.toc,第 4 行
额外的 \endgroup。output.toc,第 52 行
软件包 ifplatform 警告:shell 转义已被禁用,因此我只能检测 \ifwindows。
使用 overleaf 时似乎不会出现这些错误。不幸的是,对于这个项目,我必须使用大学提供的服务。
如果有更好的方法来显示错误,请告诉我。