命名法包中不能使用 bars | |

命名法包中不能使用 bars | |

这是我在使用命名法包时遇到的一个奇怪的错误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有助于排序。简写有助于键入和阅读源代码。

在此处输入图片描述

相关内容