Я использую 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
отображается правильно, маленькими заглавными буквами.
(В самом документе я получаю другую ошибку, которая связана с microtype
использованием Minion Pro, но она также исчезает, если я удаляю 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}