From 77061c35b4d54a630fe1ab1381cffb09611b8f5e Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 27 May 2022 20:41:15 +0000
Subject: hvextern (27may22)

git-svn-id: svn://tug.org/texlive/trunk@63412 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/hvextern/hvextern.sty | 111 +++++++++++-----------
 1 file changed, 58 insertions(+), 53 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/hvextern/hvextern.sty')

diff --git a/Master/texmf-dist/tex/latex/hvextern/hvextern.sty b/Master/texmf-dist/tex/latex/hvextern/hvextern.sty
index 8b0fa75f1f4..19f14ec67fe 100644
--- a/Master/texmf-dist/tex/latex/hvextern/hvextern.sty
+++ b/Master/texmf-dist/tex/latex/hvextern/hvextern.sty
@@ -1,3 +1,4 @@
+%% $Id: hvextern.sty 559 2022-05-27 06:59:29Z herbert $
 %% This is file `hvextern.sty',
 %%
 %% Copyright (C) 2016-22
@@ -11,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.26}
-\ProvidesFile{hvextern}[2022/05/23 v\hvexternFileversion: package for running external documents (HV)]
+\def\hvexternFileversion{0.27}
+\ProvidesFile{hvextern}[2022/05/27 v\hvexternFileversion: package for running external documents (HV)]
 
 \RequirePackage{shellesc,xkeyval,graphicx}
 \RequirePackage{fancyvrb,tikz,listings,ifplatform}
@@ -30,6 +31,7 @@
 
 \newcounter{hv@extern@runs}
 \newcounter{@@@runs} 
+\newcounter{hv@extern@pageCNT} 
 \newsavebox\hv@extern@box
 \newlength\hv@LineWidth
 \newlength\hv@TextWidth
@@ -42,7 +44,7 @@
 \newlength\hv@extern@belowskip
 \newlength\hv@extern@shiftFN
 
-\AtBeginDocument{\setlength\hv@LineWidth{\dimexpr\linewidth-2\fboxsep-2\fboxrule}}
+\AtBeginDocument{\setlength\hv@LineWidth{\the\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}}
 \newlength\hv@extern@mpwidth \setlength\hv@extern@mpwidth{\z@}
 
 \define@key{hv}{progpath}{\def\hv@extern@progpath{#1}}
@@ -57,7 +59,7 @@
 \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]{% 
-%  \hv@typeout{>>>> ´doc type \nr}%
+%  \hv@typeout{doc type \nr}%
 %  \def\hv@extern@docType{\val}%
 %}{\PackageWarning{hvextern}{erroneous input (#1) for docType ignored. Using latex.}%
 %  \def\hv@extern@docType{latex}%
@@ -101,10 +103,11 @@
 }
 \define@boolkey{hv}[hv@extern@]{eps}[true]{}
 \define@boolkey{hv}[hv@extern@]{verbose}[true]{}
-\def\hv@typeout#1{\ifhv@extern@verbose\typeout{#1}\fi}
+\def\hv@ex@typeout#1{\ifhv@extern@verbose\typeout{>>(hvextern) #1}\fi}
+
 \define@choicekey*+{hv}{compiler}[\val\nr]{mpost,tex,latex,luatex,python3,perl,lua,java,%
      xetex,pdflatex,lualatex,xelatex,context,sh,texlua}[pdflatex]{% 
-  \hv@typeout{>>>> Compiler type \nr}%
+  \hv@ex@typeout{Compiler type \nr}%
   \def\hv@extern@compiler{\val}%
   \edef\hv@extern@compilerNo{\nr}%
 }{\PackageWarning{hvextern}{erroneous input (#1) for compiler ignored. Using pdflatex.}%
@@ -194,7 +197,7 @@
  {
   \clist_map_inline:nn {#1}{%
     \ShellEscape{\hv@extern@progpath##1\space\hvExternDateiname}
-    %\hv@typeout{>>>> sequencerun: ##1}
+    %\hv@ex@typeout{sequencerun: ##1}
   } 
  }
 \ExplSyntaxOff
@@ -203,10 +206,10 @@
 \tcbset{breakable,left=2pt,right=2pt,top=2pt,bottom=2pt,boxsep=0pt}
 
 \def\hv@marginpar#1{%
-  \leavevmode\checkoddpage
-  \sbox\hv@extern@box{\rotatebox[origin=C]{90}{\rule{2\hv@extern@shiftFN}{0pt}#1}}%
+  \sbox\hv@extern@box{\rotatebox[origin=C]{90}{\rule{2\hv@extern@shiftFN}{0pt}\texttt{#1}}}%
   \ht\hv@extern@box=\z@ \wd\hv@extern@box=\z@ \dp\hv@extern@box=\z@
   \noindent
+  \checkoddpage
   \ifoddpage%    we have a right page
     \if@twocolumn
       \ifhv@extern@outerFN
@@ -239,23 +242,23 @@
 }
 
 \newcommand\PreambleVerbatim[2][]{%
-  \hv@typeout{Running PreambleVerbatim with #1, #2}%
+  \hv@ex@typeout{Running PreambleVerbatim with #1, #2}%
   \ifhv@extern@tcbox
     \begin{tcolorbox}[before skip=0pt,after skip=0pt]\VerbatimInput[#1]{#2}\end{tcolorbox}%
   \else
-    \VerbatimInput[#1]{#2}
+    \VerbatimInput[#1]{#2}%
   \fi}
 
 \newcommand\BodyVerbatim[2][]{%
-  \hv@typeout{Running BodyVerbatim with #1, #2}%
+  \hv@ex@typeout{Running BodyVerbatim with #1, #2}%
   \ifhv@extern@tcbox
     \begin{tcolorbox}[before skip=0pt,after skip=0pt]\VerbatimInput[#1]{#2}\end{tcolorbox}%
   \else
-    \VerbatimInput[#1]{#2}
+    \VerbatimInput[#1]{#2}%
   \fi}
 
 \newcommand\PreambleListing[2][]{%
-  \hv@typeout{Running PreambleListing with #1, #2}%
+  \hv@ex@typeout{Running PreambleListing with #1, #2}%
   \ifhv@extern@tcbox 
     \begin{tcolorbox}[before skip=0pt,after skip=0pt%,top=-2pt
     ]\expandafter\lstinputlisting\expandafter[#1,aboveskip=0pt,belowskip=0pt]{#2}\end{tcolorbox}%
@@ -264,7 +267,7 @@
   \fi}
 
 \newcommand\BodyListing[2][]{%
-  \hv@typeout{Running BodyListing with #1, #2}%
+  \hv@ex@typeout{Running BodyListing with #1, #2}%
   \ifhv@extern@tcbox 
     \begin{tcolorbox}[before skip=0pt,after skip=0pt,%top=-2pt
     ]\expandafter\lstinputlisting\expandafter[#1,aboveskip=0pt,belowskip=0pt]{#2}\end{tcolorbox}%
@@ -291,13 +294,13 @@
   {\perCent StopVisiblePreamble}
 
 \def\hv@extern@runMP#1#2#3#4{% path compiler file extension
-  \hv@typeout{>>>> running #1#2 #3#4}%
+  \hv@ex@typeout{running #1#2 #3#4}%
   \ShellEscape{#1#2\space -tex=tex\space #3#4}%
-  \hv@typeout{>>>> running #1tex #3}%
+  \hv@ex@typeout{running #1tex #3}%
   \ShellEscape{#1tex\space "\string\input\space epsf\string\relax\string\nopagenumbers\string\epsfbox{#3.1}\string\bye"}%
-  \hv@typeout{>>>> running #1dvips #3}%
+  \hv@ex@typeout{running #1dvips #3}%
   \ShellEscape{#1dvips\space -j\space -E\space -o\space #3.eps\space epsf.dvi}%
-  \hv@typeout{>>>> running #1epstopdf #3}%
+  \hv@ex@typeout{running #1epstopdf #3}%
   \ShellEscape{#1epstopdf\space #3.eps}%
 }
 
@@ -310,11 +313,11 @@
   {\perCent StopVisiblePreamble}
 
 \def\hv@extern@runTEX#1#2#3#4{% path compiler file extension
-  \hv@typeout{>>>> running #1#2 #3#4}%
+  \hv@ex@typeout{running #1#2 #3#4}%
   \ShellEscape{#1tex\space #3#4}%
-  \hv@typeout{>>>> running #1dvips #3}%
+  \hv@ex@typeout{running #1dvips #3}%
   \ShellEscape{#1dvips\space #3.dvi}%
-  \hv@typeout{>>>> running ps2pdf #3.ps}%
+  \hv@ex@typeout{running ps2pdf #3.ps}%
   \ShellEscape{#1ps2pdf\space -dAutoRotatePages=/None\space -dALLOWPSTRANSPARENCY\space #3.ps}%
 }
 
@@ -328,11 +331,11 @@
 
 % only for the sequence latex->dvips->ps2pdf
 \def\hv@extern@runLATEX#1#2#3#4{% path-compiler-file-extension
-  \hv@typeout{>>>> running #1#2 #3#4}%
+  \hv@ex@typeout{running #1#2 #3#4}%
   \ShellEscape{#1#2\space #3#4}%
-  \hv@typeout{>>>> running #1dvips #3}%
+  \hv@ex@typeout{running #1dvips #3}%
   \ShellEscape{#1dvips\space #3.dvi}%
-  \hv@typeout{>>>> running ps2pdf #3.ps}%
+  \hv@ex@typeout{running ps2pdf #3.ps}%
   \ShellEscape{#1ps2pdf\space -dAutoRotatePages=/None\space -dALLOWPSTRANSPARENCY\space  #3.ps}%
 }
 
@@ -398,47 +401,47 @@
    \xdef\hvExternDateiname{#2-\arabic{hv@example@counter}}%
    \gdef\hv@extern@savePara{#1}%
    \setkeys{hv}{#1}%                   \begin
-   \hv@typeout{External filename: \hvExternDateiname}%
+   \hv@ex@typeout{External filename: \hvExternDateiname}%
    \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternDateiname.pdf}{}{%  
      \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternDateiname.png}{}{%
        \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternDateiname.txt}{}{%
          \global\hv@extern@forcetrue}}}%   set force, if no pdf or png exists
    \begingroup
-   \hv@typeout{>>> writing file \hvExternDateiname\hv@extern@ext ...}%
+   \hv@ex@typeout{writing file \hvExternDateiname\hv@extern@ext ...}%
    \filecontents[force,noheader]{\hvExternDateiname\hv@extern@ext}%
   }
   {\endfilecontents%         \end%
-   \hv@typeout{>>> ... done}%
+   \hv@ex@typeout{... done}%
    \global\stepcounter{hv@example@counter}%
    \endgroup
    \expandafter\hvExternSetKeys\expandafter{\hv@extern@savePara}%
    \xdef\hv@extern@fullPath{\hv@extern@ExamplesDir\hvExternDateiname}%
    \ifhv@extern@force
      \ifx\hv@extern@runsequence\@empty
-       \hv@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~ \hvExternDateiname\hv@extern@ext ...}%
        \setcounter{@@@runs}{\value{hv@extern@runs}}%
        \loop\ifnum\the@@@runs > 0\relax
          \ifcase\hv@extern@compilerNo  \relax   % we have metapost
-           \hv@typeout{>>>> running mpost \hvExternDateiname\hv@extern@ext}%
+           \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@typeout{>>>> running tex \hvExternDateiname\hv@extern@ext}%
+           \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@typeout{>>>> running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext}%
+           \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@typeout{>>>> running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext > \hvExternDateiname.txt}%
+             \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@typeout{>>>> running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext}%
+             \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@typeout{>>> ... done}%
+       \hv@ex@typeout{... done}%
        \ifhv@extern@biber
          \ShellEscape{biber  \hvExternDateiname}%  NAch biber nochmal latex
          \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname}%
@@ -457,9 +460,11 @@
      \ifhv@extern@eps
        \ShellEscape{pdftops -eps -f 1 -l 1 \hvExternDateiname.pdf}%
      \fi
+   \else
+     \hv@ex@typeout{force=false: NOT running \hvExternDateiname\hv@extern@ext ...}%
    \fi%    end force
    \ifhv@extern@code%--------------        Code Part
-     \hv@typeout{>>>>Starting Code part with preamble ...}%
+     \hv@ex@typeout{Starting Code part with preamble ...}%
      \begingroup
        \if@twocolumn
          \ifhv@extern@outerFN
@@ -472,6 +477,7 @@
        \fi
        \ifdim\hv@extern@mpwidth>\z@ 
          \noindent
+         \tcbset{breakable=false}%
          \minipage[\hv@extern@mpvalign]{\hv@extern@mpwidth}
          \vspace{0pt}%
        \else
@@ -499,12 +505,12 @@
         \fi
       \fi
       \ifhv@extern@showFilename
-         \hv@typeout{>>>> Set filename in the margin!}%
+         \hv@ex@typeout{Set filename in the margin!}%
          \noindent
          \hv@marginpar{\hvExternDateiname\hv@extern@ext}%
       \fi
 %     
-      \hv@typeout{>>>>Starting Code body ...}%}
+      \hv@ex@typeout{Starting Code body ...}%}
        \ifhv@extern@usefancyvrb
          \@nameuse{\hv@extern@docType @initTextFancy}%
          \expandafter\fvset\expandafter{\hv@extern@lstOptions}%
@@ -521,15 +527,15 @@
    \fi % end code part
    \ifhv@extern@code\else  % only if no code
       \ifhv@extern@showFilename
-        \hv@typeout{>>>> Set filename in the margin!}%
+        \hv@ex@typeout{Set filename in the margin!}%
         \noindent
         \hv@marginpar{\hvExternDateiname\hv@extern@ext}%
       \fi
    \fi
    \ifhv@extern@moveToExampleDir
 %     \ShellEscape{mkdir\space\hv@extern@ExamplesDir/}%
-     \hv@typeout{>>>> Move file into example dir}% 
-     \hv@typeout{>>>>>>\hvExternDateiname ----> \hv@extern@ExamplesDir}%
+     \hv@ex@typeout{Move file into example dir}% 
+     \hv@ex@typeout{\hvExternDateiname ----> \hv@extern@ExamplesDir}%
      \ShellEscape{\hv@move \hvExternDateiname.*\space \hv@extern@ExamplesDir}%
    \fi
    \ifhv@extern@includegraphic
@@ -537,10 +543,10 @@
        \expandafter\includegraphics\expandafter[\hv@extern@grfOptions]{\hv@extern@fullPath}%
      \else
        \ifhv@extern@float
-         \hv@typeout{>>>> Floating environment}% 
+         \hv@ex@typeout{Floating environment}% 
          \expandafter\figure\expandafter[\hv@extern@floatsetting]
        \else
-         \hv@typeout{>>>> No floating environment}% 
+         \hv@ex@typeout{No floating environment}% 
          \vspace{\hv@extern@belowbodyskip}
          \ifdim\hv@extern@mpwidth>\z@ 
            \hfill\minipage[\hv@extern@mpvalign]{\dimexpr\linewidth-\hv@extern@mpwidth-1em\relax}\vspace{0pt}%
@@ -550,29 +556,28 @@
          \fi
        \fi
        \hv@extern@align
-       \hv@typeout{>>>> Input image \hv@extern@fullPath}% 
+       \hv@ex@typeout{Input image \hv@extern@fullPath}% 
        \ifhv@extern@frame
          \begingroup
          \fboxsep=\hv@extern@framesep
          \expandafter\@for\expandafter\next\expandafter:\expandafter=\hv@extern@pages\do{%
-           \hv@typeout{>>>> Image loop: next=\next\space \hv@extern@fullPath}% 
            \fbox{\expandafter\includegraphics\expandafter[\hv@extern@grfOptions,page=\next]%
              {\hv@extern@fullPath}}\hspace{\hv@extern@pagesep}}%
          \hspace*{-\hv@extern@pagesep}%
          \endgroup
        \else
          \expandafter\@for\expandafter\next\expandafter:\expandafter=\hv@extern@pages\do{%
-           \hv@typeout{>>>> Image loop: next=\next\space \hv@extern@fullPath}% 
            \expandafter\includegraphics\expandafter[\hv@extern@grfOptions,page=\next]%
              {\hv@extern@fullPath}\hspace{\hv@extern@pagesep}}%
          \hspace*{-\hv@extern@pagesep}%
        \fi
+       \par% for \hv@extern@align
        \ifx\hv@extern@caption\@empty\else\caption{\hv@extern@caption}\fi
        \ifx\hv@extern@label\@empty\else\label{\hv@extern@label}\fi
        \ifhv@extern@float
          \endfigure
        \else
-         \ifdim\hv@extern@mpwidth>\z@  \endminipage\else\unskip\strut\par\endgroup\fi
+         \ifdim\hv@extern@mpwidth>\z@  \endminipage\else\endgroup\fi
        \fi
      \fi
    \else% no graphic, only text
@@ -585,7 +590,7 @@
        \fi
        \endminipage
      \else
-       \vspace{\hv@extern@belowbodyskip}
+       \vspace{\hv@extern@belowbodyskip}%
        \noindent
        \ifhv@extern@usefancyvrb
          \expandafter\VerbatimInput\expandafter[\hv@extern@textOptions]{\hv@extern@fullPath.txt}%
@@ -603,7 +608,7 @@
   \setkeys{hv}{code=false,includegraphic=false,#1}%
   \xdef\hvExternDateiname{#3-\arabic{hv@example@counter}}%
   \xdef\hv@extern@fullPath{\hv@extern@ExamplesDir\hvExternDateiname}%
-  \hv@typeout{>>>> running #2}%
+  \hv@ex@typeout{running #2}%
   \ifhv@extern@redirect
     \ShellEscape{\hv@extern@progpath#2   > \hv@extern@ExamplesDir\hvExternDateiname.txt}%
   \else
@@ -616,14 +621,14 @@
        \expandafter\includegraphics\expandafter[\hv@extern@grfOptions]{\hv@extern@ExamplesDir\hvExternDateiname}%
      \else
        \ifhv@extern@float
-         \hv@typeout{>>>> Floating environment}% 
+         \hv@ex@typeout{Floating environment}% 
          \expandafter\figure\expandafter[\hv@extern@floatsetting]
        \else
-         \hv@typeout{>>>> No floating environment}% 
+         \hv@ex@typeout{No floating environment}% 
          \par\noindent\begingroup
        \fi
        \hv@extern@align
-       \hv@typeout{>>>> Input image \hv@extern@ExamplesDir\hvExternDateiname}% 
+       \hv@ex@typeout{Input image \hv@extern@ExamplesDir\hvExternDateiname}% 
        \ifhv@extern@frame
          \begingroup
          \fboxsep=\hv@extern@framesep
@@ -646,7 +651,7 @@
      \fi
    \else% no graphic, only text
      \ifhv@extern@float
-       \hv@typeout{>>>> Floating environment}% 
+       \hv@ex@typeout{Floating environment}% 
        \expandafter\figure\expandafter[!htb]
        \ifhv@extern@usefancyvrb
          \expandafter\BodyVerbatim\expandafter[\hv@extern@lstOptions]{\hv@extern@fullPath.txt}
-- 
cgit v1.2.3

