summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/hvextern/Changes2
-rw-r--r--Master/texmf-dist/doc/latex/hvextern/hvextern.pdfbin1492062 -> 1499392 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hvextern/hvextern.tex40
-rw-r--r--Master/texmf-dist/tex/latex/hvextern/hvextern.sty116
4 files changed, 115 insertions, 43 deletions
diff --git a/Master/texmf-dist/doc/latex/hvextern/Changes b/Master/texmf-dist/doc/latex/hvextern/Changes
index 430476f2632..a491647acf4 100644
--- a/Master/texmf-dist/doc/latex/hvextern/Changes
+++ b/Master/texmf-dist/doc/latex/hvextern/Changes
@@ -1,5 +1,7 @@
hvextern.sty ----------------
+v 0.41 2024-03-27 - added compiler option=Rscript
+ - fix for Windows and R runs
v 0.40 2024-03-22 - added option mposttex for metapost program which
can be tex (default) | latex
v 0.39 2024-01-30 - fixed bug with check for force option
diff --git a/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf b/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf
index cc8d1727844..b98bc2283ba 100644
--- a/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf
+++ b/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hvextern/hvextern.tex b/Master/texmf-dist/doc/latex/hvextern/hvextern.tex
index 77181285d0d..92a8362866b 100644
--- a/Master/texmf-dist/doc/latex/hvextern/hvextern.tex
+++ b/Master/texmf-dist/doc/latex/hvextern/hvextern.tex
@@ -1,4 +1,4 @@
-%% $Id: hvextern.tex 883 2024-03-22 19:29:21Z herbert $
+%% $Id: hvextern.tex 884 2024-03-27 19:50:43Z herbert $
\DocumentMetadata{}% for lualatex and pstricks
\documentclass[english,paper=a4,twoside,usegeometry]{scrartcl}
\usepackage{babel}
@@ -41,7 +41,7 @@ Werner Lemberg; Rolf Niepraschk}}
%\newpage
-\setkeys{hv}{moveToExampleDir,ExampleDir=Exa,showFilename,verbose,force=false}
+\setkeys{hv}{moveToExampleDir,ExampleDir=Exa,showFilename,verbose,force=true}
%\clearpage
@@ -63,9 +63,12 @@ external code changed. This doesn't depends on the setting of the option \Lkeywo
\begin{sloppypar}
This package allows to write external \MP, \TeX, \ConTeXt, \LaTeX, \LuaTeX, \LuaLaTeX, \XeTeX, \XeLaTeX,
-\Index{Lua}, \Index{Perl}, \Index{Java} and/or \Index{Python}
+\Index{Lua}, \Index{Perl}, \Index{Java}, \Index{Python}, and /or \Index{R}
source code, which will then be run via \texttt{shell escape} to create a PDF or text output to include
-it into the main \LaTeX\ document.
+it into the main \LaTeX\ document. The values for the
+optional argument \Lkeyword{compiler} must be the real prgram name on the the local system, e.g. for Windows:
+mpost, tex, context.exe, latex.exe, luatex.exe, lualatex.exe, xetex.exe, xelatex.exe,
+lua.exe, perl.exe, java.exe, pathon.exe, and /or Rscript.exe.
\end{sloppypar}
@@ -418,6 +421,33 @@ must be end with a slash, e.g. \Lkeyval{./bin/}
\define@key{hv}{runs}[1]{\setcounter{hv@extern@runs}{#1}}
\end{verbatim}
+For Windows the \Lkeyword{progpath} should always be written with slashes and not
+backslashes. e.g.
+
+\begin{verbatim}
+ compiler=Rscript.exe,
+ progpath=C:/Program Files/R/R-4.3.3/bin/x64/,
+\end{verbatim}
+
+For macOS it is something like this:
+
+\begin{externalDocument}[
+ compiler=Rscript,
+ progpath=/opt/homebrew/bin/,
+ grfOptions={width=0.5\linewidth},
+ code=true,
+ usefancyvrb,
+ ext=R,
+ docType=R]{voss}
+#StartVisibleMain
+head(pressure) # Die ersten Werte der internen Datenliste
+pdf() # erzeugt die PDF "Rplots.pdf"
+plot(pressure)
+#StopVisibleMain
+\end{externalDocument}
+
+
+
Instead of the optional arguments
\Lkeyword{compiler}, \Lkeyword{biber}, and \Lkeyword{xindex} one can define an individual
command sequence by using the optional argument
@@ -539,7 +569,7 @@ public class Main {
%$
-
+\clearpage
\subsection{Grafik options}
\begin{verbatim}
diff --git a/Master/texmf-dist/tex/latex/hvextern/hvextern.sty b/Master/texmf-dist/tex/latex/hvextern/hvextern.sty
index 16e127376f3..5aaeb26f490 100644
--- a/Master/texmf-dist/tex/latex/hvextern/hvextern.sty
+++ b/Master/texmf-dist/tex/latex/hvextern/hvextern.sty
@@ -1,4 +1,4 @@
-%% $Id: hvextern.sty 882 2024-03-22 19:23:40Z herbert $
+%% $Id: hvextern.sty 884 2024-03-27 19:50:43Z herbert $
%% This is file `hvextern.sty',
%%
%% Copyright (C) 2016-24
@@ -12,8 +12,8 @@
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-\def\hvexternFileversion{0.40}
-\ProvidesFile{hvextern}[2024/03/22 v\hvexternFileversion: package for running external documents (HV)]
+\def\hvexternFileversion{0.41}
+\ProvidesFile{hvextern}[2024/03/27 v\hvexternFileversion: package for running external documents (HV)]
\newif\ifhv@extern@checkCode
\hv@extern@checkCodefalse
@@ -73,6 +73,7 @@
\newlength\hv@extern@mpwidth \setlength\hv@extern@mpwidth{\z@}
\newif\ifhv@extern@save@force@state
+\newif\ifhv@extern@runR
\define@key{hv}{progpath}{\def\hv@extern@progpath{#1}}
\define@key{hv}{runsequence}[]{\def\hv@extern@runsequence{#1}}
@@ -86,7 +87,7 @@
\define@key{hv}{BOpreamble}[black!12]{\def\hv@extern@BOpreamble{#1}}
\define@key{hv}{BObody}[black!8]{\def\hv@extern@BObody{#1}}
\define@key{hv}{docType}[latex]{\def\hv@extern@docType{#1}}
-%\define@choicekey*+{hv}{docType}[\val\nr]{latex,mp,tex,py,pl,lua,java,context,sh}[latex]{%
+%\define@choicekey*+{hv}{docType}[\val\nr]{latex,mp,tex,py,pl,lua,java,context,sh,R}[latex]{%
% \hv@typeout{doc type \nr}%
% \def\hv@extern@docType{\val}%
%}{\PackageWarning{hvextern}{erroneous input (#1) for docType ignored. Using latex.}%
@@ -134,15 +135,32 @@
\define@boolkey{hv}[hv@extern@]{eps}[true]{}
\define@boolkey{hv}[hv@extern@]{verbose}[true]{}
-\define@choicekey*+{hv}{compiler}[\val\nr]{mpost,tex,latex,luatex,python3,perl,lua,java,%
- xetex,pdflatex,lualatex,xelatex,context,sh,texlua}[pdflatex]{%
- \hv@ex@typeout{Compiler type (\nr) \val}%
- \def\hv@extern@compiler{\val}%
- \edef\hv@extern@compilerNo{\nr}%
-}{\PackageWarning{hvextern}{unknown compiler type (#1). Maybe you should define a run sequence???}%
- \def\hv@extern@compiler{#1}%
- \def\hv@extern@compilerNo{-1}%
- }
+\ifwindows
+ \define@choicekey*+{hv}{compiler}[\val\nr]{mpost.exe,tex.exe,latex.exe,luatex.exe,%
+ python3.exe,perl.exe,lua.exe,java.exe,%
+ xetex.exe,pdflatex.exe,lualatex.exe,xelatex.exe,context.exe,sh,%
+ texlua.exe,Rscript.exe}[pdflatex.exe]{%
+ \hv@ex@typeout{Compiler type (\nr) \val}%
+ \def\hv@extern@compiler{\val}%
+ \edef\hv@extern@compilerNo{\nr}%
+ \ifnum\nr=15 \hv@extern@runRtrue\else\hv@extern@runRfalse\fi
+ }{\PackageWarning{hvextern}{unknown compiler type (#1). Maybe you should define
+ a run sequence???}%
+ \def\hv@extern@compiler{#1}%
+ \def\hv@extern@compilerNo{-1}%
+ }
+\else
+ \define@choicekey*+{hv}{compiler}[\val\nr]{mpost,tex,latex,luatex,python3,perl,lua,java,%
+ xetex,pdflatex,lualatex,xelatex,context,sh,texlua,Rscript}[pdflatex]{%
+ \hv@ex@typeout{Compiler type (\nr) \val}%
+ \def\hv@extern@compiler{\val}%
+ \edef\hv@extern@compilerNo{\nr}%
+ \ifnum\nr=15 \hv@extern@runRtrue\else\hv@extern@runRfalse\fi
+ }{\PackageWarning{hvextern}{unknown compiler type (#1). Maybe you should define a run sequence???}%
+ \def\hv@extern@compiler{#1}%
+ \def\hv@extern@compilerNo{-1}%
+ }
+\fi
\define@boolkey{hv}[hv@extern@]{shellesc}[true]{}
\define@key{hv}{aboveskip}[\medskipamount]{\setlength\hv@extern@aboveskip{#1}}
\define@key{hv}{belowpreambleskip}[2pt]{\setlength\hv@extern@belowpreambleskip{#1}}
@@ -156,57 +174,57 @@
\setkeys{hv}{%
align=\centering,% Ausgabe zentrieren
aboveskip=\medskipamount,% space above everything
- belowpreambleskip=2pt, %\smallskipamount,% space below preamble
- belowbodyskip=2pt, %\smallskipamount,% space below body
+ belowpreambleskip=2pt,%\smallskipamount,% space below preamble
+ belowbodyskip=2pt, %\smallskipamount,% space below body
belowskip=\medskipamount,% space below everything
BGpreamble=black!12,% Backgroundcolor for preamble
BGbody=black!8,% Backgroundcolor for body
BOpreamble=black!12,% Bodercolor for preamble
BObody=black!8,% Bodercolor for body
- biber=false,% Biber laufen lassen?
+ biber=false,% Biber laufen lassen?
caption=,% keine Caption
cleanup={},% Hilfsdateien nicht löschen
code=false,% show Code
compiler=pdflatex,% zu verwendener Compiler
- crop=false,% erzeugte PDF "croppen"
+ crop=false,% erzeugte PDF "croppen"
cropmargin=2,% 2pb margin
- docType=latex,% LaTeX example Code
+ docType=latex,% LaTeX example Code
eps=false,% create an eps output?
ExampleDir=Examples,% Unterverzeichnis für Beispiele
ext=tex,% file extension
- float=false,% nicht als Gleitumgebung
+ float=false,% nicht als Gleitumgebung
floatsetting=!htb,% placement
- force=true,% Compiler, auch wenn PDF existiert?
- frame=false,% keinen Rahmen um Abbildung
+ force=true,% Compile, auch wenn PDF existiert?
+ frame=false,% keinen Rahmen um Abbildung
framesep=\the\fboxsep,%
- grfOptions={},% Optionen der einzubindenden Grafik
+ grfOptions={},% Optionen der einzubindenden Grafik
includegraphic=true,% Grafik einbinden oder User überlassen
inline=false,% Grafik nicht in derselben Zeile
- label=,% kein Label
- lstOptions={},% Optionen für das Listing
+ label=,% kein Label
+ lstOptions={},% Optionen für das Listing
moveToExampleDir=false,% Verschieben nach ExamplesDir
mpwidth=0pt,% no minipage
mpsep=1em,% sep between two minipages
mpvalign=t,% if side by side output the vertical alignment
outerFN=false,% use fullwidth in twocolumn mode (starred floats)
- pages=1,% welche Seiten auszugeben sind
+ pages=1,% welche Seiten auszugeben sind
pagesep=1em,% horizontal sep between pages
- progpath={},
+ progpath={},%
redirect=false,% write output into a file *.txt
- runs=1,% Anzahl Compiler-Durchläufe
- runsAfter=0, % Anzahl Durchläufe nach makeindex
- runsequence={},% Im Moment nicht aktiv
- shellesc=false,% use shell-escape
+ runs=1,% Anzahl Compiler-Durchläufe
+ runsAfter=0, % Anzahl Durchläufe nach makeindex
+ runsequence={},% Im Moment nicht aktiv
+ shellesc=false,% use shell-escape
shiftFN=\z@,% raise printed filename
showFilename=false,% Filenamen im Rand angeben
- showoutput=true,% with false only code is shown
+ showoutput=true,% with false only code is shown
tcbox=true,% use tcolorbox
- textOptions={},% Options for text output
+ textOptions={},% Options for text output
usefancyvrb=false,% use VerbatimInput instead of listings
verbose=false,% no extra output in the logfile
vshift=\z@,% raise object (pdf) with \raisebox{}{}
- xindex=false,% xindex laufen lassen?
- xindexOptions={},% options for xindex
+ xindex=false,% xindex laufen lassen?
+ xindexOptions={},% options for xindex
mposttex=tex,% mpost program tex or latex
}%
}
@@ -441,6 +459,14 @@
{\NumChar StartVisiblePreamble}
{\NumChar StopVisiblePreamble}
+%---- R
+%\input{hvextern-R.cfg}
+\hv@extern@ExampleType{R}
+ {\NumChar StartVisibleMain}
+ {\NumChar StopVisibleMain}
+ {\NumChar StartVisiblePreamble}
+ {\NumChar StopVisiblePreamble}
+
%%%--------------------------------- end config part ------------------
@@ -518,12 +544,21 @@
\hv@ex@typeout{running \hv@extern@compiler~ \hvExternFilename\hv@extern@ext > \hvExternFilename.txt}%
\ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternFilename\hv@extern@ext\space > \hvExternFilename.txt}%
\else
- \hv@ex@typeout{running \hv@extern@compiler~\hv@run@options~\hvExternFilename\hv@extern@ext}%
- \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hv@run@options\space\hvExternFilename\hv@extern@ext}%
+ \ifwindows
+ \hv@ex@typeout{running \hv@extern@compiler~\hv@run@options~\hvExternFilename\hv@extern@ext}%
+ \ShellEscape{"\hv@extern@progpath\hv@extern@compiler" \hv@run@options\space\hvExternFilename\hv@extern@ext}%
+ \else
+ \hv@ex@typeout{running \hv@extern@compiler~\hv@run@options~\hvExternFilename\hv@extern@ext}%
+ \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hv@run@options\space\hvExternFilename\hv@extern@ext}%
+ \fi
\fi
\fi
\addtocounter{@@@runs}{-1}%
\repeat
+ \ifhv@extern@runR % we have Rscript
+ \hv@ex@typeout{copy r-dummy.pdf to \hvExternFilename.pdf}%
+ \ShellEscape{\hv@move\space Rplots.pdf \hvExternFilename.pdf}%
+ \fi
\hv@ex@typeout{... done}%
\ifhv@extern@biber
\ShellEscape{biber \hvExternFilename}% NAch biber nochmal latex
@@ -551,8 +586,13 @@
\hv@ex@typeout{running \hv@extern@compiler~ \hvExternFilename\hv@extern@ext > \hvExternFilename.txt}%
\ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternFilename\hv@extern@ext\space > \hvExternFilename.txt}%
\else
- \hv@ex@typeout{running \hv@extern@compiler~ \hvExternFilename\hv@extern@ext}%
- \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternFilename\hv@extern@ext}%
+ \ifwindows
+ \hv@ex@typeout{running \hv@extern@compiler~ \hvExternFilename\hv@extern@ext}%
+ \ShellEscape{"\hv@extern@progpath\hv@extern@compiler" \hvExternFilename\hv@extern@ext}%
+ \else
+ \hv@ex@typeout{running \hv@extern@compiler~ \hvExternFilename\hv@extern@ext}%
+ \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternFilename\hv@extern@ext}%
+ \fi
\fi
\fi
\addtocounter{@@@runs}{-1}%