Gnuplottex: Pass latex command to gnuplot script











up vote
0
down vote

favorite












I want to access and plot the same data from different LaTeX documents (a paper and a beamer presentation) using gnuplottex. The data and the gnuplot script is stored at some individual position relative to the two documents. To re-use as much code as possible, I would like to define the relative path to the data in each document in a macro, here datapath.



My question is: How can I pass the value of this command to the gnuplot script? I would basically like to use the following in my MWE:



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


I did find this thread. However I was unable to modify it to my needs. Can someone help me, please?





MWE



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}









share|improve this question






















  • Your MWE works fine for me on Linux with pdflatex.
    – Lars Kotthoff
    Feb 15 at 17:22










  • Sure, it works great, no question. But I want to be able to use plot datapath'/data.csv' using 1:2 with lines instead of plot './ZZZ/data.csv' using 1:2 with lines. But how can I pass and expand the value of datapath inside the gnuplot document or store the content of datapath in a variable inside the gnuplot script as done in the post I linked to in my question?
    – krtek
    Feb 15 at 17:30










  • See stackoverflow.com/q/12328603/923955 I guess you need to do renewcommand{gnuplotexe}{gnuplot -e "dirname=./ZZZ"} and use dirname in the script file. I don't know about quoting, though, perhaps you don't need them.
    – egreg
    Feb 15 at 18:25

















up vote
0
down vote

favorite












I want to access and plot the same data from different LaTeX documents (a paper and a beamer presentation) using gnuplottex. The data and the gnuplot script is stored at some individual position relative to the two documents. To re-use as much code as possible, I would like to define the relative path to the data in each document in a macro, here datapath.



My question is: How can I pass the value of this command to the gnuplot script? I would basically like to use the following in my MWE:



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


I did find this thread. However I was unable to modify it to my needs. Can someone help me, please?





MWE



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}









share|improve this question






















  • Your MWE works fine for me on Linux with pdflatex.
    – Lars Kotthoff
    Feb 15 at 17:22










  • Sure, it works great, no question. But I want to be able to use plot datapath'/data.csv' using 1:2 with lines instead of plot './ZZZ/data.csv' using 1:2 with lines. But how can I pass and expand the value of datapath inside the gnuplot document or store the content of datapath in a variable inside the gnuplot script as done in the post I linked to in my question?
    – krtek
    Feb 15 at 17:30










  • See stackoverflow.com/q/12328603/923955 I guess you need to do renewcommand{gnuplotexe}{gnuplot -e "dirname=./ZZZ"} and use dirname in the script file. I don't know about quoting, though, perhaps you don't need them.
    – egreg
    Feb 15 at 18:25















up vote
0
down vote

favorite









up vote
0
down vote

favorite











I want to access and plot the same data from different LaTeX documents (a paper and a beamer presentation) using gnuplottex. The data and the gnuplot script is stored at some individual position relative to the two documents. To re-use as much code as possible, I would like to define the relative path to the data in each document in a macro, here datapath.



My question is: How can I pass the value of this command to the gnuplot script? I would basically like to use the following in my MWE:



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


I did find this thread. However I was unable to modify it to my needs. Can someone help me, please?





MWE



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}









share|improve this question













I want to access and plot the same data from different LaTeX documents (a paper and a beamer presentation) using gnuplottex. The data and the gnuplot script is stored at some individual position relative to the two documents. To re-use as much code as possible, I would like to define the relative path to the data in each document in a macro, here datapath.



My question is: How can I pass the value of this command to the gnuplot script? I would basically like to use the following in my MWE:



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


I did find this thread. However I was unable to modify it to my needs. Can someone help me, please?





MWE



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}






macros expansion external-files gnuplottex






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Feb 15 at 17:02









krtek

851720




851720












  • Your MWE works fine for me on Linux with pdflatex.
    – Lars Kotthoff
    Feb 15 at 17:22










  • Sure, it works great, no question. But I want to be able to use plot datapath'/data.csv' using 1:2 with lines instead of plot './ZZZ/data.csv' using 1:2 with lines. But how can I pass and expand the value of datapath inside the gnuplot document or store the content of datapath in a variable inside the gnuplot script as done in the post I linked to in my question?
    – krtek
    Feb 15 at 17:30










  • See stackoverflow.com/q/12328603/923955 I guess you need to do renewcommand{gnuplotexe}{gnuplot -e "dirname=./ZZZ"} and use dirname in the script file. I don't know about quoting, though, perhaps you don't need them.
    – egreg
    Feb 15 at 18:25




















  • Your MWE works fine for me on Linux with pdflatex.
    – Lars Kotthoff
    Feb 15 at 17:22










  • Sure, it works great, no question. But I want to be able to use plot datapath'/data.csv' using 1:2 with lines instead of plot './ZZZ/data.csv' using 1:2 with lines. But how can I pass and expand the value of datapath inside the gnuplot document or store the content of datapath in a variable inside the gnuplot script as done in the post I linked to in my question?
    – krtek
    Feb 15 at 17:30










  • See stackoverflow.com/q/12328603/923955 I guess you need to do renewcommand{gnuplotexe}{gnuplot -e "dirname=./ZZZ"} and use dirname in the script file. I don't know about quoting, though, perhaps you don't need them.
    – egreg
    Feb 15 at 18:25


















