抱歉,我重复提问了:我正是想实现 @eDeviser 提出的问题缩写、互换描述和缩写但由于我的声誉较低,我无法在那里合作:如何在第一次使用缩写词时交换其短格式和长格式(将长格式放在括号中)?之后只应显示短格式。
我很难接受@clemens 建议的解决方案(https://tex.stackexchange.com/a/288328/118158)。我使用Rmarkdown和pandoc生成pdf,但是出现以下错误:
! Illegal parameter number in definition of \reserved@a.
<to be read again>
1
l.165 ...ring{\protect\@acf{#1}}{#1 (\AC@acl{#1})}
pandoc: Error producing PDF from TeX source
相关部分硕士使用 YAML 片段:
---
header-includes:
- \usepackage[nohyperlinks, printonlyused]{acronym}
---
```{r child = 'Abstract.Rmd'}
```
```{r child = 'Abbreviations.Rmd'}
```
缩写.Rmd
\begin{acronym}
\acro{API}[API]{application programming interface}
\end{acronym}
摘要.Rmd基于@clemens 解决方案
\makeatletter
% singular:
\renewcommand*{\acfa}[1]{%
\texorpdfstring{\protect\@acf{#1}}{#1 (\AC@acl{#1})}%
}
\renewcommand*{\@acf}[1]{%
\acffont{%
\AC@placelabel{#1}%
\acfsfont{\acsfont{\AC@acs{#1}}}%
\nolinebreak[3] %
(\AC@acl{#1})%
}%
}
\makeatother
\ac{API}\newline
答案1
我能够通过直接在原始acronym.sty
文件中进行更改来解决这个问题,在我的情况下,原始文件位于/usr/local/texlive/2016/texmf-dist/tex/latex/acronym
。
但我不明白为什么这种\renewcommand
方法不起作用。