如何仅使用新输入字段将词汇表打印中的符号大写?

如何仅使用新输入字段将词汇表打印中的符号大写?

我怎样才能强制在词汇表打印中以大写形式或完全大写形式打印符号(在字段中声明非大写形式symbol)?

对我来说,最好的解决方案是symbolname在声明新的词汇表条目时添加一个新字段,LaTeX 将使用此字段仅在词汇表打印中打印符号。字段中声明的符号symbol将仅在文档文本中使用。换句话说,我希望 - 对于字段 - 在我使用字段和字段symbol时得到相同的结果,这允许将词汇表打印中的使用与文本中的使用分开......nametext

这里是 MWE,

\documentclass{article}
\usepackage[style=tree]{glossaries-extra}

\makenoidxglossaries

\newglossaryentry{subsytem}{name={Subssytems},description={\glspar},sort={4}}
\newglossaryentry{compressor}
{
  name={Compressor},
  text={compressor},
  sort={compressor},
  description={Air Compressor},
  symbol={cp},
  parent=subsytem
}
\newglossaryentry{compressor_motor}
{
  name={Compressor Motor},
  sort={compressor motor},
  text={compressor motor},
  description={Motor of the \Gls{compressor}},
  symbol={cm},
  parent=subsytem
}


\begin{document}
\gls{compressor_motor}
\gls{compressor}
\printnoidxglossary
\end{document}

而不是这个结果:

在此处输入图片描述

我想要这样的东西(“压缩机(Cp)”而不是“压缩机(cp)”和“压缩机电机(CM)”而不是“压缩机电机(cm)”):

在此处输入图片描述

但同样,我希望在符号字段(cp 或 cm)中以小写形式声明符号,如不工作下面的例子:

\newglossaryentry{subsytem}{name={Subssytems},description={\glspar},sort={4}}
\newglossaryentry{compressor}
{
  name={Compressor},
  text={compressor},
  sort={compressor},
  description={Air Compressor},
  symbolname={Cp},%!!!!!!!!!!!!!!!!!!!!!!!!!
  symbol={cp},
  parent=subsytem
}
\newglossaryentry{compressor_motor}
{
  name={Compressor Motor},
  sort={compressor motor},
  text={compressor motor},
  description={Motor of the \Gls{compressor}},
  symbolname={CM},%!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  symbol={cm},
  parent=subsytem
}
\begin{document}
\gls{compressor_motor}
\gls{compressor}
\printnoidxglossary
\end{document}

为什么我想要symbol字段中写小写字母?

\glssymbol{compressor}因为我使用小写符号形式来声明其他“数学条目”,就像下面在字段中的使用一样name

\usepackage{amsmath,bm,times}
\newglossaryentry{PQ}{name={Physical Quantities},description={\glspar},sort={5}}
\newglossaryentry{Qcp}
{
  name={$\mathbf{\bm{Q}}_{\glssymbol{compressor},out}$},
  sort={Qcpout},
  text={\Glssymbol{compressor} Air Outlet Mass Flow Rate},
  description={Compressor Air Outlet Mass Flow Rate},
  parent=PQ
}

对于这些“数学条目”,我希望符号\glssymbol{compressor}为小写。但是当我在文本文档中使用符号时,有时我会使用\GLSsymbol\Glssymbol或 的形式\glssymbol。但目前在我的 MWE 中,符号在词汇表中以小写形式打印(当然),但我更喜欢大写或大写形式,这取决于我(这是一个个案选择)。这就是为什么我更喜欢一个带有新字段(如symbolname)的解决方案,以便手动选择是否要以大写形式(Cp)或大写形式(CM)打印符号...

答案1

更新(2)在后续问题之后。

现在有一个新的键定义符号名称(symbolname),将用于打印词汇表。您可以使用任何其他您想要的“符号”,而不仅仅是大写字母,如本例所示。

如果symbolname未定义,它将使用该symbol值来打印词汇表。(新)<<

添加了一个新条目compressor_valve来显示此默认行为。

d

\documentclass{article}
\usepackage[style=tree]{glossaries-extra}

\usepackage{xcolor}
\usepackage{tikz}

%*************************************** added <<<<<<<<<<<<<<<<<<
\glsaddkey*% 
{symbolname}% key
{\glsentrysymbol{\glslabel}}% default value CHANGED <<<<<<<<<<<<<<<<<<
{\glsentrysymbolname}% command analogous to \glsentrytext
{\Glsentrysymbolname}% command analogous to \Glsentrytext
{\glssymbolname}% command analogous to \glstext
{\Glssymbolname}% command analogous to \Glstext
{\GLSsymbolname}% command analogous to \GLStext 

 \renewcommand{\subglossentry}[3]{%  <<<<<<<<<<<<<<<<
    \hangindent#1\glstreeindent\relax
    \parindent#1\glstreeindent\relax
    \ifnum#1=1\relax
    \glssubentryitem{#2}%
    \fi
    \glstreenamefmt{\glstarget{#2}{\glossentryname{#2}}}%
    \ifglshassymbol{#2}{\space(\glsentrysymbolname{#2})}{}%
    \glstreechildpredesc\glossentrydesc{#2}\glspostdescription\space #3\par
}%

% *******************************************

\usepackage{amsmath,bm,times}   

\makenoidxglossaries

\newglossaryentry{subsytem}{name={Subssytems},description={\glspar},sort={4}}   
\newglossaryentry{compressor}
{
    name={Compressor},
    text={compressor},
    sort={compressor},
    description={Air Compressor},
    symbol={cp},
    symbolname={\textcolor{red}{123Cpxx}},% added <<<<<<<<<<<<<<<<<<<
    parent=subsytem
}

\newglossaryentry{compressor_motor}
{
    name={Compressor Motor},
    sort={compressor motor},
    text={compressor motor},
    description={Motor of the \Gls{compressor}},
    symbol={cm},
    symbolname={456CMxx},% added <<<<<<<<<<<<<<<<<<<
    parent=subsytem
}

\newglossaryentry{compressor_valve}% symbolname is not defined <<<<<<<<<<<<
{
    name={Compressor Valve},
    sort={compressor valve},
    text={compressor valve},
    description={Valve of the \Gls{compressor}},
    symbol={vv},
    parent=subsytem
}

\newglossaryentry{PQ}{name={Physical Quantities},description={\glspar},sort={5}}
\newglossaryentry{Qcp}
{
    name={$\mathbf{\bm{Q}}_{\glssymbol{compressor},out}$},
    sort={Qcpout},
    text={\Glssymbol{compressor} Air Outlet Mass Flow Rate},
    description={Compressor Air Outlet Mass Flow Rate},
    symbol={cp},
    symbolname={FlowRate},% added <<<<<<<<<<<<<<<<<<<
    parent=PQ
}

\begin{document}
    
    \gls{compressor_valve};
    \gls{compressor_motor};
    \gls{compressor}
    
    \bigskip    
    
    \gls{Qcp}
    
    \printnoidxglossary
\end{document}

查看使用 beamer 类

% !TeX TS-program = pdflatex

\documentclass[11pt]{beamer}

....

\begin{document}

    \begin{frame}[plain]
        \maketitle
    \end{frame}
    
    \begin{frame}
        \frametitle{}       
        \gls{compressor_valve};
        \gls{compressor_motor};
        \gls{compressor}        
        \bigskip    
        
        \gls{Qcp}
    \end{frame}

    \begin{frame}
    \frametitle{Glossary}       
    \printnoidxglossary
    \end{frame}

\end{document}

AB

相关内容