在1我知道如何翻译首字母缩略词,并且使用了英语和西班牙语版本。
现在的问题是,我的缩写只有西班牙语,其他只有英语(无翻译)和英语(有翻译)。文档的格式要求英语要强调,西班牙语要正常书写。
有什么方法可以实现自动化吗?我考虑创建 2 个列表,一个是英文缩写,另一个是西班牙语,然后加载它们,指定不同的样式,然后合并它们,这样它们就会按顺序出现在缩写列表中。
我发现的另一种解决方案是在我的首字母缩略词列表中创建两种样式:
\newcommand{\engstyle}[1]{\emph{#1}}
\newcommand{\espstyle}[1]{#1}
\newacronym{ENG}{ENG}{\engstyle{English acronym}} %
\newacronym{ESP}{ESP}{\espstyle{Spanish acronym}} %
但在首字母缩略词列表中,它们会以指定的样式出现。而我希望它们没有任何样式。
有什么建议吗?
编辑:我想要退出。
在测试中英文缩写(ENG) 显示,西班牙语版本则显示为西班牙语缩写 (ESP)。
缩略词列表
ENG 英文缩写
ESP 西班牙语缩写
编辑 2:我没有意识到 Nicola 更新了软件包。现在的问题是:是否可以在同一个文档中设置多个 setacronymstyle?
答案1
无法使用多种首字母缩略词样式(一种样式通常会覆盖另一种样式)。但是,这里有一个可能的解决方案,它使用键user1
来存储定义首字母缩略词时要使用的字体样式:
% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\usepackage[acronym]{glossaries}
\makeglossaries
\newcommand*{\engstyle}[1]{\emph{#1}}
\newcommand*{\espstyle}[1]{#1}
\newcommand*{\newengacronym}[4][]{%
\newacronym[user1=\protect\engstyle,#1]{#2}{#3}{#4}%
}
\newcommand*{\newespacronym}[4][]{%
\newacronym[user1=\protect\espstyle,#1]{#2}{#3}{#4}%
}
\newacronymstyle{lang}
{%
\GlsUseAcrEntryDispStyle{long-short}%
}%
{%
\GlsUseAcrStyleDefs{long-short}%
\renewcommand*{\genacrfullformat}[2]{%
\glsentryuseri{##1}{\glsentrylong{##1}}##2\space
(\glsentryshort{##1})%
}%
\renewcommand*{\Genacrfullformat}[2]{%
\glsentryuseri{##1}{\Glsentrylong{##1}}##2\space
(\glsentryshort{##1})%
}%
\renewcommand*{\genplacrfullformat}[2]{%
\glsentryuseri{##1}{\glsentrylongpl{##1}}##2\space
(\glsentryshortpl{##1})%
}%
\renewcommand*{\Genplacrfullformat}[2]{%
\glsentryuseri{##1}{\Glsentrylongpl{##1}}##2\space
(\glsentryshortpl{##1})%
}%
}
\setacronymstyle{lang}
\newengacronym{ENG}{ENG}{English Acronym}
\newespacronym{ESP}{ESP}{Spanish Acronym}
\begin{document}
First use : \gls{ENG}, \gls{ESP}.
Next user: \gls{ENG}, \gls{ESP}.
\printglossaries
\end{document}
得出的结果为:
编辑:
如果您想重新定义\glsentrylong
,则还需要重新定义,\Glsentrylong
否则会导致问题\makefirstuc
:
% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\usepackage[acronym]{glossaries}
\makeglossaries
\newcommand*{\engstyle}[1]{\emph{#1}}
\newcommand*{\espstyle}[1]{#1}
\newcommand*{\newengacronym}[4][]{%
\newacronym[user1=\protect\engstyle,#1]{#2}{#3}{#4}%
}
\newcommand*{\newespacronym}[4][]{%
\newacronym[user1=\protect\espstyle,#1]{#2}{#3}{#4}%
}
\makeatletter
\newacronymstyle{lang}
{%
\GlsUseAcrEntryDispStyle{long-short}%
}%
{%
\GlsUseAcrStyleDefs{long-short}%
\renewcommand*{\glsentrylong}[1]{%
\glsentryuseri{##1}{\@gls@entry@field{##1}{long}}}%
\renewcommand*{\glsentrylongpl}[1]{%
\glsentryuseri{##1}{\@gls@entry@field{##1}{longpl}}}%
\renewcommand*{\Glsentrylong}[1]{%
\glsentryuseri{##1}{\@Gls@entry@field{##1}{long}}}%
\renewcommand*{\Glsentrylongpl}[1]{%
\glsentryuseri{##1}{\@Gls@entry@field{##1}{longpl}}}%
}
\makeatother
\setacronymstyle{lang}
\newengacronym{ENG}{ENG}{English Acronym}
\newespacronym{ESP}{ESP}{Spanish Acronym}
\begin{document}
First use : \gls{ENG}, \gls{ESP}.
Next user: \gls{ENG}, \gls{ESP}.
Long form: \acrlong{ENG}, \acrlong{ESP}.
Long form (first UC): \Acrlong{ENG}, \Acrlong{ESP}.
Plural long form: \acrlongpl{ENG}, \acrlongpl{ESP}.
Plural long form (first UC): \Acrlongpl{ENG}, \Acrlongpl{ESP}.
\printglossaries
\end{document}
然而如果您执行上述操作,您将无法再使用\glsentrylong
PDF 书签。