使用书籍类、pgfplots、hyperref 和章节标签时按照“如何使用 \part 重置章节和部分计数器“,我收到以下错误
! You can't use `the character -' after \the.
\value ->-
1.60942
l.51 \end{axis}
在以下 MWE 中
\documentclass[a4paper, 12pt]{book}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7} % to use more recent defaults
\usepackage{hyperref}
%section restarts at each part
%see https://tex.stackexchange.com/questions/54383/how-to-reset-chapter-and-section-counter-with-part/123777#123777
\makeatletter\@addtoreset{chapter}{part}\makeatother
\begin{document}
\begin{figure}
\centering
\pgfplotsset{
colormap/hot,
}%
\pgfmathparse{-ln(0.1)}%
\let\BEMAX=\pgfmathresult
\pgfmathparse{-ln(5)}%
\let\BEMIN=\pgfmathresult
% FIRST: define one color for every value of \be :
\pgfplotsforeachungrouped \be in {
0.1,
0.5,
0.8,
1.0,
2.0,
5.0} {
\pgfmathparse{-ln(\be)}
\let\value=\pgfmathresult
}
\begin{tikzpicture}
\begin{axis}[ylabel={$p(x)$},
legend to name={fig:mm_temp_legend}
]
\pgfplotsforeachungrouped \be/\zedd in {
0.1/12.4595,
0.5/18.3263,
0.8/29.6888,
1.0/43.0372,
2.0/403.539,
5.0/1.07923e6 } {
\addplot+ gnuplot {x};
}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
改编自 Christian Feuersänger 对“网格图的线图例“。我试图使示例尽可能小。特别是,删除
\usepackage{hyperref}
、\makeatletter\@addtoreset{chapter}{part}\makeatother
或中的任何一个\let\value=\pgfmathresult
都legend to name={fig:mm_temp_legend}
可以使其编译。
答案1
\value
是与计数器相关的重要 LaTeX 命令,重新定义它不是一个好主意。请使用\VALUE
或其他名称。
请注意,您可以简化您的构造
\pgfmathparse{-ln(0.1)}\let\BEMAX=\pgfmathresult
作为
\pgfmathsetmacro\BEMAX{-ln(0.1)}
其它类似的呼叫也类似。
在我看来,为每个部分重新设置章节编号也是一个坏主意,这会让交叉引用变得非常笨拙
正如我们在第三部分第二章中看到的那样
无论如何,有了这个chngcntr
包,改变就变得更容易了:
\usepackage{chngcntr}
\counterwithin*{chapter}{part}
计数器*
表示chapter
不会被修改;\thepart.\arabic{chapter}
如果不使用 *-variant,它就会变成这样。