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