从 LaTeX/Glossary 向 newdualentry 添加复数

从 LaTeX/Glossary 向 newdualentry 添加复数

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}
  1. 第一次调用将正确分配 A、B 和 C 到相应的插槽
  2. 第二次调用将使用 A 作为第一个,C 作为第三个 --> 第二个为空 --> 这是否正确?是也不是,因为不清楚 A 是用于第一个还是第二个可选参数。
  3. 此调用将明确将第一个保留为空,其他都是“正确的”

最好用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}{...}

相关内容