Your MWE works fine for me on Linux with pdflatex.
– Lars Kotthoff
Feb 15 at 17:22




Your MWE works fine for me on Linux with pdflatex.
– Lars Kotthoff
Feb 15 at 17:22












Sure, it works great, no question. But I want to be able to use plot datapath'/data.csv' using 1:2 with lines instead of plot './ZZZ/data.csv' using 1:2 with lines. But how can I pass and expand the value of datapath inside the gnuplot document or store the content of datapath in a variable inside the gnuplot script as done in the post I linked to in my question?
– krtek
Feb 15 at 17:30




Sure, it works great, no question. But I want to be able to use plot datapath'/data.csv' using 1:2 with lines instead of plot './ZZZ/data.csv' using 1:2 with lines. But how can I pass and expand the value of datapath inside the gnuplot document or store the content of datapath in a variable inside the gnuplot script as done in the post I linked to in my question?
– krtek
Feb 15 at 17:30












See stackoverflow.com/q/12328603/923955 I guess you need to do renewcommand{gnuplotexe}{gnuplot -e "dirname=./ZZZ"} and use dirname in the script file. I don't know about quoting, though, perhaps you don't need them.
– egreg
Feb 15 at 18:25






See stackoverflow.com/q/12328603/923955 I guess you need to do renewcommand{gnuplotexe}{gnuplot -e "dirname=./ZZZ"} and use dirname in the script file. I don't know about quoting, though, perhaps you don't need them.
– egreg
Feb 15 at 18:25












1 Answer
1






active

oldest

votes

















up vote
0
down vote













You can do it with immediatewrite instead of filecontents*:



newwritetempfile

immediateopenouttempfile=datapath/script.gnuplot
immediatewritetempfile{set key autotitle columnhead;
set datafile separator ",";
plot 'datapath/data.csv' using 1:2 with lines}
immediatecloseouttempfile





share|improve this answer





















  • Thanks, but the data files and the gnuplot script exist as files at a defined location. filecontents* was only used here to provide a complete MWE.
    – krtek
    Feb 15 at 17:56










  • I guess then I don't understand your question. How are you going to pass the location of the data if you don't write it to the script file?
    – Lars Kotthoff
    Feb 15 at 17:58










  • That exactly is my question. In this post the value of the line color is stored in a macro and expanded into a variable s inside the gnuplot script without writing it. So I guess it is possible. I just wasn't able to modify the approach to my problem. I always get the error that the files cannot be found.
    – krtek
    Feb 15 at 18:02










  • This would require modifying the gnuplottex source code to read and replace a macro in the file.
    – Lars Kotthoff
    Feb 15 at 18:11











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f415496%2fgnuplottex-pass-latex-command-to-gnuplot-script%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













You can do it with immediatewrite instead of filecontents*:



newwritetempfile

immediateopenouttempfile=datapath/script.gnuplot
immediatewritetempfile{set key autotitle columnhead;
set datafile separator ",";
plot 'datapath/data.csv' using 1:2 with lines}
immediatecloseouttempfile





share|improve this answer





















  • Thanks, but the data files and the gnuplot script exist as files at a defined location. filecontents* was only used here to provide a complete MWE.
    – krtek
    Feb 15 at 17:56










  • I guess then I don't understand your question. How are you going to pass the location of the data if you don't write it to the script file?
    – Lars Kotthoff
    Feb 15 at 17:58










  • That exactly is my question. In this post the value of the line color is stored in a macro and expanded into a variable s inside the gnuplot script without writing it. So I guess it is possible. I just wasn't able to modify the approach to my problem. I always get the error that the files cannot be found.
    – krtek
    Feb 15 at 18:02










  • This would require modifying the gnuplottex source code to read and replace a macro in the file.
    – Lars Kotthoff
    Feb 15 at 18:11















up vote
0
down vote













You can do it with immediatewrite instead of filecontents*:



newwritetempfile

immediateopenouttempfile=datapath/script.gnuplot
immediatewritetempfile{set key autotitle columnhead;
set datafile separator ",";
plot 'datapath/data.csv' using 1:2 with lines}
immediatecloseouttempfile





