获取首字母缩略词 withpage 以使用 \acfi 而不是 \ac

获取首字母缩略词 withpage 以使用 \acfi 而不是 \ac

我正在尝试格式化我的首字母缩略词并想使用\acfi而不是\ac(这会使单词变为斜体)。

问题是,withpage似乎只对\ac命令起作用,因此用 引入的首字母缩略词的页面信息\acfi

有没有办法添加acfi命令添加到 withpage 选项?或者有更简单的解决方案?我找到了这篇文章,但它不能解决我的问题:acro 包:将术语的第一次出现用斜体表示

\documentclass{article}  
\usepackage[printonlyused, withpage]{acronym}

\begin{document} 

\section{Acronyms}
\begin{acronym}[Bash]
 \acro{A}{Apple}
 \acro{B}{Ball}
 \acro{C}{Cat}
\end{acronym}

This an \ac{A}, this is a \acfi{B}, but I can't think of a word with C.

This is the \acs{A}\acs{B}\acs{C}

\end{document}

结果如下:

结果

由于这是我的第一个 Tex 问题,我想知道是否有办法直接添加运行示例 + 输出?

答案1

\acfi调用\acfi定义为

\newcommand{\acfia}[1]{%
  {\itshape \AC@acl{#1} \nolinebreak[3]} (\ifAC@starred\acs*{#1}\else\acs{#1}\fi)}

将其与内部定义进行比较\acf

\newcommand*{\@acf}[1]{%
    \ifAC@footnote
       \acsfont{\AC@acs{#1}}%
       \footnote{\AC@placelabel{#1}\AC@acl{#1}{}}%
    \else
       \acffont{%
          \AC@placelabel{#1}\AC@acl{#1}%
          \nolinebreak[3] %
          \acfsfont{(\acsfont{\AC@acs{#1}})}%
        }%
     \fi
     \ifAC@starred\else\AC@logged{#1}\fi}

我们发现\acfia似乎缺少了\AC@placelabel{#1}负责制作标签的。

将其添加到定义中(我也调整了间距,因为我认为上面的定义在长版本和短版本之间有两个空格)

\renewcommand{\acfia}[1]{%
    {\itshape\AC@placelabel{#1}\AC@acl{#1}\nolinebreak[3] }(\ifAC@starred\acs*{#1}\else\acs{#1}\fi)%
}

然后运行此命令会创建标签,它还会导致首字母缩略词被标记为已使用(初始定义是\acfia\acfi{B} \ac{B}变为“(B)球(B)”,而使用上面的重新定义则得到“(B)B”。

在完整文档中

\documentclass{article}  
\usepackage[printonlyused, withpage]{acronym}

\makeatletter
\renewcommand{\acfia}[1]{%
    {\itshape\AC@placelabel{#1}\AC@acl{#1}\nolinebreak[3] }(\ifAC@starred\acs*{#1}\else\acs{#1}\fi)%
}
\makeatother

\begin{document} 

\section{Acronyms}
\begin{acronym}[Bash]
 \acro{A}{Apple}
 \acro{B}{Ball}
 \acro{C}{Cat}
\end{acronym}

This an \ac{A}, this is a \acfi{B}, but I can't think of a word with C.

This is the \acs{A}\acs{B}\acs{C}

\end{document}

在此处输入图片描述

相关内容