diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/hvextern/Changes | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvextern/hvextern.pdf | bin | 1492062 -> 1499392 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvextern/hvextern.tex | 40 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/hvextern/hvextern.sty | 116 |
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 Binary files differindex cc8d1727844..b98bc2283ba 100644 --- a/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf +++ b/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf 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}% |