问题:我想使用 TeXLive2016 兼容性编译下图。我知道这有点过时了,但显然 arxiv 使用了它。MWE 使用 TeXLive2019 进行编译,但当我切换到 TeXLive2016 时则不行(例如在 Overleaf 上,您可以轻松更改 TeXLive 版本)。我已将错误定位为由 axis 环境中的 xtick 定义引起的。不知何故,这里的宏没有正确解析,而在其他地方它们都解析得很好。
引发的错误是:
!PGF 数学包错误:无法将输入“0.7+1.0”解析为浮点数,抱歉。无法读取的部分接近“+1.0”。请参阅 PGF 数学包文档以了解解释。输入 H 可立即获得帮助。...
l.49 \end{axis}
我尝试过的:
- 使用 xfp 包 -> 兼容性问题
- 使用 fp 包 -> 无法构建评估列表
\FPeval
- 为正确的 x-tick 位置创建样式 -> 没有解决问题
- 在 xtick-> 上使用 /.expanded 没有解决问题
\pgfmathparse
与 -> 结合使用\pgfmathresult
,在 TeXLive2016 中不可用
相关问题:以下是我认为与我的问题相关的问题,尽管我还无法从中得出答案。
梅威瑟:
\documentclass[preview]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{graphics}
%
\usepackage{tikz}%drawings like geometries
\usetikzlibrary{calc,matrix,positioning}
\usetikzlibrary{decorations.pathmorphing}
%
\usepackage{pgfplots}
\pgfplotsset{
,compat=1.12
}
%----------------------------------------
\begin{document}
%
\begin{figure}[ht]
\centering
\begin{tikzpicture}
%Define Parameters
\newcommand\tmin{0.7}
\newcommand{\dtmax}{\dtstart}
\newcommand{\dtstart}{1.0}
\newcommand{\T}{2.0}
\newcommand{\zmin}{3.0}
\newcommand{\dvstart}{0.8}
\newcommand{\vstart}{1.0}
\newcommand{\zmax}{9.0}
\newcommand{\g}{0.6}
\newcommand{\keff}{1.0}
%
\begin{axis}[
xlabel={t}, xlabel style={at={(1,0)}, anchor=west},
ylabel={z (m)}, ylabel style={rotate=-90,at={(0,1)}, anchor=south},
xmin=0.0, xmax=\tmin+\dtstart+2*\T+2*\dtmax,
xtick={0,\tmin,\tmin+\dtstart,\tmin+\dtstart+\T,\tmin+\dtstart+\T+\T,\tmin+\dtstart+\T+\T+\dtmax},%
xticklabels={$0$,$t_{start}$,$t_0$,$t_0+T$,$t_0+2T$,$t_{end}$},%
ymin=0, ymax=\zmax,
axis lines = left,
y=1.cm,
x=1.cm,
ytick={0,1,...,12},
legend pos=north west,
%grid=both,
ymajorgrids=true,
grid style=dashed,
]
\end{axis}
%Laserbeams
\draw[decorate, decoration = snake, very thick, red, opacity=0.5]
({\tmin + \dtstart},0) to ({\tmin + \dtstart},{.9*\zmax}) node[above] {$\pi/2$};
\draw[decorate, decoration = snake, very thick, red, opacity=0.5,]
({\tmin + \dtstart+\T},0) to ({\tmin + \dtstart + \T},{.9*\zmax}) node[above] {$\pi$};
\draw[decorate, decoration = snake, very thick, red, opacity=0.5,]
({\tmin + \dtstart + 2*\T},0) to ({\tmin + \dtstart + 2*\T},{.9*\zmax}) node[above] {$\pi/2$};
\end{tikzpicture}
\end{figure}
\end{document}