我的问题实际上是这个帖子。
我在我的 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
。希望这能激励人们去尝试一下。