词汇表包:索引中的小型大写字母和大写字母不起作用

词汇表包:索引中的小型大写字母和大写字母不起作用

我正在使用glossariespdfLaTeX 中的包。我正在尝试

  1. 在正文中使用小写字母缩写

  2. 对于索引,将词汇表中每个条目名称的首字母大写。

我已经尝试过四处寻找但找不到解决方案。

makeindex为了获得词汇表,我运行了如下命令:

"/usr/texbin/makeglossaries" %

通常,我从 2 个外部文件加载条目,但我不认为这是问题所在,因为在运行 MWE 后我也遇到了同样的问题。无论如何,为了显示我正在使用的命令,我将它们作为注释插入到 MWE 中。

另外,我不确定这是否重要,但我使用 MinionPro 作为我的主要字体和 KOMA-Script。

我的 MWE 基于此线程: http://www.latex-community.org/forum/viewtopic.php?f=5&t=9966

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}
% \input{./text/glossary}
% \loadglsentries{./text/symbols}
\makeglossaries
\newacronym{pcm} {PCM} {phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
                  name = {\null$\Delta H_{fus}$},
                  description={latent heat of fusion}}

\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.

    \textsc{This is small caps. PCM pcm }

\renewcommand{\glsnamefont}[1]{\makefirstuc{#1}}
\printglossary[type=slg, style=long, nonumberlist=true]

\renewcommand{\glsnamefont}[1]{\MakeUppercase{#1}}
\printglossary[type=acronym, style=long]
\end{document}

结果如下: MWE 结果

唯一大写的是数学环境中的 Fus,我真的不明白这是怎么发生的。其他一切(小型大写选项和大写描述)都不起作用。

有人可以解释一下我做错了什么吗?

答案1

正如评论中提到的,您的首字母缩略词没有以小写字母显示,因为您使用大写字母定义了它们。您说描述的大写字母不起作用。那是因为您没有对描述进行任何更改。\glsnamefont应用于名称而不是描述。您需要定义一种新样式,使描述以大写字母开头:

\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}

\makeglossaries

\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
                  name = {\null$\Delta H_{fus}$},
                  description={latent heat of fusion}}

\newglossarystyle{long-ucdesc}{%
  \setglossarystyle{long}%
    \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \Glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
  }%
}

\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.

    \textsc{This is small caps. PCM pcm }

\printglossary[type=slg, style=long-ucdesc, nonumberlist=true]

\renewcommand{\glsnamefont}[1]{\MakeUppercase{#1}}
\printglossary[type=acronym, style=long]

\end{document}

得出的结果为:

生成的文档的图像

下面定义了一种使描述的首字母大写的样式:

\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}

\makeglossaries

\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
                  name = {\null$\Delta H_{fus}$},
                  description={latent heat of fusion}}

\newglossarystyle{long-ucdesc}{%
  \setglossarystyle{long}%
    \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \Glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
  }%
}

\makeatletter
\newglossarystyle{long-initcapsdesc}{%
  \setglossarystyle{long}%
    \renewcommand{\glsnamefont}[1]{\MakeUppercase{##1}}%
    \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \protected@edef\thisdesc{\glsentrydesc{##1}}%
    \xcapitalisewords{\thisdesc}\glspostdescription\space ##2\tabularnewline
  }%
}
\makeatother

\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.

    \textsc{This is small caps. PCM pcm }

\printglossary[type=slg, style=long-ucdesc, nonumberlist=true]

\printglossary[type=acronym, style=long-initcapsdesc]

\end{document}

结果:

结果图像

如果您拥有的版本至少为 4.22 glossaries,则可以改用\glsentrytitlecase

\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}

\makeglossaries

\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
                  name = {\null$\Delta H_{fus}$},
                  description={latent heat of fusion}}

\newglossarystyle{long-ucdesc}{%
  \setglossarystyle{long}%
    \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \Glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
  }%
}

\newglossarystyle{long-initcapsdesc}{%
  \setglossarystyle{long}%
    \renewcommand{\glsnamefont}[1]{\MakeUppercase{##1}}%
    \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \glsentrytitlecase{##1}{desc}\glspostdescription\space ##2\tabularnewline
  }%
}

\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.

    \textsc{This is small caps. PCM pcm }

\printglossary[type=slg, style=long-ucdesc, nonumberlist=true]

\printglossary[type=acronym, style=long-initcapsdesc]

\end{document}

glossaries-extra您可以使用该glossdesc属性:

\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[section,nonumberlist,acronym,nomain]{glossaries-extra}
\newglossary{slg}{sym}{syb}{Nomenclature}

\makeglossaries

\setabbreviationstyle[acronym]{long-short-sc}

\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
                  name = {\null$\Delta H_{fus}$},
                  description={latent heat of fusion}}

\glssetcategoryattribute{acronym}{glossdesc}{title}
\glssetcategoryattribute{general}{glossdesc}{firstuc}

\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.

    \textsc{This is small caps. PCM pcm }

\printglossary[type=slg, style=long, nonumberlist=true]

\printglossary[type=acronym, style=long]

\end{document}

相关内容