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.sty107
1 files changed, 58 insertions, 49 deletions
diff --git a/macros/latex/contrib/hvextern/latex/hvextern.sty b/macros/latex/contrib/hvextern/latex/hvextern.sty
index cfdd56053d..bfe8f75e8f 100644
--- a/macros/latex/contrib/hvextern/latex/hvextern.sty
+++ b/macros/latex/contrib/hvextern/latex/hvextern.sty
@@ -1,7 +1,7 @@
-%% $Id: hvextern.sty 833 2023-12-08 19:31:08Z herbert $
+%% $Id: hvextern.sty 853 2024-01-30 20:34:00Z herbert $
%% This is file `hvextern.sty',
%%
-%% Copyright (C) 2016-23
+%% Copyright (C) 2016-24
%% Herbert Voss
%%
%% It may be distributed and/or modified under the
@@ -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.38}
-\ProvidesFile{hvextern}[2023/12/08 v\hvexternFileversion: package for running external documents (HV)]
+\def\hvexternFileversion{0.39}
+\ProvidesFile{hvextern}[2024/01/30 v\hvexternFileversion: package for running external documents (HV)]
\newif\ifhv@extern@checkCode
\hv@extern@checkCodefalse
@@ -72,6 +72,8 @@
\newlength\hv@extern@mpwidth \setlength\hv@extern@mpwidth{\z@}
+\newif\ifhv@extern@save@force@state
+
\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}}
@@ -106,7 +108,7 @@
\define@key{hv}{shiftFN}[0pt]{\setlength\hv@extern@shiftFN{#1}}
\define@key{hv}{vshift}[0pt]{\setlength\hv@extern@vshift{#1}}%
\define@boolkey{hv}[hv@extern@]{code}[true]{}
-\define@boolkey{hv}[hv@extern@]{force}[true]{}
+\define@boolkey{hv}[hv@extern@]{force}[true]{\@nameuse{hv@extern@save@force@state#1}}
\define@boolkey{hv}[hv@extern@]{crop}[true]{}
\define@boolkey{hv}[hv@extern@]{tcbox}[true]{}
\define@boolkey{hv}[hv@extern@]{biber}[true]{}
@@ -119,7 +121,7 @@
\define@key{hv}{framesep}[\the\fboxsep]{\setlength\hv@extern@framesep{#1}}
\define@boolkey{hv}[hv@extern@]{float}[true]{}
\define@key{hv}{floatsetting}[]{\def\hv@extern@floatsetting{#1}}
-\define@key{hv}{cleanup}[{aux,log}]{\def\hv@extern@cleanup{#1}}%
+\define@key{hv}{cleanup}[{aux,log,psaux}]{\def\hv@extern@cleanup{#1}}%
\define@boolkey{hv}[hv@extern@]{moveToExampleDir}[true]{}
\define@key{hv}{align}[\centering]{\def\hv@extern@align{#1}}
\define@key{hv}{ExampleDir}[Examples]{%
@@ -151,64 +153,64 @@
\def\ResetKeys{%
\setkeys{hv}{%
- showFilename=false,% Filenamen im Rand angeben
- outerFN=false,% use fullwidth in twocolumn mode (starred floats)
- shiftFN=\z@,% raise printed filename
- vshift=\z@,% raise object (pdf) with \raisebox{}{}
- ext=tex,% file extension
- code=false,% show Code
- crop=false,% erzeugte PDF "croppen"
- compiler=pdflatex,% zu verwendener Compiler
- shellesc=false,% use shell-escape
- redirect=false,% write output into a file *.txt
- tcbox=true,% use tcolorbox
- grfOptions={},% Optionen der einzubindenden Grafik
- lstOptions={},% Optionen für das Listing
- textOptions={},% Options for text output
+ align=\centering,% Ausgabe zentrieren
+ aboveskip=\medskipamount,% space above everything
+ 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
- showoutput=true,% with false only code is shown
- 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?
- xindexOptions={},% options for xindex
+ caption=,% keine Caption
+ cleanup={},% Hilfsdateien nicht löschen
+ code=false,% show Code
+ compiler=pdflatex,% zu verwendener Compiler
+ crop=false,% erzeugte PDF "croppen"
+ cropmargin=2,% 2pb margin
+ 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
+ floatsetting=!htb,% placement
force=false,% Compiler, auch wenn PDF existiert?
frame=false,% keinen Rahmen um Abbildung
framesep=\the\fboxsep,%
- float=false,% nicht als Gleitumgebung
- floatsetting=!htb,% placement
- caption=,% keine Caption
+ grfOptions={},% Optionen der einzubindenden Grafik
+ includegraphic=true,% Grafik einbinden oder User überlassen
+ inline=false,% Grafik nicht in derselben Zeile
label=,% kein Label
- pages=1,% welche Seiten auszugeben sind
- pagesep=1em,% horizontal sep between pages
- docType=latex,% LaTeX example Code
- cleanup={},% Hilfsdateien nicht löschen
+ lstOptions={},% Optionen für das Listing
moveToExampleDir=false,% Verschieben nach ExamplesDir
- ExampleDir=Examples,% Unterverzeichnis für Beispiele
- align=\centering,% Ausgabe zentrieren
mpwidth=0pt,% no minipage
mpsep=1em,% sep between two minipages
mpvalign=t,% if side by side output the vertical alignment
- usefancyvrb=false,% use VerbatimInput instead of listings
+ outerFN=false,% use fullwidth in twocolumn mode (starred floats)
+ pages=1,% welche Seiten auszugeben sind
+ pagesep=1em,% horizontal sep between pages
progpath={},
- cropmargin=2,% 2pb margin
- eps=false,% create an eps output?
- aboveskip=\medskipamount,% space above everything
- belowpreambleskip=2pt, %\smallskipamount,% space below preamble
- belowbodyskip=2pt, %\smallskipamount,% space below body
- belowskip=\medskipamount,% space below everything
+ 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
+ shiftFN=\z@,% raise printed filename
+ showFilename=false,% Filenamen im Rand angeben
+ showoutput=true,% with false only code is shown
+ tcbox=true,% use tcolorbox
+ 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
}%
}
\ResetKeys
-
\ifhv@extern@checkCode
\ifluatex
\hv@ex@typeout{Loading hvextern.lua}%
@@ -464,8 +466,9 @@
\let\endfilecontents\endcomment
\fi
\filecontents[force,noheader]{\hvExternFilename\hv@extern@ext}%
- }
- {\endfilecontents
+ }% end \begin{externaldocument} env
+ {% start \end{externaldocument} env
+ \endfilecontents
\ifhv@extern@shellescape\hv@ex@typeout{... done}\fi
\global\stepcounter{hv@example@counter}%
\endgroup
@@ -489,7 +492,7 @@
\global\hv@extern@forcefalse
\else
\hv@ex@typeout{current file is newer: force run }%
- \global\hv@extern@forcetrue
+ \hv@extern@forcetrue
\fi
\ifhv@extern@verbose\else\ShellEscape{\hv@rm \hvExternFilename\hv@extern@ext.diff}\fi
\fi
@@ -564,7 +567,7 @@
\ifhv@extern@eps
\ShellEscape{pdftops -eps -f 1 -l 1 \hvExternFilename.pdf}%
\fi
- \else
+ \else % if force ...
\hv@ex@typeout{force=false: NOT running \hvExternFilename\hv@extern@ext ...}%
\fi% end force
\hfuzz=\maxdimen
@@ -713,6 +716,11 @@
\expandafter\run@hv@extern@cleanup\expandafter{\hv@extern@cleanup}%
\fi% cleanup
\vspace{\hv@extern@belowskip}%
+ \ifhv@extern@save@force@state
+ \global\hv@extern@forcetrue
+ \else
+ \global\hv@extern@forcefalse
+ \fi% restore value
}
\newcommand\runExtCmd[3][]{% #1:options; #2:comamnd; #3:filename
@@ -894,6 +902,7 @@
\expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.pdf}{}{%
\expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.png}{}{%
\expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.txt}{}{%
+ \gdef\hv@extern@save@force@state{}
\global\hv@extern@forcetrue}}}% set force, if no pdf or png exists
\begingroup
\hv@ex@typeout{writing file \hvExternFilename\hv@extern@ext ...}%