appendix
当与包一起使用时[ngerman]{babel}
更改appendixautorefname
或Appendixautorefname
没有效果。
错误信息No autoref name for 'Anhang' [...]
仍然存在。
我怎样才能让它工作?
提前致谢。
梅威瑟:
\documentclass{book}
\usepackage[titletoc]{appendix}
\usepackage[ngerman]{babel}
\addto\extrasngerman{%
\def\chapterautorefname{Kapitel}%
\def\appendixautorefname{Anhang}%
\def\Appendixautorefname{Anhang}%
}
\usepackage{hyperref}
\begin{document}
\chapter{a}\label{ch:a}
Reference to chapter: \autoref{ch:a}
Reference to appendix: \autoref{App}
\begin{appendices}
\chapter{Ein Anhang}\label{App}
\end{appendices}
\end{document}
PS:我已经在评论区问过这个问题了‘附录’没有自动引用名称但感觉为此提出一个新问题会更好。
答案1
\Appendixautorefname
不起作用的原因是tocloft
使用\appendixname
宏在这里创建锚点Anhang
,请参阅条目
\newlabel{App}{{A}{3}{Ein Anhang}{Anhang.a.A}{}}
在.aux
文件中。hyperref
正在寻找一个特殊\Anhangautorefname
命令,而不是\Appendixautorefname
。
\documentclass{book}
\usepackage[titletoc]{appendix}
\usepackage[ngerman]{babel}
\makeatletter
\addto\extrasngerman{%
\renewcommand{\chapterautorefname}{Kapitel}%
\renewcommand{\appendixautorefname}{\appendixname}%
\@ifundefined{Anhangautorefname}{%
\newcommand{\Anhangautorefname}{\appendixname}%
}{%
\renewcommand{\Anhangautorefname}{\appendixname}%
}
}
\makeatother
\usepackage{hyperref}
\begin{document}
\chapter{a}\label{ch:a}
Reference to chapter: \autoref{ch:a}
Reference to appendix: \autoref{App}
\begin{appendices}
\chapter{Ein Anhang}\label{App}
\end{appendices}
\end{document}