付録ラベルは小文字とハイパーリファレンスで表記

付録ラベルは小文字とハイパーリファレンスで表記

私はbookクラスを使用しており、付録ラベル (文字) をどこでも小文字の大文字にしたいと考えています。特に、\refとによって生成されるラベルに小文字の大文字を使用します。 コマンドの後に\autorefを再定義する (または、コマンドのプリアンブルにパッチを適用する) ことでこれを実行しようとしましたが、 を使用すると定理の見出しでエラーが発生します。\thechapter\appendixhyperref

例は次のとおりです。

\documentclass{book}
\usepackage{amsthm}
\theoremstyle{plain}
\newtheorem{Theorem}{Theorem}[chapter]
\usepackage{hyperref}

\begin{document}
    \appendix
    \renewcommand{\thechapter}{\textsc{\alph{chapter}}}
    \chapter{An appendix}
    \section{First section in the appendix} \label{sec:first}
    We refer to \ref{sec:first}.
    \begin{Theorem}[A theorem] Theorem text. \end{Theorem}
\end{document}

コンパイルされませんが、削除するとhyperref機能し、生成されたラベルは\ref小文字で正しく表示されます。

(実際のドキュメントでは、 Minion Pro を使用すると と に関連する別のエラーが発生しますが、 を削除してに再定義するmicrotypeと、このエラーも消えます。)hyperref\autoref\ref

\refこれを変更する他の方法はありますか? 実際のドキュメントでは、ラベルがすでに小文字になっているため、との出力にのみ小文字を適用するソリューションで\autoref問題ありません。(セクションや定理の見出しなど)

答え1

非標準的な方法にもかかわらず:\textscは展開不可能なコマンドなので、 と組み合わせると壊れますhyperref。展開可能な形式は\scshape(小文字の大文字の形) です。

しかし、実際の問題は、\chapterなどが章の見出しタイトルなどを表示するために\section使用されていることです\bfseries。標準フォントには太字のスモールキャップスバージョンがないため、これはスモールキャップスとして表示されません。そのため、 の代わりに\thesection\sectionが表示されます。aA

私の意見では、ここ\alphを置き換えるべきです\Alph!

ただし、特に小文字は数字よりも小さいsmallcapsため、ここではこれをまったくお勧めしません。A

\documentclass{book}
\usepackage{amsthm}
\theoremstyle{plain}
\newtheorem{Theorem}{Theorem}[chapter]
\usepackage[bookmarksopen=true,bookmarksnumbered]{hyperref}

\begin{document}
\tableofcontents
\chapter{Main matter chapter}
\appendix
\renewcommand{\thechapter}{{\scshape \alph{chapter}}}

\chapter{An appendix}
\section{First section in the appendix} \label{sec:first}
We refer to \ref{sec:first}.
\begin{Theorem}[A theorem] Theorem text. \end{Theorem}
\end{document}

ここに画像の説明を入力してください

関連情報