词汇表保护文本和缩写之间的空格

词汇表保护文本和缩写之间的空格

\gls我正在使用词汇表包来获取缩写列表。当我第一次使用带有缩写的命令时,如果缩写位于行尾附近,就会出现问题。

因此,例如缩写Data-Mining (DM)将出现Data-Mining在第一行和(DM)第二行。我想在Data-Mining和之间设置一个受保护的空白(DM)。我试过了\mbox,但在这种情况下,我只得到了一个过满的水平盒子,因为文本打印在一行中。最好的断点是连字符。

答案1

如果您能提供最小示例但既然你没有,我会假设你正在做类似的事情:

\documentclass[a4paper]{article}

\usepackage{glossaries}

\makeglossaries

\setacronymstyle{long-short}
\newacronym{dm}{DM}{Data-Mining}

\begin{document}

\rule{0.8\textwidth}{1pt}\gls{dm}.

\printglossaries
\end{document}

这会产生不想要的换行符:

数据挖掘和(DM)之间的换行符

在这种情况下,修复方法非常简单。你只需要用样式替换long-short首字母缩略词样式long-sp-short。像这样:

\documentclass[a4paper]{article}

\usepackage{glossaries}

\makeglossaries

\setacronymstyle{long-sp-short}
\newacronym{dm}{DM}{Data-Mining}

\begin{document}

\rule{0.8\textwidth}{1pt}\gls{dm}.

\printglossaries
\end{document}

现在产生:

没有换行

此样式使用长格式和短格式之间。如果小于 3em,\glsacspace{label}此命令默认使用,否则使用。您可以重新定义它以始终使用不可中断的空格:~(\firstacronymfont{\glsentryshort{label}})\space

\renewcommand*{\glsacspace}[1]{~}

相关内容