我正在尝试格式化我的首字母缩略词并想使用\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}