如何将图表直接放入词汇表包的描述键中?

如何将图表直接放入词汇表包的描述键中?

我正在准备一个文档类,使用 glossaries 包来排版词典。由于我的许多条目需要图片、表格,甚至一些 C++ 代码,我想知道有没有办法将这些内容直接放入词汇表包的描述键中?
这是一个简单的 MWE:

\documentclass[twoside]{book}
\usepackage[]{graphicx} 
\usepackage{lipsum}
\usepackage[xindy,nonumberlist]{glossaries}
\makeglossaries

\newcommand{\dict}[4][]{%
  \newglossaryentry{#2}%
  {%
    name=#2,%
    symbol=#3,%
    description=#4,%
    #1%
  }%
  \glsadd{#2}%
}

\begin{document}
    \dict{zero}{n}{\lipsum[4]}
    \dict{adhesive}{n}{\lipsum[5]}
    \dict{main}{n}{\lipsum[3]}
    \dict{material}{n}{\lipsum[1]}
\printglossary
\end{document}

我知道有一种解决方案是将这些东西存储在命令中,然后将其用作描述,但我不喜欢这种解决方案。我的描述结构如下:

    \dict{lion}{n}{%
    Lions live in ...

    \begin{center}
    \includegraphics[width=3cm]{lion}
    \end{center}

    They generally eat ...
    }

顺便说一句,我必须仅使用它xindy来对条目进行排序。

答案1

您需要使用命令添加带有长描述的新条目,这样段落中断才不会导致错误。为此,您需要将定义移到序言中或从序言中的外部文件加载它们。例如,以下修改为使用\dict长条目命令,然后在序言中定义定义,然后再将它们添加到文档中。

我不确定它#1的用途,所以我不确定它应该放在哪里,你可能需要适当地移动它。

\documentclass[twoside]{book}
\usepackage[]{graphicx}
\usepackage{lipsum}
\usepackage[xindy,nonumberlist]{glossaries}
\makeglossaries

\newcommand{\dict}[4][]{%
  \longnewglossaryentry{#2}%
  {%
    name=#2,%
    symbol=#3,%
    #1%
  }{%
    #4
  }%
%   \glsadd{#2}%
}
\dict{zero}{n}{\lipsum[4]}
\dict{adhesive}{n}{\lipsum[5]}
\dict{main}{n}{\lipsum[3]}
\dict{material}{n}{\lipsum[1]}
\dict{lion}{n}{%
  Lions live in\dots%

  \begin{center}
    \includegraphics[width=3cm]{example-image-a}
  \end{center}

  They generally eat\dots%
}
\dict{tiger}{n}{%
  Tigers live in\dots%

  \begin{center}
    \includegraphics[width=3cm]{tiger}
  \end{center}

  They generally eat\dots%
}

\begin{document}
  \glsaddall

\printglossary
\end{document}

插图作品

[老虎的图像来自文档,pstricks并带有工作目录中的符号链接。]

相关内容