share|improve this answer





















  • Thanks, but the data files and the gnuplot script exist as files at a defined location. filecontents* was only used here to provide a complete MWE.
    – krtek
    Feb 15 at 17:56










  • I guess then I don't understand your question. How are you going to pass the location of the data if you don't write it to the script file?
    – Lars Kotthoff
    Feb 15 at 17:58










  • That exactly is my question. In this post the value of the line color is stored in a macro and expanded into a variable s inside the gnuplot script without writing it. So I guess it is possible. I just wasn't able to modify the approach to my problem. I always get the error that the files cannot be found.
    – krtek
    Feb 15 at 18:02










  • This would require modifying the gnuplottex source code to read and replace a macro in the file.
    – Lars Kotthoff
    Feb 15 at 18:11













up vote
0
down vote










up vote
0
down vote









You can do it with immediatewrite instead of filecontents*:



newwritetempfile

immediateopenouttempfile=datapath/script.gnuplot
immediatewritetempfile{set key autotitle columnhead;
set datafile separator ",";
plot 'datapath/data.csv' using 1:2 with lines}
immediatecloseouttempfile





share|improve this answer












You can do it with immediatewrite instead of filecontents*:



newwritetempfile

immediateopenouttempfile=datapath/script.gnuplot
immediatewritetempfile{set key autotitle columnhead;
set datafile separator ",";
plot 'datapath/data.csv' using 1:2 with lines}
immediatecloseouttempfile






share|improve this answer












share|improve this answer



share|improve this answer










answered Feb 15 at 17:52









Lars Kotthoff

49836




49836












  • Thanks, but the data files and the gnuplot script exist as files at a defined location. filecontents* was only used here to provide a complete MWE.
    – krtek
    Feb 15 at 17:56










  • I guess then I don't understand your question. How are you going to pass the location of the data if you don't write it to the script file?
    – Lars Kotthoff
    Feb 15 at 17:58










  • That exactly is my question. In this post the value of the line color is stored in a macro and expanded into a variable s inside the gnuplot script without writing it. So I guess it is possible. I just wasn't able to modify the approach to my problem. I always get the error that the files cannot be found.
    – krtek
    Feb 15 at 18:02










  • This would require modifying the gnuplottex source code to read and replace a macro in the file.
    – Lars Kotthoff
    Feb 15 at 18:11


















  • Thanks, but the data files and the gnuplot script exist as files at a defined location. filecontents* was only used here to provide a complete MWE.
    – krtek
    Feb 15 at 17:56










  • I guess then I don't understand your question. How are you going to pass the location of the data if you don't write it to the script file?
    – Lars Kotthoff
    Feb 15 at 17:58










  • That exactly is my question. In this post the value of the line color is stored in a macro and expanded into a variable s inside the gnuplot script without writing it. So I guess it is possible. I just wasn't able to modify the approach to my problem. I always get the error that the files cannot be found.
    – krtek
    Feb 15 at 18:02










  • This would require modifying the gnuplottex source code to read and replace a macro in the file.
    – Lars Kotthoff
    Feb 15 at 18:11
















Thanks, but the data files and the gnuplot script exist as files at a defined location. filecontents* was only used here to provide a complete MWE.
– krtek
Feb 15 at 17:56




Thanks, but the data files and the gnuplot script exist as files at a defined location. filecontents* was only used here to provide a complete MWE.
– krtek
Feb 15 at 17:56












I guess then I don't understand your question. How are you going to pass the location of the data if you don't write it to the script file?
– Lars Kotthoff
Feb 15 at 17:58




I guess then I don't understand your question. How are you going to pass the location of the data if you don't write it to the script file?
– Lars Kotthoff
Feb 15 at 17:58












That exactly is my question. In this post the value of the line color is stored in a macro and expanded into a variable s inside the gnuplot script without writing it. So I guess it is possible. I just wasn't able to modify the approach to my problem. I always get the error that the files cannot be found.
– krtek
Feb 15 at 18:02




That exactly is my question. In this post the value of the line color is stored in a macro and expanded into a variable s inside the gnuplot script without writing it. So I guess it is possible. I just wasn't able to modify the approach to my problem. I always get the error that the files cannot be found.
– krtek
Feb 15 at 18:02












This would require modifying the gnuplottex source code to read and replace a macro in the file.
– Lars Kotthoff
Feb 15 at 18:11




This would require modifying the gnuplottex source code to read and replace a macro in the file.
– Lars Kotthoff
Feb 15 at 18:11


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f415496%2fgnuplottex-pass-latex-command-to-gnuplot-script%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to send String Array data to Server using php in android

Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

Is anime1.com a legal site for watching anime?