pgfplots:在轴环境中括号是强制性的吗?

pgfplots:在轴环境中括号是强制性的吗?

假设我们有这段小代码片段:

\begin{tikzpicture}
    \begin{axis}[
                date coordinates in = x,
                table/col sep       = semicolon,
                date ZERO           = 2019-01-01 09:00:00,
                xmin                = 2019-01-01 09:00:00,
                xmax                = 2019-01-10 21:00:00,
                xticklabel          = \day.\month,
                xlabel              = Test,
                ]
    \addplot table [x=Date, y=Value] {data.csv};
    \end{axis}
\end{tikzpicture}

结果看起来与用此代码编译的结果完全相同:

\begin{tikzpicture}
    \begin{axis}[
                date coordinates in = {x},
                table/col sep       = {semicolon},
                date ZERO           = {2019-01-01 09:00:00},
                xmin                = {2019-01-01 09:00:00},
                xmax                = {2019-01-10 21:00:00},
                xticklabel          = {\day.\month},
                xlabel              = {Test},
                ]
    \addplot table [x=Date, y=Value] {data.csv};
    \end{axis}
\end{tikzpicture}

所以:

什么时候必须使用括号,什么时候不需要使用括号?

答案1

基本上,你必须当值中包含以下三个(我记得的)字符之一时,请用括号将值括在键中:,=]

假设您有(例如)这样的选项:

legend style = draw = none, fill = white

如何分辨什么是键以及传递给该键的值是什么?

使用花括号是为了向底层键值解析包明确什么是键,什么是值。这种“保护”在 TeX 级别起作用,因为当 TeX 抓取分隔参数(用于键值解析器)时,它会(引用 TeXbook,重点是我加的):

A分隔参数接下来是<parameter text>在到达参数文本的末尾或下一个参数标记之前,最短(可能为空)的标记序列,具有适当的嵌套{...}具有适当嵌套组的输入中紧接着的是这一特定的非参数标记列表。(类别代码和字符代码必须匹配,并且控制序列名称必须相同。)

因此{...}诀窍是确保解析器能够获得正确的键和值。

从我提到的三个字符来看,,和需要=隐藏,因为键值解析器会使用它们来确定键值对在何处结束,然后确定什么是键,什么是值。

也需要]受到保护,因为更早的时候,环境axis会抓取一个[...]-delimited 参数,如果你有一个明确的]非隐藏的 TeX 会认为它是参数分隔符并会在中途切断该参数。

您可以尝试使用虚拟键来查看使用或不使用括号时会发生什么:

\documentclass{article}

\usepackage{pgfkeys}
\pgfkeys{
  legend style/.code = {
    Legend Style: #1.\par
  },
  draw/.code = {
    ERROR! Draw: #1.\par
  },
  fill/.code = {
    ERROR! Fill: #1.\par
  },
}

\begin{document}

\pgfkeys{legend style = draw = none, fill = white}

\pgfkeys{legend style = {draw = none, fill = white}}

\end{document}

在此处输入图片描述

相关内容