首字母缩略词的大写/小写/混合大小写以及复数形式

首字母缩略词的大写/小写/混合大小写以及复数形式

我的问题实际上是这个帖子

我在我的 tex 文档中使用了以下代码:

    \documentclass{article}
    \usepackage{acronym}
    \usepackage{etoolbox}
    \makeatletter
    \newif\if@in@acrolist
    \AtBeginEnvironment{acronym}{\@in@acrolisttrue}
    \newrobustcmd{\LU}[2]{\if@in@acrolist#1\else#2\fi}

    \newcommand{\ACF}[1]{{\@in@acrolisttrue\acf{#1}}}
    \makeatother

    \begin{document}
    \begin{acronym}
    \acro{SRS}{\LU{S}{s}patial \LU{R}{r}eference \LU{S}{s}ystem}
    \acro{DC}{\LU{D}{d}irect \LU{C}{c}urrent}
    \end{acronym}

    Batteries run on \ac{DC} and \ac{SRS} are different things.
    \end{document}

这很有效。但是,如果您通常希望首字母缩略词小写,但由于它出现在句子开头,您只希望第一个单词的第一个字母大写,会发生什么情况?

我现在使用与上面相同的代码片段,但是当我用以下内容开始句子时:

\ac{dc} lorum impsom...

它给了我:

direct current lorum impsom...

代替:

Direct current lorum impsom...

这是一个简单的解决办法吗?

仅供参考,我已经尝试过\Ac{}\Acp{}但它们不起作用。我怀疑我需要创建一个新命令,但我不知道怎么做,这就是为什么我来找你们这些可爱的人。

此外,我在复数方面遇到了问题。如果我想将某个词复数化,我通常会使用该\acp{}命令。但是,如果我想要大写和复数,则\ACP{}不起作用。

答案1

一种可能性是切换到acro软件包。它提供了您所需的内容:

\documentclass{article}
\usepackage{acro}
\acsetup{list-long-format=\capitalisewords}
\usepackage{mfirstuc}% provides \capitalisewords

\DeclareAcronym{SRS}{
  short = SRS ,
  long  = spatial reference system
}
\DeclareAcronym{DC}{
  short = DC ,
  long  = direct current
}

\begin{document}

Batteries run on \ac{DC} and \ac{SRS} are different things.
Batteries run on \ac{DC} and \ac{SRS} are different things.

\Acl{DC} bla ...

\printacronyms

\end{document}

在此处输入图片描述

答案2

我遇到了同样的问题,我通过简单地定义两个首字母缩略词解决了这个问题,一个用于句中,一个用于句首。每个首字母缩略词都标记另一个首字母缩略词已使用。

\newacro{abr}[abr\acused{Abr}]{abbrevation} % Mid-sentence
\newacro{Abr}[abr\acused{abr}]{Abbrevation} % Sentence initial

答案3

[这只是尝试解决问题,而不是解决问题!]

在首字母缩略词包中,选择混合大小写的能力非常缺乏。你在原始问题中提到的新命令确实很有帮助。我试过但无法让它工作,它需要类似这样的命令:

\newrobustcmd{\LU}[4]{\if@in@acrolist#1\else#2\fi} % upper case in acronym list lower case elsewhere
\newcommand{\AC}[1]{{\@in@acrolisttrue\ac{#1}}} % for choosing upper case elsewhere
\newcommand{\UAC}[1]{{\@in@acrolisttrue\ac{#3}}} % for choosing upper/lower case elsewhere
\newcommand{\LAC}[1]{{\@in@acrolisttrue\ac{#4}}} % for choosing lower/upper case elsewhere

\begin{acronym}
\acro{Abr}[\LU{A}{a}{a}{A}br]{\LU{A}{a}{A}{a}bbreviation}
\end{acronym}

要使命令正常工作可能需要使用##\protect。希望这能激励人们去尝试一下。

相关内容