我正在努力寻找解决方案,以便在使用 glossaries-extra 包的 \glsfmt* 命令时将报告文档的节标题更改为大写,并避免该命令也会影响标签的问题。我正在使用 secsty 包,我的设置的最小示例如下:
\documentclass[12pt,a4paper]{report}
\usepackage[%
toc=false,
sort=standard,
acronyms,
nopostdot,
nonumberlist,
nogroupskip
]{glossaries-extra}
\usepackage{sectsty}
\sectionfont{\normalsize\bfseries\MakeUppercase}
\subsectionfont{\normalsize\bfseries}
\subsubsectionfont{\normalsize\bfseries\itshape}
\newacronym{tt}{TT}{Test}
\begin{document}
\chapter{Test with \glsfmtshortpl{tt}}
\section{Test with \glsfmtshortpl{tt}}
\subsection{Test with}
\subsubsection{Test with}
\end{document}
在这里运行它时(使用 TeX Live 2019/Debian)我收到错误:
Package glossaries-extra Error: Glossary entry `TT' has not been defined.
我已经测试了该titlesec
软件包,并使用了软件包\MakeTextUppercase
中的命令textcase
,但错误仍然存在。我找到了一些解释其背后问题的答案,但据我所知,glossaries-extra 提供的专门用于节标题的新命令应该受到保护。这是正确的吗?还是我应该尝试修改 \gls* 命令以避免错误?或者,是否可以将节标题修改为大写以避免这种情况?
提前致谢!Iago
答案1
您的代码将通过添加\newacronym{tt}{TT}{Test}
章节/部分标题(而不使用 \tableofcontents
)来工作。
\documentclass[12pt,a4paper]{report}
\usepackage[%
toc=false,
sort=standard,
acronyms,
nopostdot,
nonumberlist,
nogroupskip
]{glossaries-extra}
\usepackage{sectsty}
\sectionfont{\normalsize\bfseries\MakeUppercase}
\subsectionfont{\normalsize\bfseries}
\subsubsectionfont{\normalsize\bfseries\itshape}
\begin{document}
\chapter{Test with \newacronym{tt}{TT}{Test}\glsfmtshortpl{tt}}
\section{Test with \newacronym{tt}{TT}{Test}\glsfmtshortpl{tt}}
\subsection{Test with 1}
\subsubsection{Test with 2}
\end{document}
如果你想要(可能)添加目录,你需要使用
\tableofcontents
\chapter[Test with TT]{Test with \newacronym{tt}{TT}{Test} \glsfmtshortpl{tt}}
\section[TEST WITH TTs]{Test with \newacronym{tt}{TT}{Test}\glsfmtshortpl{tt}}
否则,在处理 ToC 时您将收到“已定义”错误。
这通过使用来避免该问题\section[<text to Toc>]{<text of title>}
更新后续问题:使用hyperref
和 ToC
\documentclass[12pt,a4paper]{report}
\usepackage[%
toc=false,
sort=standard,
acronyms,
nopostdot,
nonumberlist,
nogroupskip
]{glossaries-extra}
\usepackage{sectsty}
\sectionfont{\normalsize\bfseries\MakeUppercase}
\subsectionfont{\normalsize\bfseries}
\subsubsectionfont{\normalsize\bfseries\itshape}
\usepackage{hyperref} % add last
\begin{document}
\tableofcontents
\chapter[Test with TTs]{Test with \newacronym{tt}{TT}{Test} \glsfmtshortpl{tt}}
\section[TEST WITH TTs]{Test with \newacronym{tt}{TT}{Test}\glsfmtshortpl{tt}}
\subsection{Test with 1}
\subsubsection{Test with 2}
\end{document}