我正在写一份包含许多首字母缩略词的大型报告,其中一些缩略词相互包含。我询问了让他们以特定方式执行此操作的方法,并得到了非常好的答案。包含其他缩写词的缩写词
现在我发现我希望我的首字母缩略词在列表中以大写字母开头,并且我找到了一种方法来做到这一点,将首字母缩略词列表中的首字母大写,但当我尝试一起使用它们时,我收到两个错误
Argument of \@acx has an extra }
,并且Paragraph ended before \@acx was completed
这是一个最小的例子
\documentclass[a4paper, 10pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel} % English language/hyphenation
\usepackage{amsmath,amsfonts,amsthm} % Math packages
\usepackage[pdftex]{graphicx} % Enable pdflatex
\usepackage[printonlyused]{acronym}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\AC@@acro}{] #3}{] \MakeUppercase #3}{}{}
\patchcmd{\AC@@acro}{] #3}{] \MakeUppercase #3}{}{}
\makeatother
\makeatletter
\newcommand{\acx}{\protect\@acx}%
\newcommand{\@acx}[1]{%
\ifAC@dua
\acf{#1}%
\else
\expandafter\ifx\csname ac@#1\endcsname\AC@used
\acs{#1}%
\else
\acl{#1}%
\fi
\fi
}
\makeatother
\begin{document}
\begin{acronym}
\acro{q}[$Q$]{\acx{rms}reactive power}
\acro{rms}{root mean square}
\end{acronym}
\section{Text}
The \ac{q} is..... \ac{rms}...
\end{document}
编辑:
我希望结果看起来像这样:
为什么会发生这种情况?我该如何解决?
答案1
像这样?
\documentclass[a4paper, 10pt]{report}
\usepackage[printonlyused]{acronym}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\AC@@acro}{] #3}{] \expandafter\MakeUppercase#3}{}{}
\makeatother
\makeatletter
\newcommand{\acx}{\protect\@acx}%
\newcommand{\@acx}[1]{%
\ifAC@dua
\acf{#1}%
\else
\expandafter\ifx\csname ac@#1\endcsname\AC@used
\acs{#1}%
\else
\acl{#1}%
\fi
\fi
}
\makeatother
\begin{document}
\begin{acronym}
\acro{q}[$Q$]{\acx{rms}reactive power}
\acro{rms}{root mean square}
\end{acronym}
\section{Text}
The \ac{q} is..... \ac{rms}...
\end{document}