有时我希望部分章节名称文本(以及子章节和任何进入目录的内容)显示出来,但它不是 pdflatex 和 htlatex 自动生成的链接的一部分。
这样,我可以在目录中注释一个部分名称,但不能通过 href 文本本身的一部分进行注释。
一个简单的例子会有所帮助。给出这个 .tex 文件,我将不想成为链接一部分的文本放在 \small{} 内,仅供说明。(我知道这是在 \section 中将字体变小的错误方法,但我现在不知道还有更好的方法)。
\documentclass[12pt,titlepage]{article}%
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{HW1 {\small{this hw was on subject x}}}
jdkfjdkfjdf
\section{HW2 {\small{this hw was on subject y but is also related to subject x}}}
\end{document}
我希望生成的目录看起来如下所示,我画了这个来显示我想要链接的名称部分。
但现在得出的结论是:
并从 pdflatex 作为
可以看到 \section 里面的整个文本都带下划线。
使用的命令:htlatex foo.tex
和pdflatex foo.tex
问题:制作目录时,是否有一个技巧或选项可以告诉 latex/pdflatex 不要在超链接中包含部分章节?
答案1
这是个建议。我不知道是否有任何缺点。
使用部分内的命令\notlinked
来放置超链接的末尾。
\documentclass[12pt,titlepage]{article}%
\usepackage{hyperref}
\makeatletter
\let\@notlinked\relax
\def\notlinked{\noexpand\@notlinked}
\def\contentsline#1#2#3#4{%
\begingroup
\Hy@safe@activestrue
\edef\x{\endgroup
\def\noexpand\Hy@tocdestname{#4}%
}\x
\ifx\Hy@tocdestname\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\ifcase\Hy@linktoc % none
\csname l@#1\endcsname{#2}{#3}%
\or % section
\csname l@#1\endcsname{%
\in@{\@notlinked}{#2}
\ifin@
\def\@notlinked{\egroup\hyper@linkend\bgroup}
\hyper@linkstart{link}{\Hy@tocdestname}\bgroup#2\egroup
\else
\hyper@linkstart{link}{\Hy@tocdestname}\bgroup#2\egroup\hyper@linkend
\fi
}{#3}%
\or % page
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{#2}{#3}%
\else
\csname l@#1\endcsname{{#2}}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\else % all
\def\Hy@temp{#3}%
\ifx\Hy@temp\ltx@empty
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{}%
\else
\csname l@#1\endcsname{%
\hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend
}{%
\hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend
}%
\fi
\fi
\fi
}
\begin{document}
\tableofcontents
\section{HW1\notlinked {\small{ this hw was on subject x}}}
jdkfjdkfjdf
\section{HW2\notlinked
{\small{ this hw was on subject y but is also related to subject x}}}
\end{document}
结果是: