Я хочу получить доступ и построить графики одних и тех же данных из разных документов LaTeX (документа и презентации в проекторе) с помощью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