summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hvextern/latex/hvextern.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/hvextern/latex/hvextern.sty')
-rw-r--r--macros/latex/contrib/hvextern/latex/hvextern.sty50
1 files changed, 41 insertions, 9 deletions
diff --git a/macros/latex/contrib/hvextern/latex/hvextern.sty b/macros/latex/contrib/hvextern/latex/hvextern.sty
index 9f90b708a2..e17e0eb284 100644
--- a/macros/latex/contrib/hvextern/latex/hvextern.sty
+++ b/macros/latex/contrib/hvextern/latex/hvextern.sty
@@ -1,4 +1,4 @@
-%% $Id: hvextern.sty 678 2023-01-29 09:59:12Z herbert $
+%% $Id: hvextern.sty 743 2023-07-05 20:11:10Z herbert $
%% This is file `hvextern.sty',
%%
%% Copyright (C) 2016-23
@@ -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.33}
-\ProvidesFile{hvextern}[2023/01/29 v\hvexternFileversion: package for running external documents (HV)]
+\def\hvexternFileversion{0.34}
+\ProvidesFile{hvextern}[2023/07/05 v\hvexternFileversion: package for running external documents (HV)]
\newif\ifhv@extern@checkCode
\hv@extern@checkCodefalse
@@ -43,6 +43,7 @@
\fi
\newcounter{hv@extern@runs}
+\newcounter{hv@extern@runsAfter}
\newcounter{@@@runs}
\newcounter{hv@extern@pageCNT}
\newsavebox\hv@extern@box
@@ -64,6 +65,7 @@
\define@key{hv}{progpath}{\def\hv@extern@progpath{#1}}
\define@key{hv}{runsequence}[]{\def\hv@extern@runsequence{#1}}
\define@key{hv}{runs}[1]{\setcounter{hv@extern@runs}{#1}}
+\define@key{hv}{runsAfter}[1]{\setcounter{hv@extern@runsAfter}{#1}}
\define@key{hv}{grfOptions}[]{\def\hv@extern@grfOptions{#1}}
\define@key{hv}{lstOptions}[]{\def\hv@extern@lstOptions{#1}}
\define@key{hv}{textOptions}[]{\def\hv@extern@textOptions{#1}}
@@ -128,6 +130,7 @@
\def\hv@extern@compiler{#1}%
\def\hv@extern@compilerNo{-1}%
}
+\define@boolkey{hv}[hv@extern@]{shellesc}[true]{}
\define@key{hv}{aboveskip}[\medskipamount]{\setlength\hv@extern@aboveskip{#1}}
\define@key{hv}{belowpreambleskip}[\smallskipamount]{\setlength\hv@extern@belowpreambleskip{#1}}
\define@key{hv}{belowbodyskip}[\smallskipamount]{\setlength\hv@extern@belowbodyskip{#1}}
@@ -144,6 +147,7 @@
code=false,% show Code
crop=false,% erzeugte PDF "croppen"
compiler=pdflatex,% zu verwendener Compiler
+ shellesc=true,% use shell-escape
redirect=false,% write output into a file *.txt
tcbox=true,% use tcolorbox
grfOptions={},% Optionen der einzubindenden Grafik
@@ -157,6 +161,7 @@
includegraphic=true,% Grafik einbinden oder User überlassen
inline=false,% Grafik nicht in derselben Zeile
runs=1,% Anzahl Compiler-Durchläufe
+ runsAfter=0, % Anzahl Durchläufe nach makeindex
runsequence={},% Im Moment nicht aktiv
biber=false,% Biber laufen lassen?
xindex=false,% xindex laufen lassen?
@@ -223,7 +228,7 @@
{
\clist_map_inline:nn {#1}{%
\hv@ex@typeout{sequencerun: ##1}%
- \ShellEscape{\hv@extern@progpath##1\space\hvExternDateiname}%
+ \ShellEscape{\hv@extern@progpath##1\space\hv@run@options\hvExternDateiname}%
}
}
\ExplSyntaxOff
@@ -343,7 +348,7 @@
\def\hv@extern@runTEX#1#2#3#4{% path compiler file extension
\hv@ex@typeout{running #1#2 #3#4}%
- \ShellEscape{#1tex\space #3#4}%
+ \ShellEscape{#1tex\space\hv@run@options #3#4}%
\hv@ex@typeout{running #1dvips #3}%
\ShellEscape{#1dvips\space #3.dvi}%
\hv@ex@typeout{running ps2pdf #3.ps}%
@@ -361,7 +366,7 @@
% only for the sequence latex->dvips->ps2pdf
\def\hv@extern@runLATEX#1#2#3#4{% path-compiler-file-extension
\hv@ex@typeout{running #1#2 #3#4}%
- \ShellEscape{#1#2\space #3#4}%
+ \ShellEscape{#1#2\space\hv@run@options #3#4}%
\hv@ex@typeout{running #1dvips #3}%
\ShellEscape{#1dvips\space #3.dvi}%
\hv@ex@typeout{running ps2pdf #3.ps}%
@@ -427,6 +432,7 @@
%%
\newenvironment{externalDocument}[2][]
{%
+ \ifhv@extern@shellesc\gdef\hv@run@options{ --shell-escape }\else\gdef\hv@run@options{}\fi%
\xdef\hvExternDateiname{#2-\arabic{hv@example@counter}}%
\gdef\hv@extern@savePara{#1}%
\setkeys{hv}{#1}% \begin
@@ -470,7 +476,7 @@
\fi
\ifhv@extern@force
\ifx\hv@extern@runsequence\@empty
- \hv@ex@typeout{force=true: running \hv@extern@progpath\hv@extern@compiler~ \hvExternDateiname\hv@extern@ext ...}%
+ \hv@ex@typeout{force=true: running \hv@extern@progpath\hv@extern@compiler\ \hv@run@options \hvExternDateiname\hv@extern@ext ...}%
\setcounter{@@@runs}{\value{hv@extern@runs}}%
\loop\ifnum\the@@@runs > 0\relax
\ifcase\hv@extern@compilerNo \relax % we have metapost
@@ -487,8 +493,8 @@
\hv@ex@typeout{running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext > \hvExternDateiname.txt}%
\ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname\hv@extern@ext\space > \hvExternDateiname.txt}%
\else
- \hv@ex@typeout{running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext}%
- \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname\hv@extern@ext}%
+ \hv@ex@typeout{running \hv@extern@compiler~\hv@run@options~\hvExternDateiname\hv@extern@ext}%
+ \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hv@run@options\space\hvExternDateiname\hv@extern@ext}%
\fi
\fi
\addtocounter{@@@runs}{-1}%
@@ -502,6 +508,32 @@
\ShellEscape{xindex \hv@extern@xindexOptions\space \hvExternDateiname.idx}% NAch xindex nochmal latex
\ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname}%
\fi
+ \expandafter\ifnum\value{hv@extern@runsAfter} > 0
+ \hv@ex@typeout{runsAfter>0: running \hv@extern@progpath\hv@extern@compiler~ \hvExternDateiname\hv@extern@ext ...}%
+ \setcounter{@@@runs}{\value{hv@extern@runsAfter}}%
+ \loop\ifnum\the@@@runs > 0\relax
+ \ifcase\hv@extern@compilerNo \relax % we have metapost
+ \hv@ex@typeout{running mpost \hvExternDateiname\hv@extern@ext}%
+ \hv@extern@runMP{\hv@extern@progpath}{\hv@extern@compiler}{\hvExternDateiname}{\hv@extern@ext}%
+ \or %1
+ \hv@ex@typeout{running tex \hvExternDateiname\hv@extern@ext}%
+ \hv@extern@runTEX{\hv@extern@progpath}{\hv@extern@compiler}{\hvExternDateiname}{\hv@extern@ext}%
+ \or %2
+ \hv@ex@typeout{running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext}%
+ \hv@extern@runLATEX{\hv@extern@progpath}{\hv@extern@compiler}{\hvExternDateiname}{\hv@extern@ext}%
+ \else
+ \ifhv@extern@redirect
+ \hv@ex@typeout{running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext > \hvExternDateiname.txt}%
+ \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname\hv@extern@ext\space > \hvExternDateiname.txt}%
+ \else
+ \hv@ex@typeout{running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext}%
+ \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname\hv@extern@ext}%
+ \fi
+ \fi
+ \addtocounter{@@@runs}{-1}%
+ \repeat
+ \hv@ex@typeout{... done}%
+ \fi
\else % runsequence
\expandafter\run@hv@extern@sequenceList\expandafter{\hv@extern@runsequence}%
\fi