summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/plain/zztex/zzmerge.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/plain/zztex/zzmerge.tex')
-rw-r--r--Master/texmf-dist/tex/plain/zztex/zzmerge.tex70
1 files changed, 70 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/zztex/zzmerge.tex b/Master/texmf-dist/tex/plain/zztex/zzmerge.tex
new file mode 100644
index 00000000000..05ef863971b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/zztex/zzmerge.tex
@@ -0,0 +1,70 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Module: ZzTeX Merge Print
+%
+% Synopsis: This module provides a simple merge print facility for ZzTeX.
+%
+% Author: Paul C. Anagnostopoulos
+% Created: 17 October 2000
+%
+% Copyright 1989--2020 by Paul C. Anagnostopoulos
+% under The MIT License (opensource.org/licenses/MIT)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Merge Fields
+% ----- ------
+
+
+\setlist \zmrgfields = {}
+\definecount{\zmrgcount}{0}
+
+\def \mergefields #1{%
+ \commalist{\zmrgfields}{#1}%
+ \zmrgcount = 0
+ \maplist{\increment \zmrgcount
+ \withname\edef {\zmrgfmap:##1}{\the\zmrgcount}}
+ {\zmrgfields}}
+
+% Merge Text
+% ----- ----
+
+
+\definetoks{\zmrgtoks}
+
+\long\def \mergetext #1\endmergetext{%
+ \zmrgtoks = {#1}}
+
+% Merge Print
+% ----- -----
+
+
+\definecount{\zmrgi}{0}
+
+
+\def \mergeprint {%
+ \zmrgi = 0
+ \zmrgprinta}
+
+\def \zmrgprinta #1{%
+ \if \lssp{\zmrgi}{\zmrgcount}%
+ \increment \zmrgi
+ \withname\def {\zmrgvmap:\the\zmrgi}{#1}%
+ \let \znext = \zmrgprinta
+ \else
+ \let \znext = \zmrgprintb
+ \fi
+ \znext}
+
+\def \zmrgprintb {%
+ \freshpage{\short\floats\any}%
+ \the\zmrgtoks}
+
+% Merge a Field
+% ----- - -----
+
+
+\def \merge #1{%
+ \edef \tcounta {\name{\zmrgfmap:#1}}%
+ \edef \znext {\name{\zmrgvmap:\the\tcounta}}%
+ \znext}