diff options
Diffstat (limited to 'macros/latex/contrib/hvextern/latex/hvextern.sty')
-rw-r--r-- | macros/latex/contrib/hvextern/latex/hvextern.sty | 107 |
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 ...}% |