我遵循了@NicolaTalbot 给出的建议(顺便感谢你创建了出色的词汇表包!)使用词汇表包对缩写进行连字避免缩写使用连字符。
但是我有一个例子,其中缩写仍然中断,因为如果您使用命令\gls
并glossaries
选择它是否应该采用长格式或短格式,则\acronymfont
不会使用。
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[]{glossaries}
\renewcommand*{\acronymfont}[1]{\mbox{#1}}
\newacronym[sort=BayHStA]{BayHStA}{BayHStA}{Bayerisches Hauptstaatsarchiv}
\begin{document}
\gls{BayHStA} and this is to show us that \gls{BayHStA} can break, even though it has been put into a mbox.
\end{document}
然而,可以应用基于@Georg 想法的修改解决方案并导致预期的行为:
\newcommand{\nonbreakableacronym}[4][]{\hyphenation{#3}\newacronym[#1]{#2}{#3}{#4}}
\nonbreakableacronym[sort=BayHStA]{BayHStA}{BayHStA}{Bayerisches Hauptstaatsarchiv}
但我喜欢 Nicolas 版本的简洁性,仅使用另一个字体命令就可以实现类似的效果glossaries
吗?
添加
当您想要应用该方法时,还有一个额外的问题。那就是,它\hyphenation
不喜欢以句号结尾的单词。原因如下:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[]{glossaries}
\renewcommand*{\acronymfont}[1]{\mbox{#1}}
\newcommand{\nonbreakableacronym}[4][]{\hyphenation{#3}\newacronym[#1]{#2}{#3}{#4}}
%\nonbreakableacronym[sort=BayHStA]{BayHStA}{BayHStA}{Bayerisches Hauptstaatsarchiv}
\newacronym[sort=BayHStA]{BayHStA}{bayHStA}{Bayerisches Hauptstaatsarchiv}
\nonbreakableacronym[sort=Abt.]{Abt.}{Abt.}{Abteilung}
\begin{document}
\gls{BayHStA} and this is to show us that \gls{BayHStA} can break, even though it has been put into a mbox. \Gls{BayHStA} works as well.
But I cannot use \gls{Abt.} without getting an error, because of the full stop.
\end{document}
产生错误:
! Not a letter.
<argument> Abt.
l.9 ...leacronym[sort=Abt.]{Abt.}{Abt.}{Abteilung}
Letters in \hyphenation words must have \lccode>0.
Proceed; I'll ignore the character I just read.
答案1
如果你尝试
\renewcommand{\acronymfont}[1]{\asillyundefinedmacro\mbox{#1}}
您将收到不\asillyundefinedmacro
关于未定义的错误消息。
你需要选择一种风格。
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[]{glossaries}
\setacronymstyle{long-short}
\renewcommand*{\acronymfont}[1]{\mbox{#1}}
\newacronym[sort=BayHStA]{BayHStA}{BayHStA}{Bayerisches Hauptstaatsarchiv}
\begin{document}
\gls{BayHStA} and this is to show us that \gls{BayHStA} can break, even though
it has been put into a mbox.
\end{document}
编译后,您会收到“过满\hbox
”警告,并且首字母缩略词的缩写形式不会中断。