summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hvextern
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-25 03:01:31 +0000
committerNorbert Preining <norbert@preining.info>2022-06-25 03:01:31 +0000
commit7539b7b5d1fc836a31110d086fb5b9783033f327 (patch)
treec0d694d1c3a605112ee319ed0f9e6697c33798bc /macros/latex/contrib/hvextern
parent1ef4c041ba74d4619dd62209ae48a2b24563954c (diff)
CTAN sync 202206250301
Diffstat (limited to 'macros/latex/contrib/hvextern')
-rw-r--r--macros/latex/contrib/hvextern/Changes2
-rw-r--r--macros/latex/contrib/hvextern/doc/hvextern.pdfbin1425940 -> 1417949 bytes
-rw-r--r--macros/latex/contrib/hvextern/doc/hvextern.tex21
-rw-r--r--macros/latex/contrib/hvextern/latex/hvextern.sty48
-rwxr-xr-xmacros/latex/contrib/hvextern/script/hvextern-checkfile.lua42
5 files changed, 93 insertions, 20 deletions
diff --git a/macros/latex/contrib/hvextern/Changes b/macros/latex/contrib/hvextern/Changes
index 73630cf187..422e5ce894 100644
--- a/macros/latex/contrib/hvextern/Changes
+++ b/macros/latex/contrib/hvextern/Changes
@@ -1,5 +1,7 @@
hvextern.sty ----------------
+v 0.32 2022-06-23 - fixed introduced bug
+ - added checkCode also for pdflatex and xelatex
v 0.31 2022-06-20 - added package option checkCode to run the external
file only if the code changes.
v 0.30 2022-06-09 - added \hfuzz=\maxdimen for filename to prevent
diff --git a/macros/latex/contrib/hvextern/doc/hvextern.pdf b/macros/latex/contrib/hvextern/doc/hvextern.pdf
index 6e11028f20..6213f9215f 100644
--- a/macros/latex/contrib/hvextern/doc/hvextern.pdf
+++ b/macros/latex/contrib/hvextern/doc/hvextern.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvextern/doc/hvextern.tex b/macros/latex/contrib/hvextern/doc/hvextern.tex
index d3f81f7447..5971c04744 100644
--- a/macros/latex/contrib/hvextern/doc/hvextern.tex
+++ b/macros/latex/contrib/hvextern/doc/hvextern.tex
@@ -44,10 +44,10 @@ from within a main\newline \LaTeX\ document~--v. \hvexternFileversion}
\usepackage[Option]{hvextern}
\end{verbatim}
-There exists only one option \Loption{checkCode} which is only valid
-for the use of \LuaLaTeX. In this case an already existing external file will only be compiled, if the
-code changed. This dosn't depends on the setting of the option \Lkeyword{force}.
-The package option will speed up the compilation time.
+There exists only one option \Loption{checkCode} which is valid
+for all \TeX-compiler. In this case an already existing external file will only be compiled, if the
+external code changed. This dosn't depends on the setting of the option \Lkeyword{force}.
+\Loption{checkCode} can speed up the compilation time.
\section{Syntax}
@@ -1832,6 +1832,19 @@ to get the directory listed:
\runExtCmd[redirect,verbose]{ls -la}{voss}
+\begin{verbatim}
+\runExtCmd[redirect,verbose,lstOptions={basicstyle=\ttfamily\small}]{df}{voss}
+\end{verbatim}
+
+
+
+\medskip
+\runExtCmd[redirect,verbose,lstOptions={basicstyle=\ttfamily\footnotesize}]{df}{voss}
+
+
+
+
+
\section{Other options}
\begin{description}
diff --git a/macros/latex/contrib/hvextern/latex/hvextern.sty b/macros/latex/contrib/hvextern/latex/hvextern.sty
index a7340a2f12..bf76925308 100644
--- a/macros/latex/contrib/hvextern/latex/hvextern.sty
+++ b/macros/latex/contrib/hvextern/latex/hvextern.sty
@@ -1,4 +1,4 @@
-%% $Id: hvextern.sty 577 2022-06-20 16:35:21Z herbert $
+%% $Id: hvextern.sty 579 2022-06-20 19:23:29Z herbert $
%% This is file `hvextern.sty',
%%
%% Copyright (C) 2016-22
@@ -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.31}
-\ProvidesFile{hvextern}[2022/06/20 v\hvexternFileversion: package for running external documents (HV)]
+\def\hvexternFileversion{0.32}
+\ProvidesFile{hvextern}[2022/06/23 v\hvexternFileversion: package for running external documents (HV)]
\newif\ifhv@extern@checkCode
\hv@extern@checkCodefalse
@@ -190,15 +190,15 @@
\ResetKeys
-\ifluatex
- \ifhv@extern@checkCode
+\ifhv@extern@checkCode
+ \ifluatex
\hv@ex@typeout{Loading hvextern.lua}%
- \directlua{dofile("hvextern.lua")}%
- \fi
-\else
- \ifhv@extern@checkCode
- \hv@ex@typeout{You need lualatex for option checkCode. Will disable the option!}%
- \hv@extern@checkCodefalse
+ \directlua{kpse.set_program_name("luatex")require "hvextern.lua" }%
+ \else
+ \ifhv@extern@checkCode
+ \hv@ex@typeout{Using xelatex or pdflatex! Will use a temporary file for diff}%
+% \hv@extern@checkCodefalse
+ \fi
\fi
\fi
@@ -445,12 +445,27 @@
\expandafter\hvExternSetKeys\expandafter{\hv@extern@savePara}%
\xdef\hv@extern@fullPath{\hv@extern@ExamplesDir\hvExternDateiname}%
\ifhv@extern@checkCode
- \directlua{if GetFileContents("\hvExternDateiname\hv@extern@ext",
+ \ifluatex
+ \directlua{if GetFileContents("\hvExternDateiname\hv@extern@ext",
"\hv@extern@ExamplesDir\hvExternDateiname\hv@extern@ext") then
tex.print("\\csname hv@ex@typeout\\endcsname{current file is NOT newer: no run }\\global\\csname hv@extern@forcefalse\\endcsname")
else
tex.print("\\csname hv@ex@typeout\\endcsname{current file is newer: force run }\\global\\csname hv@extern@forcetrue\\endcsname")
- end}
+ end}%
+ \else
+ \hv@ex@typeout{Check, if new file has a different code}%
+ \ShellEscape{hvextern-checkfile "\hvExternDateiname\hv@extern@ext"
+ "\hv@extern@ExamplesDir\hvExternDateiname\hv@extern@ext"}%
+ \InputIfFileExists{\hvExternDateiname\hv@extern@ext.diff}{}{}%
+ \ifx\hvCheckNewFile\empty
+ \hv@ex@typeout{current file is NOT newer: no run }%
+ \global\hv@extern@forcefalse
+ \else
+ \hv@ex@typeout{current file is newer: force run }%
+ \global\hv@extern@forcetrue
+ \fi
+ \ifhv@extern@verbose\else\ShellEscape{\hv@rm \hvExternDateiname\hv@extern@ext.diff}\fi
+ \fi
\fi
\ifhv@extern@force
\ifx\hv@extern@runsequence\@empty
@@ -645,7 +660,7 @@
\newcommand\runExtCmd[3][]{%
\begingroup
- \setkeys{hv}{code=false,includegraphic=false,#1}%
+ \setkeys{hv}{cleanup={},code=false,includegraphic=false,#1}%
\xdef\hvExternDateiname{#3-\arabic{hv@example@counter}}%
\xdef\hv@extern@fullPath{\hv@extern@ExamplesDir\hvExternDateiname}%
\hv@ex@typeout{running #2}%
@@ -697,7 +712,7 @@
\ifhv@extern@usefancyvrb
\expandafter\BodyVerbatim\expandafter[\hv@extern@lstOptions]{\hv@extern@fullPath.txt}
\else
- \expandafter\BodyListing\expandafter[\hv@extern@lstOptions]{\hv@extern@fullPath.txt}
+ \expandafter\BodyListing\expandafter[\hv@extern@lstOptions,breakatwhitespace]{\hv@extern@fullPath.txt}
\fi
\ifx\hv@extern@caption\@empty\else\caption{\hv@extern@caption}\fi
\ifx\hv@extern@label\@empty\else\label{\hv@extern@label}\fi
@@ -707,7 +722,8 @@
\ifhv@extern@usefancyvrb
\expandafter\BodyVerbatim\expandafter[\hv@extern@lstOptions]{\hv@extern@fullPath.txt}
\else
- \expandafter\BodyListing\expandafter[\hv@extern@lstOptions]{\hv@extern@fullPath.txt}
+ \hv@extern@tcboxfalse
+ \expandafter\BodyListing\expandafter[\hv@extern@lstOptions,breaklines,breakatwhitespace]{\hv@extern@fullPath.txt}
\fi
\fi
\fi
diff --git a/macros/latex/contrib/hvextern/script/hvextern-checkfile.lua b/macros/latex/contrib/hvextern/script/hvextern-checkfile.lua
new file mode 100755
index 0000000000..627f86d6bb
--- /dev/null
+++ b/macros/latex/contrib/hvextern/script/hvextern-checkfile.lua
@@ -0,0 +1,42 @@
+#!/usr/bin/env texlua
+-----------------------------------------------------------------------
+-- FILE: hvextern-checkfile.lua
+-- DESCRIPTION: check two files for identical code
+-- REQUIREMENTS:
+-- AUTHOR: Herbert Voß
+-- LICENSE: LPPL1.3
+--
+-- $Id: hvextern.lua 578 2022-06-20 16:41:45Z herbert $
+-----------------------------------------------------------------------
+kpse.set_program_name("luatex")
+
+local f = kpse.find_file("hvextern.lua")
+require('hvextern')
+
+--[[
+function GetFileContents(f1,f2)
+ local NewContents, OldContents
+ local File = io.open(f1)
+ if File then
+ NewContents = File:read('*all')
+ File:close()
+ end
+ local File = io.open(f2)
+ if File then
+ OldContents = File:read('*all')
+ File:close()
+ end
+ return NewContents == OldContents
+end
+]]
+
+local f1 = arg[1]
+local f2 = arg[2]
+diffFile = io.open(f1..".diff","w+")
+if GetFileContents(f1,f2) then
+ diffFile:write("\\let\\hvCheckNewFile\\empty")
+else
+ diffFile:write("\\def\\hvCheckNewFile{Code changes}")
+end
+diffFile:close()
+