LaTeX/词汇表建议使用以下命令来合并词汇表条目和缩略词:
\usepackage{xparse}
\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m } {
\newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
description={#6},#1
}
\newacronym[see={[Glossary:]{gls-#3}},#2]{#3}{#4}{#5\glsadd{gls-#3}}
}
我如何才能将复数添加到此命令中,以便可以使用\glspl{LED}
显示 LED?我知道附加“s”是默认的复数形式,但我需要一种方法来自定义复数。我尝试了以下方法,但没有成功
\usepackage{xparse}
\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m m } {
\newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
description={#6},plural={#7},#1
}
\newacronym[see={[Glossary:]{gls-#3}},#2]{#3}{#4}{#5\glsadd{gls-#3}}
}
谢谢!
答案1
这对我有用(但是,7 个参数的命令很难记住!):
\documentclass{article}
\usepackage{xparse}
\usepackage[acronym]{glossaries}
\DeclareDocumentCommand{\newdualentry}{O{}D<>{}m m m m m } {
\newglossaryentry{gls-#3}{
name={#5},
text={#5\glsadd{gls-#3}},
description={#6},
plural={#7},
#1
}
\newacronym[see={[Glossary:]{gls-#3}},#2]{#3}{#4}{#5\glsadd{gls-#3}}
}
\makeglossaries
\newdualentry{LED}{LED}{LED}{Light emitting diode}{LEDiodes}
\newdualentry{Ox}{Ox}{Ox}{male cow}{Oxen}
\begin{document}
Here is an entry: \gls{gls-LED} \glspl{gls-LED}
An some biology here: \gls{gls-Ox} \glspl{gls-Ox}
\printglossary[type=main]
\printglossary[type=acronym]
\end{document}
编辑关于可选参数的命令设计的一些注意事项:
假设你有这样的一个小文件
\documentclass{article}
\usepackage{xparse}
\DeclareDocumentCommand{\somecmd}{O{}O{}m}{%
Optional 1: #1
Optional 2: #2
mandatory: #3
}
\begin{document}
\somecmd[A][B]{C}
\somecmd[A]{C}
\somecmd[][B]{C}
\end{document}
- 第一次调用将正确分配 A、B 和 C 到相应的插槽
- 第二次调用将使用 A 作为第一个,C 作为第三个 --> 第二个为空 --> 这是否正确?是也不是,因为不清楚 A 是用于第一个还是第二个可选参数。
- 此调用将明确将第一个保留为空,其他都是“正确的”
最好用D<>{}
或类似的标记替换第二个可选参数样式以产生一些差异。或者将第二个可选参数附加到列表末尾,作为此处的第三个参数。
答案2
这就是我使用它的 MWE。(主要是德语)
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{hyperref} % optional
\usepackage[acronym,toc,shortcuts,xindy,section=section]{glossaries}
\makenoidxglossaries
\usepackage{xparse}
% #1 = optional newglossaryentry value
% #2 = optional newacronym parameter
% #3 = label
% #4 = short form
% #5 = short form plural
% #6 = long form
% #7 = long form plural
% #8 = description
\DeclareDocumentCommand{\newdualentry}{ O{} D<>{} m m m m m m } {
\newglossaryentry{gls-#3}{
name={#4},
shortplural={#5},
text={#4\glsadd{gls-#3}},
longplural={#7},
description={#8},
sort={#4},
#1
}
\newacronym[see={[Glossar:]{gls-#3}},#2,shortplural=#5,longplural=#7]{#3}{#4}{#6\glsadd{gls-#3}}
}
\newdualentry{abb} % label
{\textbf{abbreviation}} % abbreviation
{\textbf{abbreviation plural}} % abbreviation plural
{\textbf{long form}} % long form
{\textbf{long form plural}} % long form plural
{\textbf{The description is a very long text.
It explains everything you need to know}} % description
\begin{document}
\printnoidxglossary[title=List of Abbreviations, type=\acronymtype, style=altlist]
\clearpage
\section{Chapter One}
This is what the first use of a glossary entry looks like: \glsfirst{abb} by default.\\
This is what the first use of a glossary entry plural looks like: \glsfirstplural{abb} by default.\\
First gls call in my text: \gls{abb}.\\
Next gls call: \gls{abb}.\\
First glspl call in my text: \glspl{abb}.\\
Next glspl call: \glspl{abb}.\\
\clearpage
\printnoidxglossary[title=Glossary,style=altlist]
\end{document}
答案3
无需任何修改,使用可选参数:
\newdualentry
[ plural={Light Emitting Diodes}] % Glossary
[longplural={Light Emitting Diodes} % Acronym
,shortplural={LEDs}]
{led}{LED}{Light Emitting Diode}{...}