diff options
author | Karl Berry <karl@freefriends.org> | 2022-05-08 20:23:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-05-08 20:23:52 +0000 |
commit | b14d6227d79a3ba7ba5297db42ae5c14c02075bd (patch) | |
tree | 1575330b7a6021214ef1bedcece5eb2546d9f326 /Master/texmf-dist | |
parent | 6b0dba844eeab4f1d26d299a162e71a3405ffc36 (diff) |
hvextern (8may22)
git-svn-id: svn://tug.org/texlive/trunk@63260 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/hvextern/Changes | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvextern/hvdoctools.sty | 100 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvextern/hvextern.pdf | bin | 1185723 -> 1202031 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvextern/hvextern.tex | 242 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/hvextern/hvextern.sty | 133 |
5 files changed, 357 insertions, 121 deletions
diff --git a/Master/texmf-dist/doc/latex/hvextern/Changes b/Master/texmf-dist/doc/latex/hvextern/Changes index 9c754a92770..0204c888fb2 100644 --- a/Master/texmf-dist/doc/latex/hvextern/Changes +++ b/Master/texmf-dist/doc/latex/hvextern/Changes @@ -1,5 +1,8 @@ hvextern.sty ---------------- +v 0.23 2022-05-08 - added \runExtCmd + - added doctype shell +v 0.22 2022-05-05 - added mpvalign, tclbox v 0.21 2022-04-30 - added java support v 0.20 2022-04-27 - use L3 for the comma separated lists cleanup and runsequence diff --git a/Master/texmf-dist/doc/latex/hvextern/hvdoctools.sty b/Master/texmf-dist/doc/latex/hvextern/hvdoctools.sty new file mode 100644 index 00000000000..23ff524a9aa --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvextern/hvdoctools.sty @@ -0,0 +1,100 @@ +%% $Id: hvdoctools.sty 1127 2019-12-29 21:42:29Z herbert $ +%% +%% This file is distributed under the terms of the LaTeX Project Public +%% License from CTAN archives in directory macros/latex/base/lppl.txt. +%% Either version 1.3 or, at your option, any later version. +%% +% Copyright 2019 Herbert Voss hvoss@tug.org +%% +\ProvidesPackage{hvdoctools}[% + 2019/11/27 v.0.01 (Herbert Voss) macros for package documentation (hv)] +% +\NeedsTeXFormat{LaTeX2e} + +\RequirePackage{makeidx}\makeindex + +\def\Lfile#1{\texttt{#1}\index{#1@\texttt{#1} (file)}} +\def\Lext#1{\texttt{.#1}\index{#1@\texttt{.#1} (file extension)}} +\def\Ldim#1{\texttt{\textbackslash#1}\index{#1@\texttt{\textbackslash#1} (length)}} +\def\Lcs#1{\texttt{\textbackslash#1}\index{#1@\texttt{\textbackslash#1}}} +\def\nxLcs#1{\texttt{\textbackslash#1}} +\def\Lenv#1{\texttt{#1}\index{#1@\texttt{#1} (environment)}} +\def\Lpack#1{\texttt{#1}\index{#1@\texttt{#1} (package)}} +\let\LPack\Lpack +\def\Lprog#1{\texttt{#1}\index{#1@\texttt{#1} (program)}} +\def\Lcolor#1{\texttt{#1}\index{#1@\texttt{#1} (color)}} +\def\Loption#1{\texttt{#1}\index{#1@\texttt{#1} (package option)}} +\def\Lkeyword#1{\texttt{#1}\index{#1@\texttt{#1} (keyword)}\index{Keyword!#1@\texttt{#1}}} +\def\Lkeyval#1{\texttt{#1}\index{#1@\texttt{#1} (value)}} +\def\Lskip#1{\texttt{\textbackslash#1}\index{#1@\texttt{\textbackslash#1} (skip)}} +\def\Lkeyset#1{\expandafter\Lkeyset@i#1\@nil} +\def\Lkeyset@i#1=#2\@nil{\texttt{#1=#2}% + \index{#1@\texttt{#1} (keyword)}\index{Keyword!#1@\texttt{#1}} + \index{#2@\texttt{#2} (value)}\index{Value!#2@\texttt{#2}}} + +\def\LKeyset#1{\expandafter\LKeyset@i#1\@nil} +\def\LKeyset@i#1=#2\@nil{\texttt{#1=#2}% + \index{#1@\texttt{#1} (keyword)}\index{Keyword!#1@\texttt{#1}}} +\newsavebox\boxdef +\newenvironment{BDef} + {\begin{lrbox}{\boxdef} + \def\arraystretch{1.0} + \begin{tabular}{@{}l@{}l@{}l@{}}} + {\end{tabular}\end{lrbox} + {\BCmd\fbox{\usebox\boxdef}\endBCmd} + \aftergroup\@afterindentfalse\aftergroup\@afterheading + } +\def\Lclass#1{\texttt{#1}\index{#1@\texttt{#1} (doc class)}} + +\newskip\BDefaboveskip +\newskip\BDefbelowskip +\newskip\BDefinlineskip +\setlength\BDefaboveskip{0pt plus 2pt}% first-level list topsep +\setlength\BDefbelowskip{10pt} +\setlength\BDefinlineskip{6pt} + +\newenvironment{BCmd}{ + \@beginparpenalty-\@lowpenalty + \topsep\BDefaboveskip + \fboxsep3pt + \flushleft} + {\@endparpenalty\@M + \@topsepadd\BDefbelowskip + \endflushleft} + +\newenvironment{BCmd*}{% + \@beginparpenalty\@M + \topsep\BDefinlineskip + \fboxsep3pt + \flushleft} + {\@endparpenalty5000 + \endflushleft} + +\def\OptArgs{\colorbox{black!20}{\texttt{[Options]}}\kern1pt} +\def\OptArg{\@ifnextchar*\OptArg@i{\OptArg@ii*}}% star version without braces +\def\OptArg@i*#1{\colorbox{black!20}{\texttt{#1}}\kern1pt} +\def\OptArg@ii*#1{\colorbox{black!20}{\texttt{[#1]}}\kern1pt} +\def\DBS{{\ttfamily\textbackslash\textbackslash}} + +\newcommand\Larg [1]{{\normalfont\itshape#1\/}} +\newcommand\Larga[1]{$\langle$\Larg{#1}$\rangle$}% angles +\newcommand\Largb[1]{\lcb\Larg{#1}\rcb} % curly brace +\newcommand\Largs[1]{\lsb\Larg{#1}\rsb} % square brackets +\newcommand\Largr[1]{\lrb\Larg{#1}\rrb} % round brackets +\newcommand\LBEG[1]{{\normalfont\ttfamily\bs{}begin\lcb#1\rcb}\xLenv{#1}} +\newcommand\LmBEG[1]{{\normalfont\ttfamily\bs{}begin\lcb#1\rcb}\xLmenv{#1}} +\newcommand\LEND[1]{{\normalfont\ttfamily\bs{}end\lcb#1\rcb}\xLenv{#1}} +\newcommand\LmEND[1]{{\normalfont\ttfamily\bs{}end\lcb#1\rcb}\xLmenv{#1}} + +\DeclareRobustCommand\bs{{\normalfont\ttfamily\textbackslash}} % \let\bslash=\bs +\DeclareRobustCommand\lcb{{\normalfont\ttfamily\textbraceleft}} +\DeclareRobustCommand\rcb{{\normalfont\ttfamily\textbraceright}} +\DeclareRobustCommand\lsb{{\normalfont\ttfamily[}} +\DeclareRobustCommand\rsb{{\normalfont\ttfamily]}} +\DeclareRobustCommand\lrb{{\normalfont\ttfamily(}} +\DeclareRobustCommand\rrb{{\normalfont\ttfamily)}} +\DeclareRobustCommand\false{{\ttfamily false}} +\DeclareRobustCommand\true{{\ttfamily true}} + + +\endinput diff --git a/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf b/Master/texmf-dist/doc/latex/hvextern/hvextern.pdf Binary files differindex 963cef8772d..c521b487eac 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 0ad44196277..8c104803e6a 100644 --- a/Master/texmf-dist/doc/latex/hvextern/hvextern.tex +++ b/Master/texmf-dist/doc/latex/hvextern/hvextern.tex @@ -8,21 +8,29 @@ \usepackage{hvlogos} \usepackage{hvextern} +\usepackage{hvindex} +\usepackage{hvdoctools} \usepackage{listings} \lstset{basicstyle=\ttfamily\small,language=[LaTeX]TeX,breaklines} -\usepackage{xcolor} +\usepackage{xcolor,xspace} \usepackage{hyperref} + +\def\Python{\textsf{Python}\xspace} +\def\Perl{\textsf{Perl}\xspace} +\def\Lua{\textsf{Lua}\xspace} +\def\Java{\textsf{Java}\xspace} + + \begin{document} \title{Writing, running and including the output of external documents from within a main \LaTeX\ document~--v. \hvexternFileversion} \author{Herbert Voß\thanks{herbert@dante.de}} \maketitle - \tableofcontents \newpage -\setkeys{hv}{moveToExampleDir,ExampleDir=Examples} +\setkeys{hv}{moveToExampleDir,ExampleDir=Examples,showFilename,verbose} \section{Syntax} \begin{verbatim} @@ -36,7 +44,7 @@ it into the main \LaTeX\ document. \end{sloppypar} -There is only one environment: +There is only one environment and one command: \begin{verbatim} \begin{externalDocument}[<options>]{<external filename without extension>} @@ -44,12 +52,14 @@ There is only one environment: source code ... \end{externalDocument} + +\runExtCmd[<options>]{<command with arguments>}{<external filename without extension>} \end{verbatim} -The main document \emph{must} be run with the \texttt{-shell-escape} option, otherwise it won't work, e.g.: +The main document \emph{must} be run with the \Loption{-shell-escape} option, otherwise it won't work, e.g.: \begin{verbatim} -laulatex --shell-escape <file> +lualatex --shell-escape <file> \end{verbatim} @@ -63,7 +73,7 @@ automatically in the main document.. \noindent \fbox{\begin{minipage}{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax} \emph{All} examples in this document are created on-the-fly while running this \LaTeX\ document -with \texttt{lualatex} with the \texttt{-\kern2pt-shell-escape} option. +with \texttt{lualatex} with the \texttt{-\kern1pt-shell-escape} option. \end{minipage}} @@ -75,8 +85,8 @@ This document was run with \LuaLaTeX. Suppose you want to insert the output of a which needs for several reasons a \pdfLaTeX\ run. Instead of created and running a document outside of the main document and then to insert the output we can do this from within this \LuaLaTeX\ document itself. The external document is compiled -with \pdfLaTeX\ and the output is insert as pdf image. The source code itself is not -shown by the environment \texttt{externalDocument}. +with \pdfLaTeX\ and the output is insert as pdf image. The \Index{source} code itself is not +shown by the environment \Lenv{externalDocument}. \begin{minipage}{.59\linewidth} @@ -106,7 +116,7 @@ shown by the environment \texttt{externalDocument}. \end{minipage} \begin{minipage}{.39\linewidth} \begin{externalDocument}[ - compiler=pdflatex,force,cleanup={log,aux},verbose]{voss} + compiler=pdflatex,force=false,cleanup={log,aux},verbose]{voss} \documentclass{standalone} %StartVisiblePreamble \usepackage{fontenc} @@ -129,7 +139,7 @@ shown by the environment \texttt{externalDocument}. \end{minipage} \subsection{Showing code and output of a Python example} -The png image is created on the fly with the following arguments of \verb|externalDocument|: +The \ttIndex{png} image is created on the fly with the following arguments of \Lenv{externalDocument}: \begin{Verbatim} \begin{externalDocument}[ @@ -154,7 +164,7 @@ The code which is declared as header and main can be marked by: {\NumChar StopVisiblePreamble} \end{Verbatim} -\verb|\NumChar| is the default Python comment character \# and needs to be saved with a different +\Lcs{NumChar} is the default Python comment character \#\index{\#} and needs to be saved with a different catagory, which is done internally by the package. The complete definition of the code is: @@ -164,7 +174,7 @@ catagory, which is done internally by the package. The complete definition of th showFilename, code, ext=py, - force, + force=false, docType=py, usefancyvrb, grfOptions={width=\linewidth}]{python} @@ -206,7 +216,7 @@ image.save(imageName, "PNG") And with using this code we get the image as png inserted. The given filename of the external document is -internally extended by a consecutive number which isn't known to the Python code. However, +internally extended by a consecutive number which isn't known to the \Index{Python} code. However, it is no problem in any programming language to get the name of a running file. The forlast line in the above code shows how it can be done with Python. @@ -214,7 +224,7 @@ line in the above code shows how it can be done with Python. \begin{externalDocument}[ compiler=python3, progpath=/usr/local/bin/, - force, + force=false, showFilename, runs=1, code, @@ -263,7 +273,7 @@ image.save(imageName+".png", "PNG") \begin{externalDocument}[grfOptions={width=0.95\linewidth}, compiler=xelatex,code,mpwidth=0.6\linewidth, - crop,cleanup,force,usefancyvrb=false,ext=tex]{voss} + crop,cleanup,force=false,usefancyvrb=false,ext=tex]{voss} \documentclass{article} %StartVisiblePreamble \usepackage{tikz} @@ -302,9 +312,9 @@ The marker for the code ranges which should be listed depend to the used program \end{document} \end{verbatim} -everything between \verb|%StartVisiblePreamble| and \verb|%StopVisiblePreamble| will be listed as +everything between \ttIndex{\%StartVisiblePreamble} and \ttIndex{\%StopVisiblePreamble} will be listed as preamble and in case of a \LaTeX\ source everything between - \verb|\begin{document}| and \verb|\end{document}| as body. The marker must be defined with an own + \Lcs{begin\{document\}} and \Lcs{end\{document\}} as body. The marker must be defined with an own macro, e.g.: \begin{verbatim} @@ -315,11 +325,14 @@ macro, e.g.: {\NumChar StopVisiblePreamble} \end{verbatim} -\verb|\NumChar| is the comment character \#, which needs a special handling. This version of \texttt{hvextern} -supports the following programming languages (option \texttt{compiler}): -mpost, tex, latex, luatex, python3, perl, lua, xetex, pdflatex, lualatex, xelatex, and context. The default -is pdflatex. The option \texttt{docType} selects the config file, which must be one of -context, lua, pl, tex, latex, mp, and py. For Lua it is +\Lcs{NumChar} is the comment character \#, which needs a special handling. This version of \Lpack{hvextern} +supports the following programming languages (option \Lkeyword{compiler}): +\Lkeyval{mpost}, \Lkeyval{tex}, \Lkeyval{latex}, \Lkeyval{luatex}, +\Lkeyval{python3}, \Lkeyval{perl}, \Lkeyval{lua}, \Lkeyval{xetex}, +\Lkeyval{pdflatex}, \Lkeyval{lualatex}, \Lkeyval{xelatex}, and \Lkeyval{context}. The default +is \Lkeyval{pdflatex}. The option \Lkeyword{docType} selects the config file, which must be one of +\Lkeyval{context}, \Lkeyval{lua}, \Lkeyval{pl}, \Lkeyval{tex}, \Lkeyval{latex}, +\Lkeyval{mp}, and \Lkeyval{py}. For Lua it is \begin{verbatim} \hv@extern@exampleType{lua} @@ -330,7 +343,8 @@ context, lua, pl, tex, latex, mp, and py. For Lua it is \end{verbatim} -It defines the marker strings for the listed code sequences. In some cases you have to use multiple times the same value +It defines the marker strings for the listed code sequences. +In some cases you have to use multiple times the same value for different optional arguments, e.g. \begin{verbatim} @@ -339,12 +353,12 @@ ext=lua, compiler=lua, docType=lua, ... \section{Optional arguments} -The deafault setting is always shown in brackets. +The default setting is always shown in brackets. \subsection{Programs and runs} -The \texttt{progpath} should only in some -rare cases needed. In general all used compilers will be found by the system. A given \texttt{progpath} -must be end with a slash, e.g. \texttt{./bin/} %The option \texttt{runsequence} is currently not used. +The \Lkeyword{progpath} should only in some +rare cases needed. In general all used compilers will be found by the system. A given \Lkeyword{progpath} +must be end with a slash, e.g. \Lkeyval{./bin/} \begin{verbatim} \define@key{hv}{progpath}[]{\def\hv@extern@progpath{#1}} @@ -354,9 +368,9 @@ must be end with a slash, e.g. \texttt{./bin/} %The option \texttt{runsequence} \end{verbatim} Instead of the optional arguments - \texttt{compiler}, \texttt{biber}, and \texttt{xindex} one can define an individual + \Lkeyword{compiler}, \Lkeyword{biber}, and \Lkeyword{xindex} one can define an individual command sequence by using the optional argument - \texttt{runsequence}. It must be comma separated list: + \Lkeyword{runsequence}. It must be comma separated list: \begin{verbatim} runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex} @@ -369,7 +383,7 @@ runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex} runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex}, showFilename, verbose, - force, + force=false, cleanup={log,aux,toc,bbl,blg}, code,docType=latex, lstOptions={columns=fixed}]{voss} @@ -398,8 +412,8 @@ Sort with xindex \verb|-l DE --config AU| \end{externalDocument} -The following Java-program creates the Mandelbrot set as png image. The valid setting for -the environment \texttt{externalDocument} is: +The following \Java-program creates the Mandelbrot set as png image. The valid setting for +the environment \Lenv{externalDocument} is: \begin{verbatim} compiler=java,ext=java,docType=java, @@ -408,7 +422,7 @@ the environment \texttt{externalDocument} is: \begin{externalDocument}[ verbose, compiler=java,ext=java,code, - force,docType=java,includegraphic, + force=false,docType=java,includegraphic, usefancyvrb,grfOptions={width=0.9\linewidth}]{java} import java.awt.Color; import java.awt.Graphics; @@ -472,7 +486,7 @@ public class Main { \end{externalDocument} - +%$ \subsection{Grafik options} @@ -480,7 +494,7 @@ public class Main { \define@key{hv}{grfOptions}[]{\def\hv@extern@grfOptions{#1}} \end{verbatim} -The option is passed to \verb|\includegraphics|, e.g. \verb|angle=90,width=\linewidth| for +The option is passed to \Lcs{includegraphics}, e.g. \verb|angle=90,width=\linewidth| for the follwing example. \begin{externalDocument}[grfOptions={angle=90,width=\linewidth}, @@ -516,8 +530,8 @@ the follwing example. \define@key{hv}{lstOptions}[]{\def\hv@extern@lstOptions{#1}} \end{verbatim} -The option is passed either to \verb|\lstinputlisting|, or, if \texttt{usefancyvrb} is active, -to \verb|\VerbatimInput|. The following example uses +The option is passed either to \Lcs{lstinputlisting}, or, if \Lkeyword{usefancyvrb} is active, +to \Lcs{VerbatimInput}. The following example uses \begin{verbatim} lstOptions={basicstyle=\sffamily\itshape\scriptsize}, @@ -533,7 +547,7 @@ to \verb|\VerbatimInput|. The following example uses mpwidth=0.6\linewidth, crop, cleanup, - force, + force=false, docType=latex]{voss} \RequirePackage{pdfmanagement-testphase} \DeclareDocumentMetadata{} @@ -559,7 +573,7 @@ There are different colors for the preamble and body listing: the backgrund and \define@key{hv}{BObody}[black8]{\def\hv@extern@BObody{#1}} \end{verbatim} -The options are passed to \verb|tcolorbox| and preset to \texttt{black12} and \texttt{black!8}. +The options are passed to \Lpack{tcolorbox} and preset to \Lcolor{black"!12} and \Lcolor{black"!8}. The color of the frame is set to the same values, hence not seen. The following example uses \begin{verbatim} @@ -579,7 +593,7 @@ The color of the frame is set to the same values, hence not seen. The following mpwidth=0.6\linewidth, crop, cleanup, - force, + force=false, usefancyvrb, docType=latex]{voss} \RequirePackage{pdfmanagement-testphase} @@ -598,7 +612,7 @@ The color of the frame is set to the same values, hence not seen. The following \subsection{Type of the source code} -The current version of \texttt{hvextern} supports code written as +The current version of \Lpack{hvextern} supports code written as \MP, \plainTeX, \LaTeX, \ConTeXt, and Python. Every type has its own keywords for the linerange which should be printed for the preamble and the body. For example the \texttt{latex} config is: @@ -627,15 +641,15 @@ If a source needs more than running the defined compiler, it must be defined by ...} \end{verbatim} -The type of the source code can be different to the compiler, e.g. source \texttt{latex}, -but compiler \texttt{lualatex}. +The type of the source code can be different to the compiler, e.g. source \Lkeyval{latex}, +but compiler \Lkeyval{lualatex}. \subsection{Output as floating object with caption and label} By default the images are not inserted as a float. This can be changed by -the keyword \texttt{float}, a caption and a label are optional. The float type is always -\texttt{figure}. +the keyword \Lkeyword{float}, a caption and a label are optional. The float type is always +\Lenv{figure}. \begin{verbatim} \define@boolkey{hv}[hv@extern@]{float}[true]{} @@ -656,7 +670,7 @@ The image Figure~\ref{img:cox} shows an example for a floting object. % mpwidth=0.6\linewidth, crop, cleanup, - force, + force=false, usefancyvrb, float, caption={An example for Coxeter images}, @@ -696,7 +710,7 @@ The pages which should be printed can be defined by \define@boolkey{hv}[hv@extern@]{frame}[true]{} \end{verbatim} -With \texttt{frame} the pages can be framed (internally by \verb|\fbox|). +With \Lkeyword{frame} the pages can be framed (internally by \Lcs{fbox}). It is leaved to the user to choose the correct image width for the pages. The following example uses: @@ -718,7 +732,7 @@ The following example uses: % mpwidth=0.6\linewidth, % crop, cleanup, - force, + force=false, frame, % usefancyvrb, % float, @@ -744,8 +758,8 @@ The following example uses: \subsection{Cropping the PDF} -Instead of using the documentclass \texttt{standalone}, which already crops the created PDF, -one can use the optional argument \texttt{crop}. +Instead of using the \Index{documentclass} \Lclass{standalone}, which already crops the created PDF, +one can use the optional argument \Lkeyword{crop}. \begin{verbatim} \define@boolkey{hv}[hv@extern@]{crop}[true]{} @@ -755,7 +769,8 @@ one can use the optional argument \texttt{crop}. It is also possible to crop a document with more than one page. In this case the beginning and end of the pages should be on the same height. Otherwise the pages -will have different heights after cropping (see next image). The follwoing example was created with +will have different heights after \Index{cropping} (see next image). +The follwoing example was created with \begin{verbatim} pages={1,2,3}, @@ -776,7 +791,7 @@ will have different heights after cropping (see next image). The follwoing examp % mpwidth=0.6\linewidth, crop, cropmargin=5, cleanup, - force, + force=false, frame, % usefancyvrb, % float, @@ -802,20 +817,22 @@ will have different heights after cropping (see next image). The follwoing examp \subsection{Code and output side by side} By default the code and the output is on top of each other. With setting the -width of a minipage with \texttt{mpwidth} greater than 0\,pt the output will be side by side. +width of a minipage with \Lkeyword{mpwidth} greater than 0\,pt the output will be side by side. \begin{verbatim} \define@key{hv}{mpwidth}[0pt]{\setlength\hv@extern@mpwidth{#1}} +\define@key{hv}{mpvalign}[0pt]{\def\hv@extern@mpvalign{#1}} \end{verbatim} -\texttt{mpwidth} is the width of the code. The rest of the line, minus 1em for the space between +\Lkeyword{mpwidth} is the width of the code. The rest of the line, minus 1em for the space between the minipages, will be the possible -width for the output and will be calculated automatically. The two minipages are -aligned by its top. +width for the output and will be calculated automatically. The two \Index{minipages} are +aligned by defaults to its top. This can be changed by setting \Lkeyword{mpvalign} to \Lkeyval{c} +or \Lkeyval{b}. -\subsection{Align of the output} +\subsection{Horizontal alignment of the output} %\begin{verbatim} %\define@key{hv}{align}[\centering]{\def\hv@extern@align{#1}} @@ -834,7 +851,7 @@ aligned by its top. code, crop, cleanup, - force, + force=false, docType=latex]{voss} \documentclass{article} \pagestyle{empty} @@ -857,7 +874,7 @@ aligned by its top. code, crop, cleanup, - force, + force=false, docType=latex]{voss} \documentclass{article} \pagestyle{empty} @@ -881,7 +898,7 @@ aligned by its top. code, crop, cleanup, - force, + force=false, docType=latex]{voss} \documentclass{article} \pagestyle{empty} @@ -905,7 +922,7 @@ aligned by its top. code, crop, cleanup, - force, + force=false, mpwidth=0.5\linewidth, docType=latex]{voss} \documentclass{article} @@ -929,7 +946,7 @@ aligned by its top. code, crop, cleanup, - force, + force=false, mpwidth=0.5\linewidth, docType=latex]{voss} \documentclass{article} @@ -954,7 +971,7 @@ aligned by its top. code, crop, cleanup, - force, + force=false, mpwidth=0.5\linewidth, docType=latex]{voss} \documentclass{article} @@ -965,35 +982,35 @@ aligned by its top. \end{externalDocument} \subsection{Inline images} -By default code and image are own paragraphs. With the optional argument \texttt{inline} the created -image can be part of the current line. This may make sense, if you need characters which are +By default code and image are own paragraphs. With the optional argument \Lkeyword{inline} the created +image can be part of the \Index{current line}. This may make sense, if you need characters which are not part of your current font. \begin{verbatim} \define@boolkey{hv}[hv@extern@]{inline}[true]{\hv@extern@codefalse} \end{verbatim} -With \texttt{inline=true} the optional argument \texttt{code} is automatically set to false. The +With the setting \LKeyset{inline=true} the optional keyword \Lkeyword{code} is automatically set to false. The next Chinese characters \begin{externalDocument}[ compiler=xelatex, inline, runs=2, grfOptions={height=8pt}, - crop, cropmargin=0, cleanup, force, docType=latex]{voss}% + crop, cropmargin=0, cleanup, force=false, docType=latex]{voss}% \documentclass{ctexart} \pagestyle{empty} \begin{document} 美好的一天 \end{document} \end{externalDocument} -are inserted as inline image without showing the code. The complete code looks like: +are inserted as \Index{inline image} without showing the code. The complete code looks like: \begin{Verbatim} -With \texttt{inline=true} the optional argument \texttt{code} is automatically set to false. The +With \Lkeyset{inline} the optional argument \Lkeyword{code} is automatically set to false. The next Chinese characters \begin{externalDocument}[ compiler=xelatex, inline, runs=2, grfOptions={height=8pt}, - crop, cropmargin=0, cleanup, force, docType=latex]{voss} + crop, cropmargin=0, cleanup, force=false, docType=latex]{voss} \documentclass{ctexart} \pagestyle{empty} \begin{document} @@ -1005,9 +1022,9 @@ are inserted as inline image without showing the code. The complete code looks l \subsection{Input text instead of an image} -By default the created pdf which can be, of course, only test, wil be insert by \verb|\incudegraphics|. -If you have only text as output and dont want to create a pdf you can insert this kind of -output as verbatim text by setting \verb|includegraphic=false|. +By default the created pdf which can be, of course, only text, will be inserted by \Lcs{includegraphics}. +If you have only text as output and don't want to create a pdf you can insert this kind of +output as verbatim text by setting \Lkeyset{includegraphic=false}. \begin{verbatim} \define@boolkey{hv}[hv@extern@]{includegraphic}[true]{} @@ -1015,9 +1032,9 @@ output as verbatim text by setting \verb|includegraphic=false|. The textfile must have the same main filename with the extension -\verb|.txt|. As already mentioned, in every programming language you can get the current -used filename from within the code itself. The following Perl example which calculates the -Kaprekar constants uses +\Lext{txt}. As already mentioned, in every programming language you can get the current +used filename from within the code itself. The following \Perl example which calculates the +\Index{Kaprekar} constants uses \begin{verbatim} my $filename = $0; # the current filename @@ -1025,12 +1042,13 @@ $filename =~ s/\.pl//; # without extension .pl $filename = "${filename}.txt"; # for the output \end{verbatim} -Only for some completeness: a Kaprekar constant is a number $A$ with $\max(A)-\min(A)=A$. $\max$ and $\min$ are the +Only for some completeness: a Kaprekar constant is a number $A$ with $\max(A)-\min(A)=A$. +$\max$ and $\min$ are the sorted digits of the number $A$: $495=954-459$. \begin{externalDocument}[ - compiler=perl, force, docType=pl, ext=pl, includegraphic=false, + compiler=perl, force=false, docType=pl, ext=pl, includegraphic=false, code, mpwidth=0.6\linewidth]{voss} #!/usr/bin/perl # @@ -1074,7 +1092,7 @@ close $fh; %$ -Another example with running Lua to calculate and print the Pascal's triangle. The internal filename +Another example with running \Lua to calculate and print the \Index{Pascal's triangle}. The internal filename is available with \begin{verbatim} @@ -1085,7 +1103,7 @@ outFile = io.open(shortFN..".txt","w+") -- open external file \begin{externalDocument}[ - compiler=lua, force, docType=lua, ext=lua, includegraphic=false, code, usefancyvrb=false]{voss} + compiler=lua, force=false, docType=lua, ext=lua, includegraphic=false, code, usefancyvrb=false]{voss} #!/usr/bin/env lua local filename = arg[0] local shortFN = filename:match("(.+)%..+") @@ -1124,7 +1142,7 @@ outFile:close() \subsection{Running additional external programs} -For a \LaTeX\ additional programs for bibliography, index, a.s.o. maybe needed. +For a \LaTeX\ additional programs for \Index{bibliography}, \Index{index}, a.s.o. maybe needed. \begin{verbatim} \define@boolkey{hv}[hv@extern@]{biber}[true]{} @@ -1133,7 +1151,7 @@ For a \LaTeX\ additional programs for bibliography, index, a.s.o. maybe needed. \define@key{hv}{runsequence}[]{\def\hv@extern@runsequence{#1}} \end{verbatim} -The \texttt{biber} run needs no additional options, but for \texttt{xindex} it maybe useful. +The \Lkeyword{biber} run needs no additional options, but for \Lkeyword{xindex} it maybe useful. The following examples uses \begin{verbatim} @@ -1158,7 +1176,7 @@ The following examples uses pages=2, crop, cleanup, - force, + force=false, xindex, xindexOptions={-l DE --config AU}, mpwidth=0.6\linewidth, @@ -1200,8 +1218,8 @@ Sort with xindex \verb|-l DE --config AU| \end{externalDocument} -Instad of using the options \texttt{compiler}, \texttt{biber}, and \texttt{xindex} -one can also use only the optional argument \texttt{runsequence} to define an individuell +Instad of using the options \Lkeyword{compiler}, \Lkeyword{biber}, and \Lkeyword{xindex} +one can also use only the optional argument \Lkeyword{runsequence} to define an individuell sequence of commands, e.g.: \begin{verbatim} runsequence={lualatex,biber,{xindex -l de -c AU},lualatex,lualatex} @@ -1214,7 +1232,7 @@ runsequence={lualatex,biber,{xindex -l de -c AU},lualatex,lualatex} runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex}, showFilename, verbose, - force, + force=false, cleanup={log,aux,toc,bbl,blg}, code,docType=latex, lstOptions={columns=fixed}]{voss} @@ -1248,7 +1266,7 @@ Sort with xindex \verb|-l DE --config AU| \subsection{Using \texttt{listings}} -The default is using \verb|\lstinputlisting| for the printed code sequences. +The default is using \Lcs{lstinputlisting} for the printed code sequences. \begin{externalDocument}[ grfOptions={width=0.45\linewidth}, @@ -1256,9 +1274,9 @@ The default is using \verb|\lstinputlisting| for the printed code sequences. frame,compiler=pdflatex, showFilename, % crop, - force,runs=2,code,docType=latex, + force=false,runs=2,code,docType=latex, frame, - lstOptions={columns=fixed}]{Schubert-A} + lstOptions={columns=fixed}]{voss} %StartVisiblePreamble \documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrbook} \DeclareNewSectionCommand[ @@ -1306,8 +1324,8 @@ The default is using \verb|\lstinputlisting| for the printed code sequences. -It also possible to use \verb|\VerbatimInput| from package \texttt{fancyvrb}. In general -it makes no difference using the optional argument \texttt{usefancyvrb} or not. +It also possible to use \Lcs{VerbatimInput} from package \Lpack{fancyvrb}. In general +it makes no difference using the optional argument \Lkeyword{usefancyvrb} or not. \begin{externalDocument}[ @@ -1316,8 +1334,8 @@ it makes no difference using the optional argument \texttt{usefancyvrb} or not. frame,compiler=pdflatex, showFilename, % crop, - force,runs=2,code,docType=latex, - frame,usefancyvrb]{Schubert-A} + force=false,runs=2,code,docType=latex, + frame,usefancyvrb]{voss} %StartVisiblePreamble \documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrbook} \DeclareNewSectionCommand[ @@ -1376,7 +1394,7 @@ it makes no difference using the optional argument \texttt{usefancyvrb} or not. compiler=mpost, showFilename, % crop, - force, + force=false, cleanup, code, docType=mp, @@ -1408,7 +1426,7 @@ end; compiler=tex, showFilename, % crop, - force, + force=false, code, docType=tex, ext=tex,]{voss} @@ -1472,7 +1490,7 @@ This is the start of the introduction. compiler=lualatex, showFilename, crop, - force, + force=false, code, docType=latex, ext=tex,]{voss} @@ -1512,7 +1530,7 @@ This is the start of the introduction. compiler=context, showFilename, runs=2, - force, + force=false, code, docType=context, ext=tex,]{voss} @@ -1553,20 +1571,36 @@ foo \end{externalDocument} +\section{Running external commands} +Integrating the current directory of this document we can use the macro \Lcs{runExtCmd} with +the optional argument \Lkeyword{redirect} + +\begin{verbatim} +\runExtCmd[redirect]{ls -la}{voss} +\end{verbatim} + +to get the directory listed: + +\medskip +\runExtCmd[redirect,verbose]{ls -la}{voss} + + \section{Other options} \begin{description} -\item[\texttt{force=false}] can speed up the comiling time for the document. If a created image/output +\item[\Lkeyset{force=false}] can speed up the comiling time for the document. If a created image/output already exists, there is no need to create it with the next run again and again. -\item[\texttt{cleanup}] the auxiliary files of a \LaTeX-run are deleted, preset to \texttt{.aux}, \texttt{.log}. +\item[\Lkeyword{cleanup}] the auxiliary files of a \LaTeX-run are deleted, preset to \texttt{aux}, \texttt{log}. It must be a comma seperated list of the extensions of the main file, s.g. \texttt{cleanup=\{aux,log\}}. -\item[\texttt{copyToExampleDir}] name of a directory for the examples, must first be created by the user himself -\item[\texttt{ExamplesDir}] move all examples into a directory -\item[\texttt{eps}] create an eps from the pdf (historical) +\item[\Lkeyword{copyToExampleDir}] name of a directory for the examples, must first be created by the user himself +\item[\Lkeyword{ExamplesDir}] move all examples into a directory +\item[\Lkeyset{tclbox=false}] Can be used if there are some negative interactions between package \Lpack{listings} + and package \Lpack{tcolorbox}. +\item[\Lkeyword{eps}] create an eps from the pdf (historical). \end{description} - +\printindex \end{document} diff --git a/Master/texmf-dist/tex/latex/hvextern/hvextern.sty b/Master/texmf-dist/tex/latex/hvextern/hvextern.sty index 54a921e0a16..5179123aa2e 100644 --- a/Master/texmf-dist/tex/latex/hvextern/hvextern.sty +++ b/Master/texmf-dist/tex/latex/hvextern/hvextern.sty @@ -11,8 +11,8 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -\def\hvexternFileversion{0.21} -\ProvidesFile{hvextern}[2022/04/30 v\hvexternFileversion: package for running external documents (HV)] +\def\hvexternFileversion{0.23} +\ProvidesFile{hvextern}[2022/05/08 v\hvexternFileversion: package for running external documents (HV)] \RequirePackage{shellesc,xkeyval,graphicx,marginnote,fancyvrb,tikz,listings,ifplatform} \RequirePackage{tcolorbox,xparse} @@ -48,6 +48,7 @@ \define@key{hv}{pages}[1]{\def\hv@extern@pages{#1}} \define@key{hv}{cropmargin}[2]{\def\hv@extern@cropmargin{#1 }} \define@key{hv}{mpwidth}[0pt]{\setlength\hv@extern@mpwidth{#1}} +\define@key{hv}{mpvalign}[t]{\def\hv@extern@mpvalign{#1}} \define@key{hv}{ext}[tex]{\def\hv@extern@ext{.#1}} \define@boolkey{hv}[hv@extern@]{redirect}[true]{} \define@boolkey{hv}[hv@extern@]{usefancyvrb}[true]{} @@ -55,6 +56,7 @@ \define@boolkey{hv}[hv@extern@]{code}[true]{} \define@boolkey{hv}[hv@extern@]{force}[true]{} \define@boolkey{hv}[hv@extern@]{crop}[true]{} +\define@boolkey{hv}[hv@extern@]{tcbox}[true]{} \define@boolkey{hv}[hv@extern@]{biber}[true]{} \define@boolkey{hv}[hv@extern@]{xindex}[true]{} \define@key{hv}{xindexOptions}[]{\def\hv@extern@xindexOptions{#1}} @@ -79,7 +81,7 @@ %\define@key{hv}{compiler}[pdflatex]{\def\hv@extern@compiler{#1}} \define@choicekey*+{hv}{compiler}[\val\nr]{mpost,tex,latex,luatex,python3,perl,lua,java,% - xetex,pdflatex,lualatex,xelatex,context}[pdflatex]{% + xetex,pdflatex,lualatex,xelatex,context,sh,texlua}[pdflatex]{% \hv@typeout{>>>> Compiler type \nr}% \def\hv@extern@compiler{\val}% \edef\hv@extern@compilerNo{\nr}% @@ -96,6 +98,7 @@ crop=false,% erzeugte PDF "croppen" compiler=pdflatex,% zu verwendener Compiler redirect=false,% write output into a file *.txt + tcbox=true,% use tcolorbox grfOptions={},% Optionen der einzubindenden Grafik lstOptions={},% Optionen für das Listing BGpreamble=black!12,% Backgroundcolor for preamble @@ -121,12 +124,14 @@ ExampleDir=Examples,% Unterverzeichnis für Beispiele align=\centering,% Ausgabe zentrieren mpwidth=0pt,% no minipage + mpvalign=t,% if side by side output the vertical alignment usefancyvrb=false,% use VerbatimInput instead of listings progpath={}, cropmargin=2,% 2pb margin eps=false,% create an eps output? - } + }% } + \ResetKeys {\catcode`\%=12 @@ -157,13 +162,33 @@ \lstset{belowskip=0pt,aboveskip=0pt}% global \tcbset{breakable,left=2pt,right=2pt,top=2pt,bottom=2pt,boxsep=0pt} -\newcommand\PreambleVerbatim[2][]{\begin{tcolorbox}\VerbatimInput[#1]{#2}\end{tcolorbox}} +\newcommand\PreambleVerbatim[2][]{% + \ifhv@extern@tcbox + \begin{tcolorbox}\VerbatimInput[#1]{#2}\end{tcolorbox}% + \else + \VerbatimInput[#1]{#2} + \fi} -\newcommand\BodyVerbatim[2][]{\begin{tcolorbox}\VerbatimInput[#1]{#2}\end{tcolorbox}} +\newcommand\BodyVerbatim[2][]{% + \ifhv@extern@tcbox + \begin{tcolorbox}\VerbatimInput[#1]{#2}\end{tcolorbox}% + \else + \VerbatimInput[#1]{#2} + \fi} -\newcommand\PreambleListing[2][]{\begin{tcolorbox}[top=-2pt]\expandafter\lstinputlisting\expandafter[#1]{#2}\end{tcolorbox}} +\newcommand\PreambleListing[2][]{% + \ifhv@extern@tcbox + \begin{tcolorbox}[top=-2pt]\expandafter\lstinputlisting\expandafter[#1]{#2}\end{tcolorbox}% + \else + \expandafter\lstinputlisting\expandafter[#1]{#2}% + \fi} -\newcommand\BodyListing[2][]{\begin{tcolorbox}[top=-2pt]\expandafter\lstinputlisting\expandafter[#1]{#2}\end{tcolorbox}} +\newcommand\BodyListing[2][]{% + \ifhv@extern@tcbox + \begin{tcolorbox}[top=-2pt]\expandafter\lstinputlisting\expandafter[#1]{#2}\end{tcolorbox}% + \else + \expandafter\lstinputlisting\expandafter[#1]{#2}% + \fi} \newcounter{hv@example@counter} @@ -272,6 +297,15 @@ {//StopVisiblePreamble} +%---- Shell +%\input{hvextern-sh.cfg} +\hv@extern@ExampleType{sh} + {\NumChar StartVisibleMain} + {\NumChar StopVisibleMain} + {\NumChar StartVisiblePreamble} + {\NumChar StopVisiblePreamble} + + %%%--------------------------------- end config part ------------------ %% @@ -280,6 +314,7 @@ \newenvironment{externalDocument}[2][]{% \xdef\hvExternDateiname{#2-\arabic{hv@example@counter}}% \setkeys{hv}{#1}% \begin + \hv@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}{}{% @@ -307,10 +342,11 @@ \hv@typeout{>>>> running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext}% \hv@extern@runLATEX{\hv@extern@progpath}{\hv@extern@compiler}{\hvExternDateiname}{\hv@extern@ext}% \else - \hv@typeout{>>>> running \hv@extern@compiler~ \hvExternDateiname\hv@extern@ext}% \ifhv@extern@redirect + \hv@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}% \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname\hv@extern@ext}% \fi \fi @@ -325,7 +361,7 @@ \ShellEscape{xindex \hv@extern@xindexOptions\space \hvExternDateiname.idx}% NAch xindex nochmal latex \ShellEscape{\hv@extern@progpath\hv@extern@compiler\space\hvExternDateiname}% \fi - \else + \else % runsequence \expandafter\run@hv@extern@sequenceList\expandafter{\hv@extern@runsequence}% \fi \ifhv@extern@crop @@ -335,11 +371,12 @@ \ifhv@extern@eps \ShellEscape{pdftops -eps -f 1 -l 1 \hvExternDateiname.pdf}% \fi - \fi + \fi% end force \ifhv@extern@code%-------------- Code Part + \hv@typeout{>>>>Starting Code part ...}% \par\noindent \begingroup - \ifdim\hv@extern@mpwidth>\z@ \minipage[t]{\hv@extern@mpwidth}\vspace{0pt}\fi + \ifdim\hv@extern@mpwidth>\z@ \minipage[\hv@extern@mpvalign]{\hv@extern@mpwidth}\vspace{0pt}\fi \ifhv@extern@usefancyvrb \@nameuse{\hv@extern@docType @initPreambleFancy}% \edef\@@@temp{\@nameuse{\hv@extern@docType @initPreamble}}% @@ -377,8 +414,8 @@ \fi \ifdim\hv@extern@mpwidth > \z@\relax \endminipage\fi \endgroup - \fi - \ifhv@extern@code\else + \fi % end code part + \ifhv@extern@code\else % only if no code \ifhv@extern@showFilename \hv@typeout{>>>> Set filename in the margin!}% \marginnote{\rotatebox{90}{\hvExternDateiname}}% @@ -387,6 +424,7 @@ \ifhv@extern@moveToExampleDir % \ShellEscape{mkdir\space\hv@extern@ExamplesDir/}% \hv@typeout{>>>> Move file into example dir}% + \hv@typeout{>>>>>>\hvExternDateiname ---- \hv@extern@ExamplesDir}% \ShellEscape{\hv@move \hvExternDateiname.*\space \hv@extern@ExamplesDir}% \fi \ifhv@extern@includegraphic @@ -399,7 +437,7 @@ \else \hv@typeout{>>>> No floating environment}% \ifdim\hv@extern@mpwidth>\z@ - \hfill\minipage[t]{\dimexpr\linewidth-\hv@extern@mpwidth-1em\relax}\vspace{0pt}% + \hfill\minipage[\hv@extern@mpvalign]{\dimexpr\linewidth-\hv@extern@mpwidth-1em\relax}\vspace{0pt}% \else \par\noindent\begingroup \fi @@ -427,15 +465,76 @@ \else% no graphic, only text \ifdim\hv@extern@mpwidth>\z@ \hfill\minipage[t]{\dimexpr\linewidth-\hv@extern@mpwidth-1em\relax}\vspace{0pt} - \noindent\VerbatimInput{\hv@extern@ExamplesDir\hvExternDateiname.txt} + \noindent\BodyListing{\hv@extern@ExamplesDir\hvExternDateiname.txt} \endminipage \else - \noindent\VerbatimInput{\hv@extern@ExamplesDir\hvExternDateiname.txt} + \noindent\BodyListing{\hv@extern@ExamplesDir\hvExternDateiname.txt} \fi \fi \ifhv@extern@force\expandafter\run@hv@extern@cleanup\expandafter{\hv@extern@cleanup}\fi% cleanup } + \stepcounter{hv@example@counter}% + + +\newcommand\runExtCmd[3][]{% + \begingroup + \setkeys{hv}{code=false,includegraphic=false,#1}% + \xdef\hvExternDateiname{#3-\arabic{hv@example@counter}}% + \hv@typeout{>>>> running #2}% + \ifhv@extern@redirect + \ShellEscape{\hv@extern@progpath#2 > \hv@extern@ExamplesDir\hvExternDateiname.txt}% + \else + \ShellEscape{\hv@extern@progpath#2}% + \fi + \global\stepcounter{hv@example@counter}% + %------------------------------------- output ----------------------------------- + \ifhv@extern@includegraphic + \ifhv@extern@inline + \expandafter\includegraphics\expandafter[\hv@extern@grfOptions]{\hv@extern@ExamplesDir\hvExternDateiname}% + \else + \ifhv@extern@float + \hv@typeout{>>>> Floating environment}% + \begin{figure}[!htb] + \else + \hv@typeout{>>>> No floating environment}% + \par\noindent\begingroup + \fi + \hv@extern@align + \hv@typeout{>>>> Input image \hv@extern@ExamplesDir\hvExternDateiname}% + \ifhv@extern@frame + \expandafter\@for\expandafter\next\expandafter:\expandafter=\hv@extern@pages\do{% + \fbox{\expandafter\includegraphics\expandafter[\hv@extern@grfOptions,page=\next]{\hv@extern@ExamplesDir\hvExternDateiname}}% + \hspace{5pt}}\hspace*{-5pt}% + \else + \expandafter\@for\expandafter\next\expandafter:\expandafter=\hv@extern@pages\do{% + \expandafter\includegraphics\expandafter[\hv@extern@grfOptions,page=\next]% + {\hv@extern@ExamplesDir\hvExternDateiname}% + \hspace{5pt}}\hspace*{-5pt}% + \fi + \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 + \end{figure}% + \else + \ifdim\hv@extern@mpwidth>\z@ \endminipage\else\par\endgroup\fi + \fi + \fi + \else% no graphic, only text + \ifhv@extern@float + \hv@typeout{>>>> Floating environment}% + \begin{figure}[!htb] + \noindent\BodyListing{\hv@extern@ExamplesDir\hvExternDateiname.txt} + \ifx\hv@extern@caption\@empty\else\caption{\hv@extern@caption}\fi + \ifx\hv@extern@label\@empty\else\label{\hv@extern@label}\fi + \end{figure} + \else + \noindent\BodyListing{\hv@extern@ExamplesDir\hvExternDateiname.txt} + \fi + \fi + \ifhv@extern@force\expandafter\run@hv@extern@cleanup\expandafter{\hv@extern@cleanup}\fi% cleanup + \endgroup +} % %% \endinput |