这是我在使用命名法包时遇到的一个奇怪的错误nomencl
以下代码:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{nomencl}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsmath}
\makenomenclature
\begin{document}
\mbox{}
\nomenclature{$S^n$}{The $n$-sphere defined by $S^n = \{x \in \mathbb{R}^{n+1} \ | \ |x| = 1 \}$}
\nomenclature{$\mathbb{Z}$}{The integers}
\printnomenclature
\end{document}
输出如下
但是如果在上面我改变
$S^n = \{x \in \mathbb{R}^{n+1} : \text{norm of } x = 1 \}$
到
$S^n = \{x \in \mathbb{R}^{n+1} \ | \ |x| = 1 \}$
这样我就有了以下(所需的)代码
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{nomencl}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsmath}
\makenomenclature
\begin{document}
\mbox{}
\nomenclature{$S^n$}{The $n$-sphere defined by $S^n = \{x \in \mathbb{R}^{n+1} \ | \ |x| = 1 \}$}
\nomenclature{$\mathbb{Z}$}{The integers}
\printnomenclature
\end{document}
那么关于 n 球面的部分就不再出现了
我不确定我是否在命名法包的范围之外使用它,但似乎字符
|
在数学模式下,在第二个输入中使用时不起作用\nomenclature{}{}
。如何才能正确编译/渲染所需的代码?
无论如何,我正在使用 pdfLatex 来呈现输出。
答案1
字符|
对于 MakeIndex 来说是特殊的,因此包含该字符的条目将被拒绝。您可以将其括起来,但nomencl.ist
将引号字符定义为%
,因此结果是根本没有可用的引号字符。
另一方面,集合符号和绝对值的正确语法是
\{x \in \mathbb{R}^{n+1} \mid \lvert x\rvert = 1 \}
这对 来说不是什么问题nomencl
。
这就是我编写示例的方式。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{nomencl}
% shorthands
\newcommand{\numberset}[1]{\mathbb{#1}}% generic command
\newcommand{\nR}{\numberset{R}}
\newcommand{\nZ}{\numberset{Z}}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
% setup
\makenomenclature
\begin{document}
\mbox{}
\nomenclature[Sn]{$S^n$}{The $n$-sphere defined by $S^n = \{x \in \nR^{n+1} \mid \abs{x} = 1 \}$}
\nomenclature[Z]{$\nZ$}{The integers}
\printnomenclature
\end{document}
使用前缀 for\nomenclature
有助于排序。简写有助于键入和阅读源代码。