Tufte 图书可点击目录

Tufte 图书可点击目录

这是我第一次在这个网站上发帖,因此对于我所犯的任何错误我深表歉意。

我正在尝试使用文档类编写文档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 行

错误示例 1

插入的控制序列缺失。output.toc,第 1 行

错误示例 2

未定义控制序列。output.toc,第 4 行

错误示例 3

额外的 \endgroup。output.toc,第 52 行

错误示例 4

软件包 ifplatform 警告:shell 转义已被禁用,因此我只能检测 \ifwindows。

使用 overleaf 时似乎不会出现这些错误。不幸的是,对于这个项目,我必须使用大学提供的服务。

如果有更好的方法来显示错误,请告诉我。

相关内容