![MakeUppercase 与 hyperref pdf 目录冲突](https://linux22.com/image/470953/MakeUppercase%20%E4%B8%8E%20hyperref%20pdf%20%E7%9B%AE%E5%BD%95%E5%86%B2%E7%AA%81.png)
联合使用MakeUppercase
,hyperref
并\addcontentsline
给我在pdf目录中带来一个小的意想不到的(但令人讨厌的)问题。
在以下(希望是)最小的工作示例中,我希望各节标题都采用大写。
实际 PDF 文件中的输出很好,但同一 PDF 的书签中大小写存在轻微问题。而且 LaTeX 在编译时会卡住。
\documentclass{article}
\usepackage{ifthen}
\usepackage{xspace}
\usepackage{hyperref}
\newboolean{hidesolution}
\setboolean{hidesolution}{true}
\makeatletter
\newcommand\secti@nstring{To be defined}
\newcommand{\problemsection}[1]{
\ifthenelse{\boolean{hidesolution}}{
\renewcommand{\secti@nstring}{Questions on #1\xspace}
}{
\renewcommand{\secti@nstring}{\MakeUppercase #1 (solutions)\xspace}
}
\section*{\secti@nstring}
\addcontentsline{toc}{section}{\secti@nstring}
}
\makeatother
\newcommand\solution[1]{\ifthenelse{\boolean{hidesolution}}{}{\texttt{#1}}}
\setcounter{tocdepth}2
\begin{document}
\begin{filecontents}[overwrite]{greatproblems.tex}
\problemsection{great typists}
\begin{enumerate}
\item
Who jumped over the lazy dog?
\\
\solution{The quick brown fox.}
\item
If violets are blue, what are roses?
\\
\solution{Red.}
\end{enumerate}
\end{filecontents}
\section{Solutions are invisible}
\input{greatproblems.tex}
\setboolean{hidesolution}{false}
\section{Solutions are now visible}
\input{greatproblems.tex}
\tableofcontents
\end{document}
有什么方法可以解决这个问题?(除了在章节标题中间硬连一个难看的大写字母。)