Tikz 相当于 \graphicspath

Tikz 相当于 \graphicspath

Tikz 命令\draw plot file{data/filename.dat}通过存储在 filename.dat 中的坐标绘制一条线,该坐标包含在子文件夹数据中。是否有 Tikz 等效项,\graphicspath{{./data/}}以便我不必data/在每个绘图命令前面都写上?

这个帖子展示了如何使用 pgfplots 包来实现这一点,但我想知道是否有 Tikz 原生方法可以实现相同的功能。我真的不想加载整个 pgfplots 包,只是为了避免输入data/

以下是 MWE:

\begin{filecontents*}{data/somedata.dat}
1 2
3 4
5 6
\end{filecontents*}

\documentclass{standalone}
\usepackage{tikz, graphicx}
\graphicspath{{./data/}}

\begin{document}
    \begin{tikzpicture}
        \draw plot file{somedata.dat};
    \end{tikzpicture}
\end{document}

答案1

事实证明,它\tikzset{every plot/.style={prefix=data/}}仅适用于通过该操作使用 GNUplot 生成的图plot function。要将前缀应用于文件中数据点的图,可以将以下代码添加到序言中。

\makeatletter
\def\tikz@plot@file ile#1{\def\tikz@plot@data{\pgfplotxyfile{\tikz@plot@prefix#1}}\tikz@@@plot}
\makeatother
\tikzset{every plot/.style={prefix=data/}}

这实际上只是将plot/prefix存储在 中的密钥添加\tikz@plot@prefix到传递给 的文件名中plot file。可能有更好的方法来修补此问题,因为如果plot file重新实现该操作,这将中断。但目前它可以工作。

相关内容