如何使用 soul 与词汇表来分隔缩略词?

如何使用 soul 与词汇表来分隔缩略词?

我想增加文本中首字母缩略词大写字母之间的间距。首字母缩略词由包中的 、 等命令打印\ac\acsglossaries提供soul了一个不错的命令\caps。我如何修改词汇表以用于\caps首字母缩略词?

这是一个不起作用的例子。

\documentclass{article}
\usepackage{soul} 
\usepackage[acronym,shortcuts]{glossaries} 
\makeglossaries  
\newacronym{OFDM}{OFDM}{Orthogonal Frequency Division Multiplexing} 
\let\acbak\ac
\renewcommand{\ac}[1]{\caps\acbak{#1}}
\begin{document}   
    \noindent 
    \ac{OFDM} \\
    \ac{OFDM} \\
    \caps{OFDM}
\end{document}

答案1

问题是由于\caps需要完全展开其参数而引起的。这里有一个解决方案,\xcaps它首先定义展开其参数。然后您可以重新定义\acronymfont以使用\xcaps。我使用了自定义样式来提供修改。

\documentclass{article}
\usepackage{soul} 
\usepackage[acronym,shortcuts]{glossaries} 

\renewcommand{\acronymfont}[1]{\protect\xcaps{#1}}

\renewcommand*{\CustomAcronymFields}{%
  name={\noexpand\acronymfont{\the\glsshorttok}},%
  description={\the\glslongtok},%
  first={\noexpand\acrfullformat{\the\glslongtok}{\noexpand\acronymfont{\the\glsshorttok}}},%
  firstplural={\noexpand\acrfullformat
    {\the\glslongtok\noexpand\acrpluralsuffix}{\noexpand\acronymfont{\the\glsshorttok}}}%
  text={\noexpand\acronymfont{\the\glsshorttok}},%
  plural={\noexpand\acronymfont{\the\glsshorttok\noexpand\acrpluralsuffix}}%
}

\SetCustomStyle

\makeglossaries  
\newacronym{OFDM}{OFDM}{Orthogonal Frequency Division Multiplexing} 

\makeatletter
\DeclareRobustCommand{\xcaps}[1]{%
 \protected@edef\tmp{#1}%
 \expandafter\caps\expandafter{\tmp}%
}
\makeatother

\begin{document}   
\caps{OFDM}

\ac{OFDM}

\ac{OFDM}

\end{document}

这是一个更简单的解决方案,使用glossaries-extra扩展包:

\documentclass{article}

\usepackage{soul}
\usepackage[acronym,shortcuts=ac]{glossaries-extra}

\makeglossaries

\renewcommand{\glsabbrvdefaultfont}[1]{\caps{#1}}

\setabbreviationstyle[acronym]{long-short}

\newacronym{OFDM}{OFDM}{Orthogonal Frequency Division Multiplexing}

\begin{document}
    \noindent
    \ac{OFDM} \\
    \ac{OFDM} \\
    \caps{OFDM}

\end{document}

正交频分复用 (OFDM) OFDM OFDM

如果要将其与不同的缩写样式结合使用,请使用类似的方法。例如:

\documentclass{article}

\usepackage{soul}
\usepackage[acronym,shortcuts=ac]{glossaries-extra}

\makeglossaries

\renewcommand{\glsabbrvscfont}[1]{\textsc{\MakeTextLowercase{\caps{#1}}}}

\setabbreviationstyle[acronym]{long-short-sc}

\newacronym{OFDM}{OFDM}{Orthogonal Frequency Division Multiplexing}

\begin{document}
    \noindent
    \ac{OFDM} \\
    \ac{OFDM} \\
    \caps{OFDM}

\end{document}

正交频分复用 (ofdm) ofdm OFDM

相关内容