我正在使用包 acro。我有以下缩写:
\DeclareAcronym{SDP}{
short = SDP,
long = Sequential Decision Process,
long-plural-form = Sequential Decision Processes,
class = abbrev
}
然后我有了章节标题:
\section{\aclp{SDP}}
\section{\acsp{SDP}}
正确打印 PDF 中的“顺序决策过程”和“SDP”。但是,PDF 书签中的各部分均显示“SDP”。
在里面文档,它说您可以指定属性pdfstring
来设置将在 PDF 书签中打印的内容。但是它没有提供长格式和短格式的选项。我如何根据章节标题更改 PDF 书签?
答案1
这应该有效:
\documentclass{article}
\usepackage{acro}
\ExplSyntaxOn
\cs_new:Npn \acro_expandable_long:n #1
{ \prop_item:Nn \l__acro_long_prop {#1} }
\cs_new:Npn \acro_expandable_long_plural:n #1
{
\bool_if:nTF
{ \prop_item:Nn \l__acro_long_plural_form_prop {#1} }
{ \prop_item:Nn \l__acro_long_plural_prop {#1} }
{
\prop_item:Nn \l__acro_long_prop {#1}
\prop_item:Nn \l__acro_long_plural_prop {#1}
}
}
\cs_new:Npn \acro_pdf_string_long:n #1
{
\acro_if_star_gobble:nTF {#1}
{ \acro_expandable_long:n }
{ \acro_expandable_long:n {#1} }
}
\cs_new:Npn \acro_pdf_string_long_plural:n #1
{
\acro_if_star_gobble:nTF {#1}
{ \acro_expandable_long_plural:n }
{ \acro_expandable_long_plural:n {#1} }
}
\AtBeginDocument
{
\pdfstringdefDisableCommands
{
\cs_set_eq:NN \acl \acro_pdf_string_long:n
\cs_set_eq:NN \aclp \acro_pdf_string_long_plural:n
}
}
\ExplSyntaxOff
\usepackage{hyperref}
\DeclareAcronym{SDP}{
short = SDP,
long = Sequential Decision Process,
long-plural-form = Sequential Decision Processes
}
\DeclareAcronym{CD}{
short = CD,
long = Compact Disc
}
\begin{document}
\section{\acs{CD}, \acs{SDP}}
\section{\acsp{CD}, \acsp{SDP}}
\section{\acl{CD}, \acl{SDP}}
\section{\aclp{CD}, \aclp{SDP}}
\end{document}
到目前为止,acro
仅支持书签中的短格式的决定是经过深思熟虑的——我认为长格式没有必要,因为书签仅用于有限的目的:链接到按规定打印首字母缩略词的“真实”标题。(至少在我的系统上,书签大多数时候都会被截断……)
我会看看是否能在下一个版本中添加更全面的支持。