为了给我的硕士论文添加术语,我遵循overleaf 的推荐并使用以下代码。
分组对我来说非常重要。不幸的是,我不知道如何使用 创建子群etoolbox
。对于这个特定示例,子群是指“物理常数”、“数字集”和“其他符号”的子部分。
我的总体目标是这样的:对于“公式和符号列表”部分(分组),有“空间和$ \ sigma$-代数”,“运算符”,“函数”等子部分...
我如何通过扩展下面的代码片段来实现这一点?
\documentclass{article}
\usepackage{amssymb}
\usepackage{nomencl}
\makenomenclature
%% This code creates the groups
% -----------------------------------------
\usepackage{etoolbox}
\renewcommand\nomgroup[1]{%
\item[\bfseries
\ifstrequal{#1}{P}{Physics constants}{%
\ifstrequal{#1}{N}{Number sets}{%
\ifstrequal{#1}{O}{Other symbols}{}}}%
]}
% -----------------------------------------
\begin{document}
Here is an example:
\nomenclature[P]{\(c\)}{Speed of light in a vacuum}
\nomenclature[P]{\(h\)}{Planck constant}
\nomenclature[P]{\(G\)}{Gravitational constant}
\nomenclature[N]{\(\mathbb{R}\)}{Real numbers}
\nomenclature[N]{\(\mathbb{C}\)}{Complex numbers}
\nomenclature[N]{\(\mathbb{H}\)}{Quaternions}
\nomenclature[O]{\(V\)}{Constant volume}
\nomenclature[O]{\(\rho\)}{Friction index}
\printnomenclature
\end{document}
答案1
现在有一个更好的工具可以实现这样的字符串切换命令。
\documentclass{article}
\usepackage{amssymb}
\usepackage{nomencl}
\makenomenclature
\renewcommand{\nomname}{List of formulas and symbols}
\ExplSyntaxOn
\NewExpandableDocumentCommand{\strcase}{mm}
{
\str_case:nn { #1 } { #2 }
}
\ExplSyntaxOff
\renewcommand\nomgroup[1]{%
\item[\bfseries
\strcase{#1}{
{S}{Spaces and \(\sigma\)-algebras}
{O}{Operators}
{F}{Functions}
% add here other cases
}%
]%
}
\begin{document}
Here is an example:
\nomenclature[S]{\(V\)}{a vector space}
\nomenclature[S]{\(\mathcal{A}\)}{a \(\sigma\)-algebra}
\nomenclature[O]{\(\mathrm{T}\)}{an operator}
\nomenclature[O]{\(\Sigma\)}{an operator}
\nomenclature[F]{\(f\)}{a function}
\nomenclature[F]{\(\log\)}{the natural logarithm}
\printnomenclature
\end{document}
您可以轻松扩展组集。