我正在使用该类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}