使用 tikzsetnextfilename 命名外部 tikz 文件会禁用 tikzscale

使用 tikzsetnextfilename 命名外部 tikz 文件会禁用 tikzscale

要实施此处讨论的方法:自动检测 Overleaf 以获取后备图像我想给我的 tikz 文件赋予它们自己的名称,这样我可以在本地编译时包含 tikz 文件,或者在 overleaf 上工作时包含 pdf 文件(如果事先知道 PDF 的文件名,这会容易得多)。因此,我将 包含tikzsetnextfilename在我的 tikzfiles 中。不幸的是,这似乎禁用了includegraphics和给出的缩放可能性tikzscale。例如,有两个文件main.texsub.tikz

主要.tex:

\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usetikzlibrary{external}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\usepackage{filecontents}
\usepackage{tikzscale}
\begin{filecontents*}{file1.dat}
    x y
    0 0
    1 1
    2 2
    3 3
    4 4
    5 5
\end{filecontents*}
\usepackage{subcaption}
\tikzexternalize[prefix=tikz-cache/]
\tikzset{external/force remake}
\usetikzlibrary{pgfplots.groupplots}

\pgfplotsset{every axis/.append style={
        label style={font=\footnotesize\bfseries},
        tick label style={font=\footnotesize},
        legend style={font=\footnotesize}
    },
    y axis/.append style={align=center}}
\tikzset{Line Label/.style={font=\footnotesize,scale=2}}
\newcommand{\figurefontsize}{\footnotesize}

\begin{document}
    \begin{figure}[htpb]
        \centering
        \includegraphics[width=7\linewidth]{sub.tikz}
        \caption{Image I}
    \end{figure}
\end{document}

sub.tikz:

\pgfplotstableread{file1.dat}{\tablea}
\tikzsetnextfilename{sub}
\begin{tikzpicture} 
    \begin{axis}[
        ymin=0, ymax=30,
        xmin=0, xmax=5,
        xlabel={$x$},
        ylabel={$y$},
        grid=major,
        legend entries={\(y_1\),\(y_2\),\(y_1+y_2\)},
        legend pos = north west
        ]
        % Select appropriate columns
        \addplot [blue, mark=*] table [x=x,y=y] {\tablea};
    \end{axis}
\end{tikzpicture}

禁用 tikzsetnextfilename 后,缩放功能有效,并且图表会适当缩放。但是,启用它会导致固定缩放因子 1,而不会出现任何日志错误或警告。有解决方案或解释吗(或者可能两者兼有)?

答案1

对我来说,搬出\tikzsetnextfilename{extname}去之前\includegraphics[opts]{filename.tikz},而不是拥有它里面 filename.tikz解决了问题。

相关内容