MakeUppercase 与 hyperref pdf 目录冲突

MakeUppercase 与 hyperref pdf 目录冲突

联合使用MakeUppercasehyperref\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}

有什么方法可以解决这个问题?(除了在章节标题中间硬连一个难看的大写字母。)

相关内容