我正在编写一个book
并nomencl
在末尾使用来打印符号列表。我该如何引用这个列表?在本书的介绍中,我想写一些类似“我们使用的所有符号都可以在中找到”的内容,其中 LaTeX 应该用命名列表的名称\cref{...}
替换,即用。\cref{...}
\nomrefname
使用intoc
选项或\addcontentsline
命令,我设法在目录中获取符号列表的条目,但是当我在\label{SectionNomenclature}
我的之前或之后放置类似的内容\printnomenclature
并尝试时\cref{SectionNomenclature}
,我会引用符号列表之前的最后一章。:(
梅威瑟:
\documentclass[a4paper,oneside]{book}
\usepackage[refpage,intoc]{nomencl} %nomenclature
\usepackage[pdftex]{hyperref} %hyperlink references
\usepackage[capitalize]{cleveref} %automatic clever references
\makenomenclature
\nomenclature[N]{$\mathbb{N}$}{the natural numbers $\N=\{0,1,2, \ldots \}$}
\begin{document}
\tableofcontents
\part{Introduction}
\chapter{Overview}
\section{Blabla}
All the symbols used can be found in \cref{SectNomenclature}.
\printnomenclature
\label{SectNomenclature}
\end{document}
答案1
由于您已经在加载hyperref
,您可以修补\thenomenclature
使用\phantomsection
(生成锚点)并添加\label
;由于您有兴趣获取部分单元的标题,请使用\nameref
:
\documentclass[a4paper,oneside]{book}
\usepackage[refpage,intoc]{nomencl}
\usepackage{etoolbox}
\usepackage{hyperref}
\usepackage[capitalize]{cleveref}
\patchcmd{\thenomenclature}
{\chapter*{\nomname}}
{\phantomsection\chapter*{\nomname}\label{SectNomenclature}}
{}
{}
\makenomenclature
\nomenclature[N]{$\mathbb{N}$}{the natural numbers $\N=\{0,1,2, \ldots \}$}
\begin{document}
\tableofcontents
\part{Introduction}
\chapter{Overview}
\section{Test section}
All the symbols used can be found in~\nameref{SectNomenclature}.
\printnomenclature
\end{document}
无需将pdftex
选项传递给hyperref
;正确的驱动程序将被自动检测。
答案2
基于 Gonzalo Medina 的回答,您可以\cref
通过引入一个新的计数器并在命名法部分的开头重新步进它来使命令起作用。
\documentclass[a4paper,oneside]{book}
\usepackage[refpage,intoc,notocbasic]{nomencl}
\usepackage{amssymb}
\usepackage{etoolbox}
\usepackage{hyperref}
\usepackage[capitalize]{cleveref}
\newcounter{nomencl}
\crefformat{nomencl}{#2Nomenclature#3}
\patchcmd{\thenomenclature}
{\chapter*{\nomname}}
{\clearpage\refstepcounter{nomencl}\chapter*{\nomname}\label{SectNomenclature}}
{}
{}
\makenomenclature
\newcommand{\N}{\mathbb N}
\nomenclature[N]{$\mathbb{N}$}{the natural numbers $\N=\{0,1,2, \ldots \}$}
\begin{document}
\tableofcontents
\part{Introduction}
\chapter{Overview}
\section{Test section}
All the symbols used can be found in~\cref{SectNomenclature}.
\printnomenclature
\end{document}
notocbasic
在最近的版本中需要该选项才能实现此功能。