pgfplots 和 hyperref 在书籍类中因复杂图形而发生冲突

pgfplots 和 hyperref 在书籍类中因复杂图形而发生冲突

使用书籍类、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=\pgfmathresultlegend 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,它就会变成这样。

相关内容