%% %% This is file `gnuplottex.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% gnuplottex.dtx (with options: `package') %% %% Copyright (c) 2006-13, Lars Kotthoff and contributors %% %% Large portions copied from pdftex, %% Copyright (c) 2001-3, Radhakrishnan CV %% Rajagopal CV %% http://www.river-valley.com %% %% River Valley Technologies, Floor III, SJP Buildings, Cotton Hills %% Trivandrum, India 695014 %% %% Tel: +91 471 233 7501 %% %% Antoine Chambert-Loir %% %% http://www.math.polytechnique.fr/\protect \unhbox \voidb@x \protect \penalty \@M \ {}chambert %% %% Ecole polytechnique, Palaiseau Cedex, France %% %% This program is free software; you can redistribute it and/or %% modify it under the terms of the GNU General Public License %% as published by the Free Software Foundation; either version 2 %% of the License, or (at your option) any later version. %% %% This program is distributed in the hope that it will be useful, %% but WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %% GNU General Public License for more details. %% %% You should have received a copy of the GNU General Public License %% along with this program (gpl.txt); if not, write to the Free %% Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, %% MA 02111-1307, USA. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{gnuplottex} [2020/03/19 v0.9.5 gnuplot graphs in LaTeX] \RequirePackage{graphicx,moreverb,keyval,ifthen,catchfile} \newif\ifShellEscape \newif\ifmiktex \miktexfalse \newif\ifusesiunitx \newif\ifcleanup \newif\ifusesubfolder \newwrite\verbatim@out \DeclareOption{shell}{\ShellEscapetrue} \DeclareOption{noshell}{\ShellEscapefalse} \DeclareOption{miktex}{\global\miktextrue} \DeclareOption{siunitx}{\usesiunitxtrue} \DeclareOption{cleanup}{\cleanuptrue} \DeclareOption{subfolder}{\usesubfoldertrue} \@ifundefined{gnuplotexe}{\def\gnuplotexe{gnuplot}}{} \ExecuteOptions{shell} \ProcessOptions\relax %% test if shell escape really works \ifShellEscape \def\tmpfile{w18-test-\the\year\the\month\the\day\the\time.tex} \ifmiktex \immediate\write18{echo t > "\tmpfile"} \else \immediate\write18{touch \tmpfile} \fi \ifmiktex \IfFileExists{\tmpfile}{\ShellEscapetrue}{\ShellEscapefalse} \immediate\write18{del "\tmpfile"} \else \IfFileExists{\tmpfile}{\ShellEscapetrue}{\ShellEscapefalse} \immediate\write18{rm -f \tmpfile} \immediate\write18{rm -f "\jobname.gnuploterrors"} \fi \fi \ifusesubfolder \def\subfolder{gnuplottex} \ifShellEscape \ifmiktex \immediate\write18{mkdir \subfolder} \immediate\write18{echo test > "\subfolder/\tmpfile"} \else \immediate\write18{mkdir -p "\subfolder"} \immediate\write18{touch "\subfolder/\tmpfile"} \fi \IfFileExists{gnuplottex/\tmpfile}{ \ifmiktex \immediate\write18{del "\subfolder\@backslashchar\tmpfile"} \else \immediate\write18{rm -f "\subfolder/\tmpfile"} \fi }{ \PackageWarningNoLine{gnuplottex} {Creation of subfolder failed.\MessageBreak You'll need to create the folder yourself} \def\subfolder{} } \fi \else \def\subfolder{.} \fi \ifShellEscape \PackageInfo{gnuplottex} {Automatically converting gnuplot files} \else \PackageWarningNoLine{gnuplottex} {Shell escape not enabled.\MessageBreak You'll need to convert the graphs yourself} \fi \newcounter{fignum} \def\figname{\jobname-gnuplottex-fig\thefignum} \def\usesiunitxingnuplot{\immediate\write\verbatim@out{set format '\@backslashchar num{\@percentchar g}'}} \def\gnuplotverbatimwrite#1{% \def\BeforeStream {\message{Opening gnuplot stream #1}% \immediate\write\verbatim@out{\string set terminal \gnuplotterminal \gnuplotterminaloptions}% \immediate\write\verbatim@out{\string set output '\subfolder/\figname.\gnuplottexextension{\gnuplotterminal}'}% \ifusesiunitx \ifthenelse{\equal{\extension}{\string tex}}{\usesiunitxingnuplot}{\PackageWarningNoLine{gnuplottex}{Axis numbers not written in \noexpand\num{}. Use a terminal that allows TeX output to enable this feature.}} \else \relax \fi }% \@bsphack% \immediate\openout \verbatim@out #1% \BeforeStream% \let\do\@makeother\dospecials% \catcode`\^^M\active \def\verbatim@processline{% \immediate\write\verbatim@out {\the\verbatim@line}}% \verbatim@start} \def\endgnuplotverbatimwrite{% \immediate\closeout\verbatim@out \@esphack \catcode`\\0 \catcode`\{1 \catcode`\}2 \catcode`\$3 \catcode`\&4 \catcode`\^^M5 \catcode`\#6 \catcode`\^7 \catcode`\_8 \catcode`\ 10 \catcode`\%14} \def\gnuplottexextension@latex{\string tex} \def\gnuplottexextension@epslatex{\string tex} \def\gnuplottexextension@cairolatex{\string tex} \def\gnuplottexextension@eepic{\string tex} \def\gnuplottexextension@pstricks{\string tex} \def\gnuplottexextension@pslatex{\string tex} \def\gnuplottexextension@pstex{\string tex} \def\gnuplottexextension@emtex{\string tex} \def\gnuplottexextension@jpeg{\string jpg} \def\gnuplottexextension@tikz{\string tex} \def\gnuplottexextension@lua{\string tex} \def\gnuplottexextension#1{\@ifundefined{gnuplottexextension@#1}{#1}{\csname gnuplottexextension@#1\endcsname}} \define@key{pic}{scale}[1]{\def\gnuplotscale{#1}} \define@key{pic}{terminal}[latex]{\def\gnuplotterminal{#1}} \define@key{pic}{terminaloptions}{\def\gnuplotterminaloptions{ #1}} \newenvironment{gnuplot}[1][]{\stepcounter{fignum}% \def\gnuplotterminal{latex}%% \def\gnuplotterminaloptions{}%% \def\gnuplotscale{1}%% \setkeys{pic}{#1}%% \xdef\gnuplotCutFile{\subfolder/\figname.gnuplot}%% \gnuplotverbatimwrite{\gnuplotCutFile}} {\endgnuplotverbatimwrite% \gnuplotgraphicsprocess% \gnuplotgraphicsinclude} \def\extension{\gnuplottexextension{\gnuplotterminal}} \long\gdef\gnuplotgraphicsprocess{% \ifShellEscape% \IfFileExists{\subfolder/\figname.gnuplot}{% \ifmiktex \immediate\write18{\gnuplotexe\space \subfolder/\figname.gnuplot}% \else \immediate\write18{\gnuplotexe\space \subfolder/\figname.gnuplot\space 2>>\jobname.gnuploterrors}% \fi% \IfFileExists{\subfolder/\figname.\extension}{% \PackageInfo{gnuplottex}{\subfolder/\figname.gnuplot converted}% \ifcleanup \ifmiktex \immediate\write18{del "\subfolder/\figname.gnuplot"}% \else \immediate\write18{rm -f "\subfolder/\figname.gnuplot"}% \fi% \fi% } {\PackageWarningNoLine{gnuplottex} {Conversion of \subfolder/\figname.gnuplot failed}}}{}% \fi} \long\def\gnuploterrors@eatpar#1#2\@nil{\def\gnuploterrors@{#2}} \AtEndDocument{% \ifmiktex \else \IfFileExists{\jobname.gnuploterrors}{% \CatchFileDef\gnuploterrors@{\jobname.gnuploterrors}{\endlinechar=`^^J \catcode`\ =12 }% \expandafter\gnuploterrors@eatpar\gnuploterrors@\@nil \ifx\gnuploterrors@\@empty\else \PackageWarningNoLine{gnuplottex}{Gnuplot execution produced errors:^^J% \detokenize\expandafter{\gnuploterrors@}}% \fi }{} \fi } \long\gdef\gnuplotgraphicsinclude{% \IfFileExists{\subfolder/\figname.\extension}{% \ifthenelse{\equal{\extension}{\string tex}} {\scalebox{\gnuplotscale}{\input{\subfolder/\figname.\extension}}} {\includegraphics[scale=\gnuplotscale]{\subfolder/\figname.\extension}} } {\PackageWarningNoLine{gnuplottex} {Please convert \subfolder/\figname.gnuplot manually}} } \newcommand{\gnuplotloadfilewrite}[2]{% \immediate\openout \verbatim@out #1% \message{Opening gnuplot stream #1}% \immediate\write\verbatim@out{\string set terminal \gnuplotterminal \gnuplotterminaloptions}% \immediate\write\verbatim@out{\string set output '\subfolder/\figname.\gnuplottexextension{\gnuplotterminal}'}% \ifusesiunitx \ifthenelse{\equal{\extension}{\string tex}}{\usesiunitxingnuplot}{\PackageWarningNoLine{gnuplottex}{Axis numbers not written in \noexpand\num{}. Use a terminal that allows TeX output to enable this feature.}} \else \relax \fi \ifusesiunitx {\escapechar=-1\edef\percentforgnuplot{\string\%} \escapechar=-1\edef\backslashforgnuplot{\string\\} \immediate\write\verbatim@out{set format '\backslashforgnuplot num{\percentforgnuplot g}'}} \else \relax \fi \immediate\write\verbatim@out{\string load '#2'}% \immediate\closeout\verbatim@out% } \newcommand{\gnuplotloadfile}[2][]{ \stepcounter{fignum}% \def\gnuplotterminal{latex} \def\gnuplotterminaloptions{} \def\gnuplotscale{1} \setkeys{pic}{#1} \xdef\gnuplotCutFile{\subfolder/\figname.gnuplot} \gnuplotloadfilewrite{\gnuplotCutFile}{#2} \gnuplotgraphicsprocess% \gnuplotgraphicsinclude } \endinput %% %% End of file `gnuplottex.sty'.