Gnuplottex:将 latex 命令传递给 gnuplot 脚本

Gnuplottex:将 latex 命令传递给 gnuplot 脚本

我想使用以下方法访问和绘制来自不同 LaTeX 文档(一篇论文和一份 Beamer 演示文稿)的相同数据gnuplottex。数据和 gnuplot 脚本存储在相对于两个文档的某个单独位置。为了尽可能多地重复使用代码,我想在宏中定义每个文档中数据的相对路径,如下\datapath

我的问题是:如何将此命令的值传递给 gnuplot 脚本?我基本上想在我的 MWE 中使用以下内容:

plot \datapath'/data.csv' using 1:2 with lines

我确实找到了此主题。但是我无法根据自己的需要进行修改。有人能帮我吗?


平均能量损失

\documentclass{article}

\usepackage[latin1]{inputenx}
\usepackage{filecontents}
\usepackage[
  miktex,    % 
  subfolder, % generated graphs in a ”gnuplottex” subfolder
  cleanup,   % Delete the .gnuplot files after conversion
]{gnuplottex}

\newcommand{\datapath}{./ZZZ}

\begin{document}

% This is the data file to be plotted from
\begin{filecontents*}{\datapath/data.csv}
Col1,Col2
0,0
1,1
\end{filecontents*}

% This is the gnuplot script I would like to use the value of \datapath in
\begin{filecontents*}{\datapath/script.gnuplot}
set key autotitle columnhead
set datafile separator "," # for csv-file
plot './ZZZ/data.csv' using 1:2 with lines
\end{filecontents*}

\begin{figure}[htbp]
\centering
\gnuplotloadfile[terminal=cairolatex]{\datapath/script.gnuplot}
\end{figure}

\end{document}

答案1

您可以使用以下\immediate\write方式代替filecontents*

\newwrite\tempfile

\immediate\openout\tempfile=\datapath/script.gnuplot
\immediate\write\tempfile{set key autotitle columnhead; 
set datafile separator ","; 
plot '\datapath/data.csv' using 1:2 with lines}
\immediate\closeout\tempfile

相关内容