按章(而非按节)列出的词汇表

按章(而非按节)列出的词汇表

就像每章或每节的词汇表,我试图使用该glossaries包创建首字母缩略词列表,但只能按章节创建,而不是按部分创建。
我试图调整答案,但没有成功。
这是一个最小的例子:

\documentclass{报告}
\usepackage{datatool-base}
\usepackage[counter=chapter,xindy,section=section]{词汇表}
\GlsSetXdyMinRangeLength{0}
\制作词汇表
\newglossaryentry{E}{name={\ensuremath{E}},description={energy}}
\newglossaryentry{m}{name={\ensuremath{m}},description={质量}}
\newglossaryentry{c}{name={\ensuremath{c}},description={光速}}
\newglossaryentry{v}{name={\ensuremath{v}},description=速度}
\newglossarystyle{我的风格}%
{%
  \setglossarystyle{列表}%
  \renewcommand*{\glossaryentrynumbers}[1]{\striprelax##1\endstriprelax}%
  \renewcommand*{\glsXchapterXglsnumberformat}[2]{##2}%
  \renewcommand*{\delimR}{,}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \edef\doifinlocation{\noexpand\ifinlocation{\thechapter}{##5}}%
    \doifinlocation
    {%
      \项目 ##2 ##3%
    }%
  }%
}
\newcommand{\ifinlocation}[3]{%
 \DTLifinlist{#1}{#2}{#3}{}%
}
\def\striprelax\relax#1\endstriprelax{#1}
\setglossarystyle{我的风格}

\开始{文档}
\chapter{示例章节}
\打印词汇表
\开始{方程}
\gls{E} = \gls{m}\cdot \gls{c}^2
\end{方程}
\gls重置
\chapter{另一章}
\打印词汇表
\开始{方程}
\gls{E} = \frac{\gls{m}\gls{v}^2}{2}
\end{方程}
\结束{文档}

结果如下: 输出页面 1:示例章节 输出第 2 页:另一章
我怎样才能删除第一章中关于速度的词汇表条目和第二章中关于光速的词汇表条目?
提前致谢

答案1

这里的问题是,你把新旧命令混在一起了。我的原始答案您链接到的命令已有数年历史,并且使用了现已弃用的命令,例如\glossarystyle\glossaryentryfield。您的 MWE 已将弃用的 更改\glossarystyle\setglossarystyle,但尚未更改弃用的\glossaryentryfield。通过使用新的\setglossarystyle,向后兼容性将被删除并且\glossaryentryfield不会被使用。

要修复此问题,只需替换\glossaryentryfield为较新的版本\glossentry

  \renewcommand*{\glossentry}[2]{%
    \edef\doifinlocation{\noexpand\ifinlocation{\thechapter}{##2}}%
    \doifinlocation
    {%
      \item \glossentryname{##1} \glossentrydesc{##1}%
    }%
  }%

完成 MWE:

\documentclass{report}
\usepackage{datatool-base}
\usepackage[counter=chapter,xindy,section=section]{glossaries}
\GlsSetXdyMinRangeLength{0}
\makeglossaries
\newglossaryentry{E}{name={\ensuremath{E}},description={energy}}
\newglossaryentry{m}{name={\ensuremath{m}},description={mass}}
\newglossaryentry{c}{name={\ensuremath{c}},description={speed of light}}
\newglossaryentry{v}{name={\ensuremath{v}},description=velocity}
\newglossarystyle{mystyle}%
{%
  \setglossarystyle{list}%
  \renewcommand*{\glossaryentrynumbers}[1]{\striprelax##1\endstriprelax}%
  \renewcommand*{\glsXchapterXglsnumberformat}[2]{##2}%
  \renewcommand*{\delimR}{,}%
  \renewcommand*{\glossentry}[2]{%
    \edef\doifinlocation{\noexpand\ifinlocation{\thechapter}{##2}}%
    \doifinlocation
    {%
      \item \glossentryname{##1} \glossentrydesc{##1}%
    }%
  }%
}
\newcommand{\ifinlocation}[3]{%
 \DTLifinlist{#1}{#2}{#3}{}%
}
\def\striprelax\relax#1\endstriprelax{#1}
\setglossarystyle{mystyle}

\begin{document}
\chapter{Sample Chapter}
\printglossary
\begin{equation}
\gls{E} = \gls{m}\cdot \gls{c}^2
\end{equation}
\glsresetall 
\chapter{Another Chapter}
\printglossary
\begin{equation}
\gls{E} = \frac{\gls{m}\gls{v}^2}{2}
\end{equation}
\end{document}

第一章:

第 1 章图片

第二章:

第二章图片

相关内容