newglossaryentry:如何用其他键填充子键条目的键

newglossaryentry:如何用其他键填充子键条目的键

在比 MWE 更复杂的用例中,我想根据其他键(例如名称和描述)生成词汇表条目的符号键。在用例中,符号 a 将是由其他自定义键 b 和 c 组成的数学表达式,这些键是数学表达式,需要组合,例如 a:= b^c。

我在 MWE 中的方法对第一级条目有效,但对第二级条目无效。请参阅下面的 MWE 输出表“备注”列以了解我的预期。我观察到生成的符号始终是脚本中最后定义的子新词汇表条目的符号。

在此处输入图片描述

我将非常感激一些帮助和改进建议。

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{longtable}
\usepackage{booktabs}

\usepackage[nomain,nonumberlist]{glossaries}           

\newglossary[sog]{symbol}{soi}{soo}{Symbols}

\newglossarystyle{groupedsymbols}{%  
    \renewenvironment{theglossary}%  
    {\begin{longtable}{llp{\glsdescwidth}}}%  
        {\bottomrule % booktabs
        \end{longtable}}%  
    \renewcommand*{\glossaryheader}{%
        \toprule % booktabs 
        \bfseries Category & %
        \bfseries Symbol & %
        \bfseries Remark %
        \\\endhead
        \midrule % booktabs
    }%  
    \renewcommand*{\glsgroupheading}[1]{}% 
    %    
    \renewcommand*{\glossentry}[2]{%
        %\glsentryitem{##1} %
        \bfseries \glsentrydesc{##1} & & %
        \\
    }% 
    \renewcommand*{\subglossentry}[3]{%  
         & \glsentrysymbol{##2} & \glsentrydesc{##2} %
        \\
    }% 
    \renewcommand*{\glsgroupskip}{\relax}
}

\makeglossaries

\newglossaryentry{group}{%
    type=symbol,
    name={testgroup},
    description={Categ. 1}
}

\newglossaryentry{groupentrytwo}{%
    type=symbol,
    parent=group,
    name={yabc},  
    description={Symbol WRONG ! should be: yabc},
    symbol={\glsentryname{\glslabel}}
} 

\newglossaryentry{groupentryone}{%
    type=symbol,
    parent=group,
    name={zabc},  
    description={Symbol is zabc correctly},
    symbol={\glsentryname{\glslabel}}
} 

\begin{document}
    \glsaddall[types={symbol}]
    \printglossary[type=symbol,style=groupedsymbols]
\end{document}

答案1

我相信 Christian Hupfer 已经解决了您的问题。但如果这确实不是您想要的,也许您可​​以进一步澄清。我已经使用上述解决方案扩展了您的 MWE,并得到了我推断的预期结果。也许需要更复杂的 MWE

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{longtable}
\usepackage{booktabs}

\usepackage[nomain,nonumberlist]{glossaries}           

\newglossary[sog]{symbol}{soi}{soo}{Symbols}

\newglossarystyle{groupedsymbols}{%  
    \renewenvironment{theglossary}%  
    {\begin{longtable}{llp{\glsdescwidth}}}%  
        {\bottomrule % booktabs
        \end{longtable}}%  
    \renewcommand*{\glossaryheader}{%
        \toprule % booktabs 
        \bfseries Category & %
        \bfseries Symbol & %
        \bfseries Remark %
        \\\endhead
        \midrule % booktabs
    }%  
    \renewcommand*{\glsgroupheading}[1]{}% 
    %    
    \renewcommand*{\glossentry}[2]{%
        %\glsentryitem{##1} %
        \bfseries \glsentrydesc{##1} & & %
        \\
    }% 
    \renewcommand*{\subglossentry}[3]{%  
         & \glsentrytext{##2} & \glsentrydesc{##2} %
        \\
    }% 
    \renewcommand*{\glsgroupskip}{\relax}
}

\makeglossaries

\newglossaryentry{group}{%
    type=symbol,
    name={testgroup},
    description={Categ. 1}
}

\newglossaryentry{quadratic}{%
    type=symbol,
    name={testgrouptwo},
    description={quadratic formulas}
}

\newglossaryentry{groupentrytwo}{%
    type=symbol,
    parent=group,
    name={yabc},  
    description={Symbol WRONG ! should be: yabc  Not anymore.  This is what I expected.},
    symbol={\glsentryname{\glslabel}}
} 

\newglossaryentry{groupentryone}{%
    type=symbol,
    parent=group,
    name={zabc},  
    description={Symbol is zabc correctly as expected},
    symbol={\glsentryname{\glslabel}}
} 

\newglossaryentry{grouptwoentrytwo}{%
    type=symbol,
    parent=quadratic,
    name={$ax^2 + bx + c = 0$},  
    description={This is what I expect},
    symbol={\glsentryname{\glslabel}}
} 

\newglossaryentry{grouptwoentryone}{%
    type=symbol,
    parent=quadratic,
    name={$x = \frac{{ - b \pm \sqrt {b^2 - 4ac} }}{{2a}}$},  
    description={This is what I expect},
    symbol={\glsentryname{\glslabel}}
} 

\begin{document}
    \glsaddall[types={symbol}]
    \printglossary[type=symbol,style=groupedsymbols]
\end{document}

相关内容