summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/pfarrei/a5toa4.tlu4
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/pfarrei/pfarrei.tlu27
-rw-r--r--Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdfbin419416 -> 499976 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/pfarrei/a5toa4.tlu4
-rwxr-xr-xMaster/texmf-dist/scripts/pfarrei/pfarrei.tlu27
-rw-r--r--Master/texmf-dist/source/latex/pfarrei/README18
-rw-r--r--Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx746
-rw-r--r--Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex8
-rw-r--r--Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty234
9 files changed, 937 insertions, 131 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/pfarrei/a5toa4.tlu b/Build/source/texk/texlive/linked_scripts/pfarrei/a5toa4.tlu
index 25c7de5986e..436941eda58 100755
--- a/Build/source/texk/texlive/linked_scripts/pfarrei/a5toa4.tlu
+++ b/Build/source/texk/texlive/linked_scripts/pfarrei/a5toa4.tlu
@@ -28,10 +28,10 @@
-- The list of files belonging to the work `pfarrei' is given in
-- the file `pfarrei.dtx'.
--
--- $Id: pfarrei.dtx 20 2013-03-10 14:19:06Z mjk $
+-- $Id: pfarrei.dtx 33 2013-04-08 07:22:56Z mjk $
kpse.set_program_name(arg[-1], 'a5toa4')
-require('pfarrei')
+require('pfarrei.pfarrei')
--
--
-- End of file `a5toa4.tlu'.
diff --git a/Build/source/texk/texlive/linked_scripts/pfarrei/pfarrei.tlu b/Build/source/texk/texlive/linked_scripts/pfarrei/pfarrei.tlu
index ee5f0ed8d67..f2756f6f907 100755
--- a/Build/source/texk/texlive/linked_scripts/pfarrei/pfarrei.tlu
+++ b/Build/source/texk/texlive/linked_scripts/pfarrei/pfarrei.tlu
@@ -28,7 +28,7 @@
-- The list of files belonging to the work `pfarrei' is given in
-- the file `pfarrei.dtx'.
--
-local version_number = string.sub( '$Revision: 20 $', 12, -2 )
+local version_number = string.sub( '$Revision: 33 $', 12, -2 )
local action_version = ' r' .. version_number .. '\n' .. [[
Copyright (c) 2013 Markus Kohm.
@@ -62,7 +62,9 @@ local processing_opts = {
['-s'] = 'sidebyside',
['--sidebyside'] = 'sidebyside',
['-o'] = 'overwrite',
- ['--overwrite'] = 'overwrite'
+ ['--overwrite'] = 'overwrite',
+ ['-d'] = 'debug',
+ ['--debug'] = 'debug',
}
-- detect action options and do action
@@ -86,12 +88,14 @@ end
-- process options and parameters
local booklet = false
local overwrite = false
+local debug = false
i = 1
while arg[i] do
action = processing_opts[arg[i]]
if action == 'booklet' then booklet = true
elseif action == 'sidebyside' then booklet = false
elseif action == 'overwrite' then overwrite = true
+ elseif action == 'debug' then debug = true
elseif action == nil then
-- build the temporary tex file
local tmpdir = os.tmpdir("pfarrei.XXXXXX" )
@@ -99,7 +103,7 @@ while arg[i] do
local basename = string.match( tmpfile,'(.*)%.[^.]*$') or tmpfile
tmpfile = tmpdir..'/'..basename..'.tex'
local file = assert( io.open( tmpfile, 'w' ) )
- if booklet then assert( file:write("\\def\\Booklet{}\n") ) end
+ if booklet then assert( file:write("\\PassOptionsToPackage{booklet}{pfarrei}\n") ) end
assert( file:write("\\def\\OriginalFile{",arg[i],"}\n") )
assert( file:write("\\input{a5toa4.tex}\n") )
assert( file:flush() )
@@ -129,12 +133,17 @@ while arg[i] do
end
assert( destfile:close() )
srcfile:close()
- tmpfile=tmpdir..'/'..basename
- os.remove( tmpfile..'.aux' )
- os.remove( tmpfile..'.tex' )
- os.remove( tmpfile..'.log' )
- os.remove( tmpfile..'.pdf' )
- os.remove( tmpdir )
+ if debug
+ then
+ print('DEBUG: Temporary files in: '..tmpdir);
+ else
+ tmpfile=tmpdir..'/'..basename
+ os.remove( tmpfile..'.aux' )
+ os.remove( tmpfile..'.tex' )
+ os.remove( tmpfile..'.log' )
+ os.remove( tmpfile..'.pdf' )
+ os.remove( tmpdir )
+ end
overwrite = false
end
i=i+1
diff --git a/Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf b/Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf
index 03c944fe195..fe363a60b6a 100644
--- a/Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf
+++ b/Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/pfarrei/a5toa4.tlu b/Master/texmf-dist/scripts/pfarrei/a5toa4.tlu
index 25c7de5986e..436941eda58 100755
--- a/Master/texmf-dist/scripts/pfarrei/a5toa4.tlu
+++ b/Master/texmf-dist/scripts/pfarrei/a5toa4.tlu
@@ -28,10 +28,10 @@
-- The list of files belonging to the work `pfarrei' is given in
-- the file `pfarrei.dtx'.
--
--- $Id: pfarrei.dtx 20 2013-03-10 14:19:06Z mjk $
+-- $Id: pfarrei.dtx 33 2013-04-08 07:22:56Z mjk $
kpse.set_program_name(arg[-1], 'a5toa4')
-require('pfarrei')
+require('pfarrei.pfarrei')
--
--
-- End of file `a5toa4.tlu'.
diff --git a/Master/texmf-dist/scripts/pfarrei/pfarrei.tlu b/Master/texmf-dist/scripts/pfarrei/pfarrei.tlu
index ee5f0ed8d67..f2756f6f907 100755
--- a/Master/texmf-dist/scripts/pfarrei/pfarrei.tlu
+++ b/Master/texmf-dist/scripts/pfarrei/pfarrei.tlu
@@ -28,7 +28,7 @@
-- The list of files belonging to the work `pfarrei' is given in
-- the file `pfarrei.dtx'.
--
-local version_number = string.sub( '$Revision: 20 $', 12, -2 )
+local version_number = string.sub( '$Revision: 33 $', 12, -2 )
local action_version = ' r' .. version_number .. '\n' .. [[
Copyright (c) 2013 Markus Kohm.
@@ -62,7 +62,9 @@ local processing_opts = {
['-s'] = 'sidebyside',
['--sidebyside'] = 'sidebyside',
['-o'] = 'overwrite',
- ['--overwrite'] = 'overwrite'
+ ['--overwrite'] = 'overwrite',
+ ['-d'] = 'debug',
+ ['--debug'] = 'debug',
}
-- detect action options and do action
@@ -86,12 +88,14 @@ end
-- process options and parameters
local booklet = false
local overwrite = false
+local debug = false
i = 1
while arg[i] do
action = processing_opts[arg[i]]
if action == 'booklet' then booklet = true
elseif action == 'sidebyside' then booklet = false
elseif action == 'overwrite' then overwrite = true
+ elseif action == 'debug' then debug = true
elseif action == nil then
-- build the temporary tex file
local tmpdir = os.tmpdir("pfarrei.XXXXXX" )
@@ -99,7 +103,7 @@ while arg[i] do
local basename = string.match( tmpfile,'(.*)%.[^.]*$') or tmpfile
tmpfile = tmpdir..'/'..basename..'.tex'
local file = assert( io.open( tmpfile, 'w' ) )
- if booklet then assert( file:write("\\def\\Booklet{}\n") ) end
+ if booklet then assert( file:write("\\PassOptionsToPackage{booklet}{pfarrei}\n") ) end
assert( file:write("\\def\\OriginalFile{",arg[i],"}\n") )
assert( file:write("\\input{a5toa4.tex}\n") )
assert( file:flush() )
@@ -129,12 +133,17 @@ while arg[i] do
end
assert( destfile:close() )
srcfile:close()
- tmpfile=tmpdir..'/'..basename
- os.remove( tmpfile..'.aux' )
- os.remove( tmpfile..'.tex' )
- os.remove( tmpfile..'.log' )
- os.remove( tmpfile..'.pdf' )
- os.remove( tmpdir )
+ if debug
+ then
+ print('DEBUG: Temporary files in: '..tmpdir);
+ else
+ tmpfile=tmpdir..'/'..basename
+ os.remove( tmpfile..'.aux' )
+ os.remove( tmpfile..'.tex' )
+ os.remove( tmpfile..'.log' )
+ os.remove( tmpfile..'.pdf' )
+ os.remove( tmpdir )
+ end
overwrite = false
end
i=i+1
diff --git a/Master/texmf-dist/source/latex/pfarrei/README b/Master/texmf-dist/source/latex/pfarrei/README
index bcc6833233e..1260da14c27 100644
--- a/Master/texmf-dist/source/latex/pfarrei/README
+++ b/Master/texmf-dist/source/latex/pfarrei/README
@@ -1,22 +1,22 @@
-$Id: README 19 2013-03-10 14:15:48Z mjk $
+$Id: README 31 2013-04-02 09:26:09Z mjk $
============================================================================
-pfarrei - A bundle of executables, LaTeX documents and packages for priests
+pfarrei - A bundle of executables, LaTeX documents and packages for pastors
----------------------------------------------------------------------------
Maintainer: Markus Kohm
E-Mail: komascript at gmx info
-Abstract: In "Die TeXnische Komödie" 1/2004 Christian Justen told
- about his practise using LaTeX at his work as priest. One
+Abstract: In "Die TeXnische Komödie" 1/2013 Christian Justen told
+ about his practise using LaTeX at his work as pastor. One
point was to arrange A5 papers onto A4 landscape paper
either side-by-side or as a booklet. He made two bash
scripts for this. `pfarrei' provides one texlua script for
the same.
Other points would be, e.g, special limitations of the
- page break. `pfarrei' should help there too, but currently
- this hasn't been implemented due to the early implementation
- state of the bundle.
-Requires: LaTeX2e, ifpdf, pdfpages
+ page break. `pfarrei' provides LaTeX commands and
+ environments to help for that too.
+Requires: LaTeX2e, ifpdf, pdfpages, TeXLua
License: LPPL 1.3c or later
State: Maintained
+Topics: compact output, typically multiple pages/sheet
----------------------------------------------------------------------------
Special installation note:
To extract all the files just call `tex pfarrei.dtx'. Note,
@@ -42,6 +42,6 @@ Special installation note:
Please note, that there's also a TDS distribution of
`pfarrei' that may be installed simply by extraction of
`pfarrei.tds.zip' at a TEXMF tree and additionally copying
- `a5toa4.tlu' to the binary directory of the TeX distribution
+ the binary to the binary directory of the TeX distribution
as described above.
============================================================================
diff --git a/Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx b/Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx
index a1deca6de9d..8c2e2c1375e 100644
--- a/Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx
+++ b/Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{36}
+% \CheckSum{464}
% \iffalse^^A meta-comment
% ======================================================================
% pfarrei.dtx
@@ -72,10 +72,10 @@
\begingroup
\def\revisiondate$#1: #2-#3-#4 #5${%
\gdef\pfarreirevisiondate{#2/#3/#4}%
- }\revisiondate$Date: 2013-03-10 15:19:06 +0100 (So, 10 Mär 2013) $
+ }\revisiondate$Date: 2013-04-08 09:22:56 +0200 (Mo, 08. Apr 2013) $
\def\revision$#1: #2 #3${%
\gdef\pfarreirevision{#2}%
- }\revision$Revision: 20 $
+ }\revision$Revision: 33 $
\endgroup
%<*dtx>
\def\LaTeXformat{LaTeX2e}
@@ -88,8 +88,8 @@
%</dtx>
%<package>\ProvidesPackage{pfarrei.sty}
%<a5toa4>\ProvidesFile{a5toa4.tex}
- [\pfarreirevisiondate\space r\pfarreirevision LaTeX2e package
- (for priests)]
+ [\pfarreirevisiondate\space r\pfarreirevision\space LaTeX2e package
+ (for pastors)]
%</dtx|tex>
%<*driver>
\documentclass{ltxdoc}
@@ -97,6 +97,13 @@
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
+\usepackage{hypdoc}
+
+\newcommand*{\StartBlock}[1][2]{%
+ \bigskip\nobreak\vskip#1\baselineskip\pagebreak[1]\vskip-#1\baselineskip
+ \nobreak\noindent
+}
+
\CodelineIndex
\RecordChanges
\GetFileInfo{pfarrei.dtx}
@@ -104,11 +111,14 @@
\title{Das Pfarrei-Paket\footnote{%
\protect\foreignlanguage{english}{Sorry if you don't understand German,
but currently there's only a German manual, because the idea of this is
- from a German article at ``Die \TeX nische Komödie''. But you may try to
- call ``\texttt{a5toa4 --help}'' to get some useful information.%
+ from a German article at ``Die \TeX nische Komödie''. But at least you
+ may try to call ``\texttt{a5toa4 --help}'' to get some useful
+ information.%
}%
}%
-} \date{\filedate} \author{Markus Kohm}
+}
+\date{\filedate\footnote{Version \fileversion}}
+\author{Markus Kohm\footnote{komascript at gmx info}}
\maketitle
\DocInput{pfarrei.dtx}
\PrintChanges
@@ -221,13 +231,18 @@ the file `pfarrei.dtx'.
% \begin{abstract}
% In "`Die \TeX nische Kömdie"', Ausgabe 1/2013 hat Christian Justen über
% seinen Einsatz von \LaTeX{} im Pfarrdienst berichtet. Einige der von ihm
-% verwendeten bash-Scripte und seine Schilderungen dazu haben mich dazu
+% verwendeten bash-Scripte und seine Schilderungen dazu haben mich
% inspiriert, eine Sammlung zu beginnen, die entsprechende Dinge leisten.
-% Allerdings habe ich mich dazu entschlossen, keine bash-Script zu
-% verwenden, sondern die Funktionalität derselben in lua-Scripte für die
-% Ausführung mit texlua zu realisieren, da texlua inzwischen Bestandteil
-% aller \TeX-Distributionen ist. Somit wurde das ganze besser vom
-% Betriebssystem unabhängig.
+% Allerdings habe ich mich entschlossen, keine bash-Script zu verwenden,
+% sondern die Funktionalität derselben in lua-Scripte für die Ausführung mit
+% \TeX Lua zu realisieren, da \TeX Lua inzwischen Bestandteil aller
+% \TeX-Distributionen ist. Somit wurde das ganze besser vom Betriebssystem
+% unabhängig.
+%
+% Ergänzt habe ich das ganze durch einige Befehle und Umgebungen, die für
+% die Erstellung von Lied- und Gebetsheftchen für den Gottesdienst
+% praktisch sein könnten. Jedenfalls habe ich selbst Nutzen daraus
+% gezogen. Weiteres ist geplant.
% \end{abstract}
%
% \tableofcontents
@@ -235,9 +250,9 @@ the file `pfarrei.dtx'.
% \section{Die Skripte-Seite}
% \label{sec:skripte}
%
-% In besagtem Artikel wurden zwei Skripte, "`a5toa4"' und "`a5toa4bogen"'
-% vorgestellt. Beide erzeugen aus PDF-Dateien, die im A5-Format vorliegen,
-% neue PDF-Dateien im A4-quer-Format.
+% In besagtem Artikel wurden zwei Skripte, "`\texttt{a5toa}4"' und
+% "`\texttt{a5toa4bogen}"' vorgestellt. Beide erzeugen aus PDF-Dateien, die im
+% A5-Format vorliegen, neue PDF-Dateien im A4-quer-Format.
%
% Das erste, "`a5toa4", arrangiert die A5-Seiten dabei so, dass jeweils zwei
% aufeinander folgende A5-Seiten nebeneinandern ausgegeben werden. Das ist vor
@@ -251,25 +266,28 @@ the file `pfarrei.dtx'.
% erhalten. Daher wird für diese Ausgabe im Weiteren die Bezeichnung
% \emph{booklet} verwendet.
%
-% Ich dacht mir, das könne man in ein einziges Programm gießen. Dieses heißt
-% bei mir dann schlicht "`a5toa4.tlu"' bzw. bei optimaler Installation kann es
-% zumindest unter Linux und OSX auch als "`a5toa4"' angesprochen werden.
+% \StartBlock%^^A
+% Ich\marginpar{\raggedleft\texttt{a5toa4.tlu}} dachte mir, das könne man in
+% ein einziges Programm gießen. Dieses heißt bei mir dann schlicht
+% "`a5toa4.tlu"'. Bei optimaler Installation kann es auch als "`a5toa4"'
+% angesprochen werden.
%
-% Ruft man das Programm mit der Option "`\texttt{-V}"' oder
-% "`\texttt{--version}"' auf, so gibt es lediglich eine Versionsinformation
-% aus.
+% Ruft\marginpar{\raggedleft\texttt{-{}-version}} man das Programm mit der
+% Option "`\texttt{-V}"' oder "`\texttt{-{}-version}"' auf, so gibt es lediglich
+% eine Versionsinformation aus.
%
-% Beim Aufruf mit Option "`\texttt{-h}"' oder "`\texttt{--help}"' wird
-% hingegen eine ausführliche Hilfe zu den Aufrufmöglichkeiten und den Optionen
-% ausgegeben.
+% Beim\marginpar{\raggedleft\texttt{-{}-help}} Aufruf mit Option
+% "`\texttt{-h}"' oder "`\texttt{-{}-help}"' wird hingegen eine ausführliche
+% Hilfe zu den Aufrufmöglichkeiten und den Optionen ausgegeben.
%
-% Man kann es aber auch mit einer Reihe von Durchführungsoptionen und Namen
-% von PDF-Dateien aufrufen. In diesem Fall wird entweder eine booklet- oder
-% eine side-by-side-Ausgabe erzeugt. Die Wahl, ob eine booklet- oder eine
+% Man\marginpar{\raggedleft\texttt{-{}-booklet}\\\texttt{-{}-sidebyside}} kann
+% es aber auch mit einer Reihe von Durchführungsoptionen und Namen von
+% PDF-Dateien aufrufen. In diesem Fall wird entweder eine booklet- oder eine
+% side-by-side-Ausgabe erzeugt. Die Wahl, ob eine booklet- oder eine
% side-by-side-Ausgabe erfolgen soll, erfolgt über die Optionen
-% "`\texttt{-b}"' oder "`\texttt{--booklet}"' für booklet bzw. "`\texttt{-s}"'
-% oder "`\texttt{--sidebyside}"' für side-by-side. Voreingstellt ist die
-% side-by-side-Ausgabe.
+% "`\texttt{-b}"' oder "`\texttt{-{}-booklet}"' für booklet
+% bzw. "`\texttt{-s}"' oder "`\texttt{-{}-sidebyside}"' für
+% side-by-side. Voreingstellt ist die side-by-side-Ausgabe.
%
% Für die Durchführung wurde auch ein Verbesserungsvorschlag von Christian
% Justen selbst aufgegriffen. Bei ihm haben die Skripte mit einer
@@ -286,11 +304,14 @@ the file `pfarrei.dtx'.
% wurde, entweder um "`\texttt{-booklet.pdf}"' oder
% "`\texttt{-sidebyside.pdf}"' ergänzt. Auch dies ist eine Abweichung von
% Christian Justens Original-Skripten, bei denen immer die Ursprungsdatei vom
-% Ergebnis überschrieben wurde. Dieses Verhalten ist aber ebenfalls zu
-% erreichen, indem man Option "`\texttt{-o}"' oder "`\texttt{--overwrite}"'
-% angibt. Nach erfolgreichem PDF\LaTeX-Lauf und dem Kopieren des Ergebnisses
-% ins aktuelle Arbeitsverzeichnis, wird das temporäre Verzeichnis samt Inhalt
-% wieder gelöscht.
+% Ergebnis überschrieben wurde.
+%
+% Ein\marginpar{\raggedleft\texttt{-{}-overwrite}} Überschreiben der
+% Ursprungsdatei wie bei Christian Justens Original-Skripten kann man aber
+% alternativ ebenfalls erreichen, indem man Option "`\texttt{-o}"' oder
+% "`\texttt{-{}-overwrite}"' angibt. Nach erfolgreichem PDF\LaTeX-Lauf und dem
+% Kopieren des Ergebnisses ins aktuelle Arbeitsverzeichnis, wird das temporäre
+% Verzeichnis samt Inhalt wieder gelöscht.
%
% Eine weitere Änderung bei mir betrifft die Tatsache, dass man für die
% Verarbeitung mehrerer Dateien nicht mehrere Aufrufe benötigt, man kann auch
@@ -311,13 +332,12 @@ the file `pfarrei.dtx'.
% die Ursprungsdatei überschrieben werden, so ist vor jeder dieser Dateien die
% Option erneut zu setzen.
%
-% Tatsächlich ist "`\texttt{a5toa4.tlu}"' aber nur ein Wrapper für
+% Tatsächlich\marginpar{\raggedleft\texttt{pfarrei.tlu}} ist
+% "`\texttt{a5toa4.tlu}"' aber nur ein Wrapper für
% "`\texttt{pfarrei.tlu}"'. Das wurde deshalb so gemacht, damit das
% eigentliche Programm leichter durch Versionen in \texttt{TEXMFLOCAL} oder
% \texttt{TEXMFHOME} ersetzt werden kann, ohne dass jedes Mal das
-% \emph{Binary} ersetzt werden muss. Unter Windows muss man allerdings erst
-% einmal dafür sorgen, dass das Skript als Binary aufgerufen
-% wird.\footnote{Hierfür wird noch ein Windows-Batch-Jongleur gesucht.}
+% \emph{Binary} ersetzt werden muss.
%
% Eine letzte kleine Änderung meiner Fassung betrifft die Anforderungen an das
% Seitenformat der Quelldateien. Im Original wurde mit der \texttt{pdfpages}
@@ -330,58 +350,161 @@ the file `pfarrei.dtx'.
% ins A5-Format gebracht, bevor sie auf der A4-quer-Seite platziert werden.
%
%
-% \subsection*{Zusammenfassung}
+% \subsection*{Zusammenfassung\marginpar{\raggedleft\texttt{a5toa4}}}
%
-% Um aus einem Quell-PDF "`\texttt{foo.pdf}"' ein Ziel-PDF
-% "`\texttt{foo-sidebyside.pdf}"' zu erzeugen, bei dem die Seiten des
-% Quell-PDF aufeinander folgend, nebeneinander auf einer A4-quer-Seite
-% platziert sind, verwendet man:
+% Um\marginpar{\raggedleft\texttt{-s}} aus einem Quell-PDF
+% "`\texttt{foo.pdf}"' ein Ziel-PDF "`\texttt{foo-sidebyside.pdf}"' zu
+% erzeugen, bei dem die Seiten des Quell-PDF aufeinander folgend,
+% nebeneinander auf einer A4-quer-Seite platziert sind, verwendet man:
% \begin{verbatim}
% a5toa4 -s foo.pdf
% \end{verbatim}\unskip\ignorespaces
% Soll die Ziel-PDF hingegen die Quell-PDF überschreiben, so gibt vor dem
% Dateinamen zusätzlich Option "`\texttt{-o}"' an.
%
-% Um aus einem Quell-PDF "`\texttt{foo.pdf}"' ein Ziel-PDF
-% "`\texttt{foo-sidebyside.pdf}"' zu erzeugen, bei dem die Seiten des
-% Quell-PDF so auf einer A4-quer-Seite platziert sind, dass durch Falten in
-% der Mitte ein Heft entsteht, verwendet man:
+% Um\marginpar{\raggedleft\texttt{-b}} aus einem Quell-PDF
+% "`\texttt{foo.pdf}"' ein Ziel-PDF "`\texttt{foo-booklet.pdf}"' zu erzeugen,
+% bei dem die Seiten des Quell-PDF so auf einer A4-quer-Seite platziert sind,
+% dass durch Falten in der Mitte ein Heft entsteht, verwendet man:
% \begin{verbatim}
% a5toa4 -b foo.pdf
% \end{verbatim}\unskip\ignorespaces
-% Soll die Ziel-PDF hingegen die Quell-PDF überschreiben, so gibt vor dem
-% Dateinamen zusätzlich Option "`\texttt{-o}"' an.
%
-% Informationen über die verwendete Version von "`\texttt{a5toa4}"' erhält man
-% mit:
+% Soll\marginpar{\raggedleft\texttt{-o}} die Ziel-PDF hingegen die Quell-PDF
+% überschreiben, so gibt vor dem Dateinamen zusätzlich Option "`\texttt{-o}"'
+% an.
+%
+% Informationen\marginpar{\raggedleft\texttt{-V}} über die verwendete Version
+% von "`\texttt{a5toa4}"' erhält man mit:
% \begin{verbatim}
-% a5toa4 --version
+% a5toa4 -V
% \end{verbatim}\unskip
%
-% Eine Hilfe zum Programm erhält man mit:
+% Eine\marginpar{\raggedleft\texttt{-h}} Hilfe zum Programm erhält man mit:
% \begin{verbatim}
-% a5toa4 --help
+% a5toa4 -h
% \end{verbatim}
%
%
% \section{Die \LaTeX-Seite}
% \label{sec:latex}
%
-% Die \LaTeX-Seite zu den Skripten aus Abschnitt~\ref{sec:skripte} besteht
-% zunächst einmal aus dem \LaTeX-Dokument "`\texttt{a5ona4.tex}"'. Dieses
+% Die \LaTeX-Seite zu den Skripten aus \autoref{sec:skripte} besteht
+% zunächst einmal aus dem \LaTeX-Dokument "`\texttt{a5toa4.tex}"'. Dieses
% lädt wiederum das \LaTeX-Paket "`\texttt{pfarrei.sty}"'. Die eigentliche
-% Funktionalität verbirgt sich darin. Derzeit gibt es fast nur eine Anweisung
-% \cs{AvToAiv}. Diese erledigt die Hauptarbeit, wobei die erwartet, dass die
-% Original-PDF-Datei, die verarbeitet werden soll, im Makro \cs{OriginalFile}
-% abgelegt ist. Das Skript sorgt dafür, dass dies geschieht. Darüber hinaus
-% fällt die Entscheidung, ob eine booklet- oder eine side-by-side-Ausgabe
-% erfolgen soll, schlicht über die Frage, ob das Makro \cs{Booklet} für
-% \LaTeX{} definiert ist oder nicht.
-%
-% Eine weitere Funktionalität stellt "`\texttt{pfarrei}.sty"' derzeit noch
-% nicht bereit. Hier sollen allerdings in naher Zukunft einige Dinge
-% implementiert werden, die Christian Justen in seinem Artikel ebenfalls
-% erwähnt hat.
+% Funktionalität verbirgt sich darin.
+%
+% \StartBlock%^^A
+% \DescribeMacro{\AvToAiv}\hspace*{-\marginparsep}\oarg{Original-Datei}\\%^^A
+% \DescribeMacro{\OriginalFile}%^^A
+% Die Anweisung \cs{AvToAiv} erledigt die Hauptarbeit für \texttt{a5toa4}. Die
+% Voreinstellung für das optionale Argument \meta{Original-Datei} ist
+% \cs{OriginalFile}. Das Skript "`\texttt{a5toa4.tlu}"' setzt dieses Makro
+% entsprechend.
+%
+% \StartBlock[1]%^^A
+% Man kann das \LaTeX-Paket \textsf{pfarrei} aber auch per
+% \begin{verbatim}
+% \usepackage{pfarrei}
+% \end{verbatim}\unskip
+% oder
+% \begin{verbatim}
+% \usepackage[booklet]{pfarrei}
+% \end{verbatim}\unskip
+% direkt in seinem Dokument laden. Dann stellt es Umgebungen und Befehle für
+% die Erstellung von Textblättern oder Textheften für Pfarrer, Lektoren und
+% andere Mitwirkende an einem Gottesdienst oder auch für die Gemeinde
+% bereit.
+%
+% \StartBlock%^^A
+% \DescribeMacro{\ifbooklet}
+% \hspace*{-\marginparsep}\marg{Dann-Code}\marg{Sonst-Code}\\*
+% Es kann Code davon abhängig ausgeführt werden, ob ein Booklet erzeugt wird
+% oder nicht. Im Falle eines Booklets wird der \meta{Dann-Code} ausgeführt,
+% anderenfalls der \meta{Sonst-Code}. Dies wird auch intern, beispielsweise
+% innerhalb von \cs{AvToAiv} oder innerhalb der
+% \texttt{booklet}\dots\texttt{page}-Umgebungen verwendet, um die
+% entsprechende Entscheidung durchzuführen.
+%
+% \StartBlock%^^A
+% \DescribeEnv{bookletfrontpage}%^^A
+% \DescribeMacro{\bookletfrontpagestyle}%^^A
+% Mit der Umgebung \texttt{bookletfontpage} kann eine Titelseite erstellt
+% werden, die nur bei der Erzeugung eines Booklets ausgegeben wird. Die
+% Umgebung sollte immer am Anfang des Dokuments stehen, anderenfalls
+% produziert sie eine Fehlermeldung. Dies geschieht, weil die Titelseite nun
+% einmal die erste Seite sein sollte. Sollte der Seitenstil \texttt{empty}
+% einmal nicht für die Titelseite gewünscht werden, kann man
+% \cs{bookletfrontpagestyle} auf den Namen des gewünschten Stils umdefinieren.
+%
+% \StartBlock[6]%^^A
+% \DescribeMacro{\motto}\hspace*{-\marginparsep}\marg{Motto}\\*%^^A
+% \DescribeMacro{\titlepicture}\hspace*{-\marginparsep}\marg{Bild}\\*%^^A
+% \DescribeMacro{\title}\hspace*{-\marginparsep}\marg{Titel}\\*%^^A
+% \DescribeMacro{\parish}\hspace*{-\marginparsep}\marg{Gemeinde}\\*%^^A
+% \DescribeMacro{\date}\hspace*{-\marginparsep}\marg{Datum}\\*%^^A
+% \DescribeMacro{\makebooklettitlepage}%^^A
+% Ähnlich zu \cs{maketitle} bei den Standard-Klassen kann man für Booklets
+% (aufbauend auf der oben erklärten Umgebung \texttt{bookletfrontpage} statt
+% auf \texttt{titlepage}) mit Hilfe von \cs{makebooklettitlepage} eine
+% Titelseite für ein Booklet erzeugen. Der Titel besteht aus einem Motto (oben
+% auf der Seite), gefolgt von einem Titelbild, gefolgt von dem Titel, Angaben
+% zur Gemeinde und zum Schluss das Datum. Es ist zu beachten, dass man
+% \cs{makebooklettitlepage} \emph{nicht} selbst in eine Umgebung packen
+% sollte, da diese Anweisung intern die Umgebung \texttt{bookletfrontpage}
+% verwendet. Darüber hinaus ist zu beachten, dass als Titelbild nicht einfach
+% ein Dateinamen angegeben wird, sondern die kompletten Anweisungen, um ein
+% Bild einzuladen oder zu erstellen. Auch muss ggf. ein Grafikpaket selbst
+% geladen werden.
+%
+% \StartBlock%^^A
+% \DescribeEnv{bookletbackpage}%^^A
+% \DescribeEnv{bookletemptypage}%^^A
+% \DescribeMacro{\bookletbackpagestyle}%^^A
+% \DescribeMacro{\bookletemptypagestyle}%^^A
+% Für ein Booklet kann mit der Umgebung \texttt{bookletbackpage} außerdem eine
+% Rückseite definiert werden. Die Definition kann an beliebiger Stelle
+% erfolgen. Die Ausgabe findet auf einer durch vier teilbaren Seite am Ende
+% des Dokuments statt. Dazu werden ggf. leere Seiten eingefügt. Den Inhalt der
+% \emph{leeren Seiten} kann ebenfalls mit einer Umgebung, nämlich
+% \texttt{bookletemptypage}, definiert werden. Wie bereits beim Seitenstil für
+% die Vorderseite, kann auch der Seitenstil für die \emph{leeren Seiten} und
+% die Rückseite umdefiniert werden.
+%
+% \StartBlock%^^A
+% \DescribeEnv{samedoublepage}%^^A
+% Wenn der Inhalt dieser Umgebung auf die aktuelle Seite passt, wird er
+% ausgegeben. Passt er nicht auf die aktuelle Seite und die aktuelle Seite ist
+% eine Seite mit einer ungeraden Seitenzahl, dann wird zunächst ein
+% Seitenumbruch durchgeführt. Anschließend wird der Inhalt ausgegeben. Dadurch
+% wird vermieden, dass beispielsweise ein Lektor oder Pfarrer unnötig
+% innerhalb eines Textes umblättern muss. Es ist zu beachten, dass innerhalb
+% dieser Umgebung Fußnoten, Marginalien und Gleitumgebungen nicht korrekt
+% funktionieren.
+%
+% \StartBlock%^^A
+% \DescribeMacro{\setupprayer}\hspace*{-\marginparsep}\marg{Optionen}\\*%^^A
+% \DescribeEnv{prayer}%^^A
+% \DescribeMacro{\noresponder}%^^A
+% Die Umgebung \texttt{prayer} ist für Gebete gedacht. Die Umgebung hat ein
+% optionales Argument. Dieses ist identisch mit \meta{Optionen} gilt dann aber
+% nur lokal für diese Gebetsumgebung. Als \meta{Optionen} kann eine
+% Komma-separierte Liste von \meta{Schlüssel}\texttt{=}\meta{Wert}-Optionen
+% angegeben werden. Folgende Schlüssel werden verstanden:
+% \begin{description}
+% \item[\texttt{leader=}\meta{Vorbeter}:] Setzt die Voreinstellung für das
+% optionale Argument von \cs{item} auf \meta{Vorbeter}.
+% \item[\texttt{responder=}\meta{Antwortende(r)}:] Setzt die Voreinstellung
+% für das optionale Argument des automatisch als Antwort eingefügten
+% \cs{item} auf \meta{Antwortende(r)}.
+% \item[\texttt{response=}\meta{Antwort}:] Setzt die automatisch eingefügte
+% Antwort auf \meta{Antwort}.
+% \end{description}
+% Eine automatische Antwort wird nur eingefügt, wenn sowohl \texttt{responder}
+% als auch \texttt{response} angegeben sind. Soll nur für einzelne \cs{item}
+% keine automatische Antwort erstellt werden, so ist irgendwo innerhalb des
+% entsprechenden \cs{item} (\emph{nicht} jedoch innerhalb des optionalen
+% Arguments von \cs{item}) oder danach ein \cs{noresponder} einzufügen.
%
% \StopEventually{}
%
@@ -409,7 +532,9 @@ the file `pfarrei.dtx'.
\AvToAiv
\end{document}
% \end{macrocode}
-% Das war es schon.
+% Das war es schon. Trotzdem hat die Verwendung einer solchen zusätzlichen
+% Datei den Vorteil, dass man bei Bedarf lokal auch ein ganz anderes
+% "`\texttt{a5toa4.tex}"' speichern kann.
%
% \iffalse^^A meta-comment
%</a5toa4>
@@ -421,7 +546,21 @@ the file `pfarrei.dtx'.
%<*package>
% \fi^^A meta-comment
%
-% Als erstes werden die Optionen ausgeführt (obwohl es noch keine gibt):
+% \begin{macro}{\ifbooklet}
+% \changes{r28}{2013/04/01}{neue Anweisung}
+% Wir haben eine Option, die bestimmt, ob wir ein Booklet erzeugen oder
+% nicht. Später wird das schlicht über das Makro \cs{ifbooklet}
+% festgestellt. Falls ein Booklet erzeugt werden soll wird das erste, sonst
+% das zweite Argument ausgeführt.
+% \begin{macrocode}
+\newcommand*{\ifbooklet}{}
+\let\ifbooklet\@secondoftwo
+\DeclareOption{booklet}{\let\ifbooklet\@firstoftwo}
+\DeclareOption{nobooklet}{\let\ifbooklet\@secondoftwo}
+% \end{macrocode}
+% \end{macro}
+%
+% Dann werden die Optionen ausgeführt:
% \begin{macrocode}
\ProcessOptions*
% \end{macrocode}
@@ -430,11 +569,13 @@ the file `pfarrei.dtx'.
\RequirePackage{ifpdf}
\RequirePackage{pdfpages}
% \end{macrocode}
+%
+%
% \begin{macro}{\AvToAiv}
% Der Name des Makros kommt von \texttt{a5toa4}. Es muss sichergestellt sein,
% dass dies im PDF-Modus verwendet wird.
% \begin{macrocode}
-\newcommand*{\AvToAiv}{%
+\newcommand*{\AvToAiv}[1][\OriginalFile]{%
\ifpdf\else
\PackageError{pfarrei}{PDF mode needed}{%
a5toa4 needs the direct PDF mode.\MessageBreak
@@ -443,15 +584,434 @@ the file `pfarrei.dtx'.
}%
\input{x.tex}
\fi
- \@ifundefined{Booklet}{%
- \includepdf[pages=-,nup=2x1]{\OriginalFile}%
+ \ifbooklet{%
+ \includepdf[pages=-,booklet]{#1}%
}{%
- \includepdf[pages=-,booklet]{\OriginalFile}%
+ \includepdf[pages=-,nup=2x1]{#1}%
}%
}
% \end{macrocode}
% \end{macro}^^A \AvToAiv
%
+% \begin{environment}{bookletpage}
+% \changes{r28}{2013/04/01}{neue virtuelle Umgebung}
+% Da mehrfach eine Umgebung für einzelne Seiten benötigt wird, definieren wir
+% dafür eine eigene Umgebung, die dann entsprechend individualisiert wird. Es
+% ist zu beachten, dass diese Umgebung nicht als Umgebung aufgerufen werden
+% sollte, sondern direkt \cs{bookletpage} und \cs{endbookletpage}.
+% \begin{macrocode}
+\newenvironment*{bookletpage}{%
+ \edef\reserved@a{bookletpage}%
+ \ifx\@currenvir\reserved@a
+ \PackageError{pfarrei}{`bookletpage' used as ordinary environment}{%
+ Please note, that `bookletpage' is a virtual environment
+ only.\MessageBreak
+ You should not use it directly as an environment, but use
+ `\string\bookletpage' at the\MessageBreak
+ begin code and `\string\endbookletpage' at the end code of a wrapper
+ environment.\MessageBreak
+ If you'll continue, expect several additional errors%
+ }%
+ \let\bookletpagebox\@tempboxa
+ \let\bookletpagestyle\@empty
+ \else
+ \expandafter\let\expandafter\bookletpagebox
+ \csname \@currenvir box\endcsname
+ \expandafter\let\expandafter\bookletpagestyle
+ \csname \@currenvir style\endcsname
+ \fi
+ \edef\reserved@a{%
+ \noexpand\begin{lrbox}{\bookletpagebox}
+ \noexpand\begin{minipage}[t][\textheight][t]{\textwidth}%
+ \begingroup
+ \def\noexpand\@currenvir{\@currenvir}%
+ \def\noexpand\@currenvline{\@currenvline}%
+ \noexpand\parskip=\the\parskip
+ \noexpand\parindent=\the\parindent
+ \noexpand\parfillskip=\the\parfillskip
+ }\reserved@a
+}{%
+% \end{macrocode}
+% Das Ende wird in zwei Portionen aufgeteilt:
+% \begin{macrocode}
+ \endbookletpagebox
+ \printbookletpagebox
+}
+% \end{macrocode}
+% \begin{macro}{\endbookletpagebox}
+% \changes{r28}{2013/04/01}{neue (eigentlich interne) Anweisung}
+% das Beenden der Erzeugung der Box für die Seite
+% \begin{macrocode}
+\def\endbookletpagebox{%
+ \par
+ \endgroup
+ \end{minipage}%
+ \end{lrbox}%
+ \global\setbox\bookletpagebox\box\bookletpagebox
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\printbookletpagebox}
+% \changes{r28}{2013/04/01}{neue (eigentlich interne) Anweisung}
+% und die Ausgabe der Box, falls ein Booklet erzeugt wird.
+% \begin{macrocode}
+\newcommand*\printbookletpagebox[1][\@currenvir]{%
+ \ifbooklet{%
+ \@ifundefined{bookletpagestyle}{}{%
+ \ifx\bookletpagestyle\@empty\else\thispagestyle{\bookletpagestyle}\fi%
+ }%
+ \clearpage\noindent\usebox\bookletpagebox\clearpage
+ }{%
+ \PackageInfo{pfarrei}{`#1' not printed}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{environment}
+%
+%
+% \begin{environment}{bookletfrontpage}
+% \changes{r26}{2013/03/31}{neue Umgebung}
+% Umgebung, um eine Booklet-Titelseite zu erzeugen.
+% \begin{macro}{\bookletfrontpagebox}
+% \changes{r26}{2013/03/31}{neue Box}
+% \begin{macro}{\bookletfrontpagestyle}
+% \changes{r26}{2013/03/31}{neues Makro}
+% Es ist nur eine Seite erlaubt. Also packen wir das ganze in eine Box. Dafür
+% brauchen wir eine solche:
+% \begin{macrocode}
+\newsavebox\bookletfrontpagebox
+\newcommand*{\bookletfrontpagestyle}{empty}
+\newenvironment*{bookletfrontpage}{%
+ \bookletpage
+}{%
+ \endbookletpagebox
+ \clearpage
+ \ifbooklet{%
+ \ifnum\c@page>\@ne
+ \PackageError{pfarrei}{Booklet front page not first page}{%
+ The booklet font page should be the first page, but it seems, that it
+ is\MessageBreak
+ page no. \the\c@page. \space Maybe you should put it immediately after
+ `\string\begin{document}.%
+ Nevertheless, if you'll continue it will be printed here%
+ }%
+ \fi
+ \printbookletpagebox
+ }{%
+ \PackageInfo{pfarrei}{Booklet front page ignored}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{environment}
+%
+% \begin{environment}{bookletbackpage}
+% \changes{r26}{2013/03/31}{neue Umgebung}%^^A
+% \begin{macro}{\bookletbackpagebox}
+% \changes{r26}{2013/03/31}{neue Box}%^^A
+% \begin{macro}{\bookletbackpagestyle}
+% \changes{r26}{2013/03/31}{neues Makro}
+% Im Prinzip ist die Booklet-Rückseite fast wie bei der Titelseite,
+% allerdings fügen wir hier so viele Leerseiten ein, dass wir wirklich auf
+% einer durch 4 teilbaren Seite landen.
+% \begin{environment}{bookletemptypage}
+% \changes{r26}{2013/03/31}{neue Box}%^^A
+% \begin{macro}{\bookletemptypagebox}
+% \changes{r26}{2013/03/31}{neue Umgebung}%^^A
+% \begin{macro}{\bookletemptypagestyle}
+% \changes{r26}{2013/03/31}{neues Makro}%^^A
+% Die Umgebung für die konfigurierbare \emph{Leerseite}, besitzt keine eigene
+% Ausgabe, sondern sammelt tatsächlich nur den Inhalt. Die Ausgabe erfolgt
+% dann bei der Ausgabe der Booklet-Rückseite.
+% \begin{macrocode}
+\newsavebox\bookletemptypagebox
+\newcommand*{\bookletemptypagestyle}{empty}
+\newenvironment*{bookletemptypage}{%
+ \bookletpage
+}{%
+ \endbookletpagebox
+}
+\newsavebox\bookletbackpagebox
+\newcommand*{\bookletbackpagestyle}{empty}
+\newenvironment*{bookletbackpage}{%
+ \bookletpage
+}{%
+ \endbookletpagebox
+ \if@filesw\immediate\write\@mainaux{\string\printbookletbackpage}\fi
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{environment}
+% \begin{macro}{\printbookletbackpage}
+% \changes{r26}{2013/03/31}{neue Anweisung}%^^A
+% \begin{macro}{\@printbookletbackpage}
+% \changes{r26}{2013/03/31}{neue interne Anweisung}%^^A
+% Die eigentliche Ausgabe der letzten Seite geschieht über einen Eintrag in
+% der \texttt{aux}-Datei. Das ist zwar nicht ganz sauber (und
+% \textsf{scrlfile} meckert deshalb ggf.), aber die Standard-Klasse
+% \textsf{letter} macht das ähnlich für die Etiketten. Also hoffen wir
+% einfach, dass es gut geht.
+% \begin{macrocode}
+\newcommand*{\printbookletbackpage}{}
+\newcommand*{\@printbookletbackpage}{%
+ \ifbooklet{%
+ \clearpage
+ \let\bookletpagestyle\bookletemptypagestyle
+ \ifvoid\bookletemptypagebox
+ \let\bookletpagebox\strutbox
+ \else
+ \let\bookletpagebox\bookletemptypagebox
+ \fi
+ \@tempcnta=\c@page
+ \divide\@tempcnta by 4
+ \multiply\@tempcnta by 4
+ \ifnum \@tempcnta=\c@page\else
+ \advance\@tempcnta by 4
+ \@whilenum \c@page<\@tempcnta\do{%
+ \printbookletpagebox
+ }%
+ \fi
+ \let\bookletpagestyle\bookletbackpagestyle
+ \let\bookletpagebox\bookletbackpagebox
+ \printbookletpagebox
+ }{%
+ \PackageInfo{pfarrei}{Booklet back page ignored}%
+ }%
+}
+% \end{macrocode}
+% Das Drucken darf während des Lesens der \texttt{aux}-Datei in
+% \cs{begin{document}} nicht erfolgen. Daher definieren wir es erst danach
+% entsprechend um. Dadurch ist es während des Lesens der \texttt{aux}-Datei in
+% \cs{end{document}} funktionsfähig.
+% \begin{macrocode}
+\AtBeginDocument{\let\printbookletbackpage\@printbookletbackpage}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{environment}
+%
+%
+% \begin{macro}{\makebooklettitlepage}
+% \changes{r26}{2013/03/31}{neue Anweisung}%^^A
+% \begin{macro}{\motto}
+% \changes{r26}{2013/03/31}{neue Anweisung}%^^A
+% \begin{macro}{\@motto}
+% \changes{r26}{2013/03/31}{neues internes Makro}%^^A
+% \begin{macro}{\titlepicture}
+% \changes{r26}{2013/03/31}{neue Anweisung}%^^A
+% \begin{macro}{\@titlepicture}
+% \changes{r26}{2013/03/31}{neues internes Makro}%^^A
+% \begin{macro}{\title}
+% \changes{r26}{2013/03/31}{neue Anweisung}%^^A
+% \begin{macro}{\@title}
+% \changes{r26}{2013/03/31}{neues internes Makro}%^^A
+% \begin{macro}{\parish}
+% \changes{r26}{2013/03/31}{neue Anweisung}%^^A
+% \begin{macro}{\@parish}
+% \changes{r26}{2013/03/31}{neues internes Makro}%^^A
+% \begin{macro}{\date}
+% \changes{r26}{2013/03/31}{neue Anweisung}%^^A
+% \begin{macro}{\@date}
+% \changes{r26}{2013/03/31}{neues internes Makro}%^^A
+% Der Standard-Titel für Booklets besteht aus einem Motto, einem Bild, einem
+% Titel, der Gemeinde und dem Datum. Wir gehen davon aus, dass die
+% Klasse bereits \cs{date}, \cs{@date}, \cs{title} und \cs{@title} zur
+% Verfügung stellt. Allerdings ergibt die Voreinstellung \cs{today} für das
+% Datum hier wenig Sinn, weshalb die Voreinstellung in einen leeren Wert
+% geändert wird. Den Rest machen wir komplett selbst:
+% \begin{macrocode}
+\newcommand*{\motto}[1]{\gdef\@motto{#1}}
+\newcommand*{\@motto}{}
+\newcommand*{\titlepicture}[1]{\gdef\@titlepicture{#1}}
+\newcommand*{\@titlepicture}{}
+\providecommand*{\title}[1]{\gdef\@title{#1}}
+\providecommand*{\@title}{}
+\newcommand*{\parish}[1]{\gdef\@parish{#1}}
+\newcommand*{\@parish}{}
+\providecommand*{\date}[1]{\gdef\@date{#1}}
+\def\@date{}
+\newcommand*{\makebooklettitlepage}{%
+ \begin{bookletfrontpage}
+ \parskip.5\baselineskip
+ \parindent\z@
+ \parfillskip \z@ \@plus 1fil
+ \centering
+ \ifx\@motto\@empty\else{\Huge\@motto\par}\fi
+ \vfill
+ \ifx\@titlepicture\@empty\else\@titlepicture\par\fi
+ \vfill
+ \parskip\z@
+ \Huge
+ \@title\par
+ \@parish\par
+ \@date\par
+ \ifx\@title\@empty\ifx\@parish\@empty\ifx\@date\@empty\null\fi\fi\fi
+ \end{bookletfrontpage}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{environment}{samedoublepage}
+% \changes{r28}{2013/03/31}{neue Umgebung}%^^A
+% \begin{macro}{\samedoublepage@save@hbox}
+% \changes{r28}{2013/03/31}{neues internes Makro}%^^A
+% Es wird etwas umständlich eine vertikale Box gespeichert,
+% \begin{macrocode}
+\let\samedoublepage@save@hbox\hbox
+\newenvironment*{samedoublepage}{%
+ \par
+ \let\hbox\vbox
+ \begin{lrbox}{\@tempboxa}%
+ \let\hbox\samedoublepage@save@hbox
+}{%
+ \end{lrbox}%
+ \let\hbox\samedoublepage@save@hbox
+% \end{macrocode}
+% um diese dann in Stücke zu zerschneiden, die auf eine Seite passen,
+% \begin{macrocode}
+ \@tempdima\ifdim\pagegoal=\maxdimen\textheight
+ \else\dimexpr\pagegoal-\pagetotal\fi
+ \ifdim \@tempdima
+ <\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax
+ \ifodd\c@page
+% \end{macrocode}
+% Wobei aber nicht auf ungeraden Seiten mit nur einem Stück des Kuchens
+% begonnen wird.
+% \begin{macrocode}
+ \newpage
+ \@tempdima\textheight
+ \else \typeout{even page}%
+ \fi
+ \@whiledim \@tempdima
+ <\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax\do{%
+ \splitmaxdepth\dp\strutbox
+ \splittopskip\topskip
+ \setbox\z@\vsplit\@tempboxa to \@tempdima
+ \showthe\dimexpr\ht\z@+\dp\z@\relax
+ \showthe\@tempdima
+ \usebox\z@
+ \newpage
+ \@tempdima\textheight
+ }%
+ \fi
+% \end{macrocode}
+% Und am Ende nicht vergessen, den Rest der Box auch noch auszugeben.
+% \begin{macrocode}
+ \ifvoid\@tempboxa\else\usebox\@tempboxa\fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{environment}
+%
+% \begin{environment}{prayer}
+% \changes{r28}{2013/04/01}{neue Umgebung}
+% \begin{macro}{\setupprayer}
+% \changes{r28}{2013/04/01}{neue Anweisung}
+% Die Gebetsumgebung wird mit Hilfe von \textsf{keyval} definiert. Sie kann
+% außer mit dem optionalen Argument auch jederzeit mit \cs{setupprayer}
+% konfiguriert werden.
+% \begin{macro}{\prayer@responder}
+% \changes{r28}{2013/04/01}{neues internes Makro}
+% \begin{macro}{\prayer@response}
+% \changes{r28}{2013/04/01}{neues internes Makro}
+% \begin{macro}{\prayer@leader}
+% \changes{r28}{2013/04/01}{neues internes Makro}
+% Dafür werden mehrere interne Makros benötigt, um die gewünschten Werte
+% aufzunehmen.
+% \begin{macrocode}
+\RequirePackage{keyval}
+\define@key{pfarrei.prayer}{response}{\def\prayer@response{#1}}
+\define@key{pfarrei.prayer}{responder}{\def\prayer@responder{#1:}}
+\define@key{pfarrei.prayer}{leader}{\def\prayer@leader{#1:}}
+\newcommand*{\prayer@responder}{}
+\newcommand*{\prayer@response}{}
+\newcommand*{\prayer@leader}{}
+\newcommand*{\setupprayer}{%
+ \setkeys{pfarrei.prayer}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\ifprayer@firstitem}
+% \changes{r28}{2013/04/01}{neuer interner Schalter}
+% \begin{macro}{prayer@response@item}
+% \changes{r28}{2013/04/01}{neue interne Anweisung}
+% Da die Antwort beim ersten \cs{item} noch nicht ausgegeben werden darf,
+% sondern nur nach den nachfolgenden, muss die Information, ob es das erste
+% \cs{item} ist, über einen Schalter gespeichert werden.
+% \begin{macrocode}
+\newif\ifprayer@firstitem
+\newcommand*{\prayer@response@item}{%
+ \ifprayer@firstitem\else
+ \ifx\prayer@responder\@empty\else
+ \ifx\prayer@response\@empty\else
+ \prayer@save@item[\prayer@responder] \prayer@response
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\prayer@item}
+% \changes{r28}{2013/04/01}{neue interne Anweisung}
+% \begin{macro}{\prayer@save@item}
+% \changes{r28}{2013/04/01}{neue interne Anweisung}
+% Die \cs{item}-Anweisung von \texttt{prayer} ist etwas anders als von anderen
+% Listen-Umgebungen. Sie baut jedoch auf der Originaldefinition auf. Daher
+% muss die Originaldefinition gespeichert und entsprechend erweitert verwendet
+% werden.
+% \begin{macrocode}
+\newcommand*{\prayer@item}[1][\prayer@leader]{%
+ \prayer@response@item
+ \prayer@firstitemfalse
+ \prayer@save@item[{#1}]%
+}
+% \end{macrocode}
+% \begin{macro}{\noresponder}
+% \changes{r28}{2013/04/01}{neue Anweisung}
+% Das Abschalten der nächsten automatischen Antwort geschieht einfach, indem
+% so getan wird, als wäre das nächste \cs{item} wieder das erste.
+% \begin{macrocode}
+\newenvironment*{prayer}[1][]{%
+ \begin{description}
+ \begingroup
+ \def\@currenvir{prayer}%
+ \setupprayer{#1}%
+ \let\prayer@save@item\item
+ \let\item\prayer@item
+ \prayer@firstitemtrue
+ \let\noresponder\prayer@firstitemtrue
+}{%
+ \prayer@response@item
+ \endgroup
+ \end{description}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{environment}
+%
+%
% \iffalse^^A meta-comment
%</package>
% \fi^^A meta-comment
@@ -473,10 +1033,10 @@ the file `pfarrei.dtx'.
%<*a5toa4>
% \fi^^A meta-comment
% \begin{macrocode}
--- $Id: pfarrei.dtx 20 2013-03-10 14:19:06Z mjk $
+-- $Id: pfarrei.dtx 33 2013-04-08 07:22:56Z mjk $
kpse.set_program_name(arg[-1], 'a5toa4')
-require('pfarrei')
+require('pfarrei.pfarrei')
% \end{macrocode}
% \iffalse^^A meta-comment
%</a5toa4>
@@ -488,7 +1048,7 @@ require('pfarrei')
%<*pfarrei>
% \fi^^A meta-comment
% \begin{macrocode}
-local version_number = string.sub( '$Revision: 20 $', 12, -2 )
+local version_number = string.sub( '$Revision: 33 $', 12, -2 )
local action_version = ' r' .. version_number .. '\n' .. [[
Copyright (c) 2013 Markus Kohm.
@@ -522,7 +1082,9 @@ local processing_opts = {
['-s'] = 'sidebyside',
['--sidebyside'] = 'sidebyside',
['-o'] = 'overwrite',
- ['--overwrite'] = 'overwrite'
+ ['--overwrite'] = 'overwrite',
+ ['-d'] = 'debug',
+ ['--debug'] = 'debug',
}
-- detect action options and do action
@@ -546,12 +1108,14 @@ end
-- process options and parameters
local booklet = false
local overwrite = false
+local debug = false
i = 1
while arg[i] do
action = processing_opts[arg[i]]
if action == 'booklet' then booklet = true
elseif action == 'sidebyside' then booklet = false
elseif action == 'overwrite' then overwrite = true
+ elseif action == 'debug' then debug = true
elseif action == nil then
-- build the temporary tex file
local tmpdir = os.tmpdir("pfarrei.XXXXXX" )
@@ -559,7 +1123,7 @@ while arg[i] do
local basename = string.match( tmpfile,'(.*)%.[^.]*$') or tmpfile
tmpfile = tmpdir..'/'..basename..'.tex'
local file = assert( io.open( tmpfile, 'w' ) )
- if booklet then assert( file:write("\\def\\Booklet{}\n") ) end
+ if booklet then assert( file:write("\\PassOptionsToPackage{booklet}{pfarrei}\n") ) end
assert( file:write("\\def\\OriginalFile{",arg[i],"}\n") )
assert( file:write("\\input{a5toa4.tex}\n") )
assert( file:flush() )
@@ -589,12 +1153,17 @@ while arg[i] do
end
assert( destfile:close() )
srcfile:close()
- tmpfile=tmpdir..'/'..basename
- os.remove( tmpfile..'.aux' )
- os.remove( tmpfile..'.tex' )
- os.remove( tmpfile..'.log' )
- os.remove( tmpfile..'.pdf' )
- os.remove( tmpdir )
+ if debug
+ then
+ print('DEBUG: Temporary files in: '..tmpdir);
+ else
+ tmpfile=tmpdir..'/'..basename
+ os.remove( tmpfile..'.aux' )
+ os.remove( tmpfile..'.tex' )
+ os.remove( tmpfile..'.log' )
+ os.remove( tmpfile..'.pdf' )
+ os.remove( tmpdir )
+ end
overwrite = false
end
i=i+1
@@ -616,6 +1185,7 @@ end
%
%%% Local Variables:
%%% mode: doctex
+%%% TeX-PDF-mode: t
%%% mode: flyspell
%%% ispell-local-dictionary: "de_DE"
%%% TeX-master: t
diff --git a/Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex b/Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex
index 6fda799e025..feff6e1eb47 100644
--- a/Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex
+++ b/Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex
@@ -29,14 +29,14 @@
\begingroup
\def\revisiondate$#1: #2-#3-#4 #5${%
\gdef\pfarreirevisiondate{#2/#3/#4}%
- }\revisiondate$Date: 2013-03-10 15:19:06 +0100 (So, 10 M^^c3^^a4r 2013) $
+ }\revisiondate$Date: 2013-04-08 09:22:56 +0200 (Mo, 08. Apr 2013) $
\def\revision$#1: #2 #3${%
\gdef\pfarreirevision{#2}%
- }\revision$Revision: 20 $
+ }\revision$Revision: 33 $
\endgroup
\ProvidesFile{a5toa4.tex}
- [\pfarreirevisiondate\space r\pfarreirevision LaTeX2e package
- (for priests)]
+ [\pfarreirevisiondate\space r\pfarreirevision\space LaTeX2e package
+ (for pastors)]
\documentclass[a4paper,landscape]{article}
\usepackage{pfarrei}
\begin{document}
diff --git a/Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty b/Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty
index 34b5cba0a26..1bd50ed21d6 100644
--- a/Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty
+++ b/Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty
@@ -29,18 +29,22 @@
\begingroup
\def\revisiondate$#1: #2-#3-#4 #5${%
\gdef\pfarreirevisiondate{#2/#3/#4}%
- }\revisiondate$Date: 2013-03-10 15:19:06 +0100 (So, 10 M^^c3^^a4r 2013) $
+ }\revisiondate$Date: 2013-04-08 09:22:56 +0200 (Mo, 08. Apr 2013) $
\def\revision$#1: #2 #3${%
\gdef\pfarreirevision{#2}%
- }\revision$Revision: 20 $
+ }\revision$Revision: 33 $
\endgroup
\ProvidesPackage{pfarrei.sty}
- [\pfarreirevisiondate\space r\pfarreirevision LaTeX2e package
- (for priests)]
+ [\pfarreirevisiondate\space r\pfarreirevision\space LaTeX2e package
+ (for pastors)]
+\newcommand*{\ifbooklet}{}
+\let\ifbooklet\@secondoftwo
+\DeclareOption{booklet}{\let\ifbooklet\@firstoftwo}
+\DeclareOption{nobooklet}{\let\ifbooklet\@secondoftwo}
\ProcessOptions*
\RequirePackage{ifpdf}
\RequirePackage{pdfpages}
-\newcommand*{\AvToAiv}{%
+\newcommand*{\AvToAiv}[1][\OriginalFile]{%
\ifpdf\else
\PackageError{pfarrei}{PDF mode needed}{%
a5toa4 needs the direct PDF mode.\MessageBreak
@@ -49,12 +53,226 @@
}%
\input{x.tex}
\fi
- \@ifundefined{Booklet}{%
- \includepdf[pages=-,nup=2x1]{\OriginalFile}%
+ \ifbooklet{%
+ \includepdf[pages=-,booklet]{#1}%
}{%
- \includepdf[pages=-,booklet]{\OriginalFile}%
+ \includepdf[pages=-,nup=2x1]{#1}%
}%
}
+\newenvironment*{bookletpage}{%
+ \edef\reserved@a{bookletpage}%
+ \ifx\@currenvir\reserved@a
+ \PackageError{pfarrei}{`bookletpage' used as ordinary environment}{%
+ Please note, that `bookletpage' is a virtual environment
+ only.\MessageBreak
+ You should not use it directly as an environment, but use
+ `\string\bookletpage' at the\MessageBreak
+ begin code and `\string\endbookletpage' at the end code of a wrapper
+ environment.\MessageBreak
+ If you'll continue, expect several additional errors%
+ }%
+ \let\bookletpagebox\@tempboxa
+ \let\bookletpagestyle\@empty
+ \else
+ \expandafter\let\expandafter\bookletpagebox
+ \csname \@currenvir box\endcsname
+ \expandafter\let\expandafter\bookletpagestyle
+ \csname \@currenvir style\endcsname
+ \fi
+ \edef\reserved@a{%
+ \noexpand\begin{lrbox}{\bookletpagebox}
+ \noexpand\begin{minipage}[t][\textheight][t]{\textwidth}%
+ \begingroup
+ \def\noexpand\@currenvir{\@currenvir}%
+ \def\noexpand\@currenvline{\@currenvline}%
+ \noexpand\parskip=\the\parskip
+ \noexpand\parindent=\the\parindent
+ \noexpand\parfillskip=\the\parfillskip
+ }\reserved@a
+}{%
+ \endbookletpagebox
+ \printbookletpagebox
+}
+\def\endbookletpagebox{%
+ \par
+ \endgroup
+ \end{minipage}%
+ \end{lrbox}%
+ \global\setbox\bookletpagebox\box\bookletpagebox
+}
+\newcommand*\printbookletpagebox[1][\@currenvir]{%
+ \ifbooklet{%
+ \@ifundefined{bookletpagestyle}{}{%
+ \ifx\bookletpagestyle\@empty\else\thispagestyle{\bookletpagestyle}\fi%
+ }%
+ \clearpage\noindent\usebox\bookletpagebox\clearpage
+ }{%
+ \PackageInfo{pfarrei}{`#1' not printed}%
+ }%
+}
+\newsavebox\bookletfrontpagebox
+\newcommand*{\bookletfrontpagestyle}{empty}
+\newenvironment*{bookletfrontpage}{%
+ \bookletpage
+}{%
+ \endbookletpagebox
+ \clearpage
+ \ifbooklet{%
+ \ifnum\c@page>\@ne
+ \PackageError{pfarrei}{Booklet front page not first page}{%
+ The booklet font page should be the first page, but it seems, that it
+ is\MessageBreak
+ page no. \the\c@page. \space Maybe you should put it immediately after
+ `\string\begin{document}.%
+ Nevertheless, if you'll continue it will be printed here%
+ }%
+ \fi
+ \printbookletpagebox
+ }{%
+ \PackageInfo{pfarrei}{Booklet front page ignored}%
+ }%
+}
+\newsavebox\bookletemptypagebox
+\newcommand*{\bookletemptypagestyle}{empty}
+\newenvironment*{bookletemptypage}{%
+ \bookletpage
+}{%
+ \endbookletpagebox
+}
+\newsavebox\bookletbackpagebox
+\newcommand*{\bookletbackpagestyle}{empty}
+\newenvironment*{bookletbackpage}{%
+ \bookletpage
+}{%
+ \endbookletpagebox
+ \if@filesw\immediate\write\@mainaux{\string\printbookletbackpage}\fi
+}%
+\newcommand*{\printbookletbackpage}{}
+\newcommand*{\@printbookletbackpage}{%
+ \ifbooklet{%
+ \clearpage
+ \let\bookletpagestyle\bookletemptypagestyle
+ \ifvoid\bookletemptypagebox
+ \let\bookletpagebox\strutbox
+ \else
+ \let\bookletpagebox\bookletemptypagebox
+ \fi
+ \@tempcnta=\c@page
+ \divide\@tempcnta by 4
+ \multiply\@tempcnta by 4
+ \ifnum \@tempcnta=\c@page\else
+ \advance\@tempcnta by 4
+ \@whilenum \c@page<\@tempcnta\do{%
+ \printbookletpagebox
+ }%
+ \fi
+ \let\bookletpagestyle\bookletbackpagestyle
+ \let\bookletpagebox\bookletbackpagebox
+ \printbookletpagebox
+ }{%
+ \PackageInfo{pfarrei}{Booklet back page ignored}%
+ }%
+}
+\AtBeginDocument{\let\printbookletbackpage\@printbookletbackpage}
+\newcommand*{\motto}[1]{\gdef\@motto{#1}}
+\newcommand*{\@motto}{}
+\newcommand*{\titlepicture}[1]{\gdef\@titlepicture{#1}}
+\newcommand*{\@titlepicture}{}
+\providecommand*{\title}[1]{\gdef\@title{#1}}
+\providecommand*{\@title}{}
+\newcommand*{\parish}[1]{\gdef\@parish{#1}}
+\newcommand*{\@parish}{}
+\providecommand*{\date}[1]{\gdef\@date{#1}}
+\def\@date{}
+\newcommand*{\makebooklettitlepage}{%
+ \begin{bookletfrontpage}
+ \parskip.5\baselineskip
+ \parindent\z@
+ \parfillskip \z@ \@plus 1fil
+ \centering
+ \ifx\@motto\@empty\else{\Huge\@motto\par}\fi
+ \vfill
+ \ifx\@titlepicture\@empty\else\@titlepicture\par\fi
+ \vfill
+ \parskip\z@
+ \Huge
+ \@title\par
+ \@parish\par
+ \@date\par
+ \ifx\@title\@empty\ifx\@parish\@empty\ifx\@date\@empty\null\fi\fi\fi
+ \end{bookletfrontpage}
+}
+\let\samedoublepage@save@hbox\hbox
+\newenvironment*{samedoublepage}{%
+ \par
+ \let\hbox\vbox
+ \begin{lrbox}{\@tempboxa}%
+ \let\hbox\samedoublepage@save@hbox
+}{%
+ \end{lrbox}%
+ \let\hbox\samedoublepage@save@hbox
+ \@tempdima\ifdim\pagegoal=\maxdimen\textheight
+ \else\dimexpr\pagegoal-\pagetotal\fi
+ \ifdim \@tempdima
+ <\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax
+ \ifodd\c@page
+ \newpage
+ \@tempdima\textheight
+ \else \typeout{even page}%
+ \fi
+ \@whiledim \@tempdima
+ <\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax\do{%
+ \splitmaxdepth\dp\strutbox
+ \splittopskip\topskip
+ \setbox\z@\vsplit\@tempboxa to \@tempdima
+ \showthe\dimexpr\ht\z@+\dp\z@\relax
+ \showthe\@tempdima
+ \usebox\z@
+ \newpage
+ \@tempdima\textheight
+ }%
+ \fi
+ \ifvoid\@tempboxa\else\usebox\@tempboxa\fi
+}
+\RequirePackage{keyval}
+\define@key{pfarrei.prayer}{response}{\def\prayer@response{#1}}
+\define@key{pfarrei.prayer}{responder}{\def\prayer@responder{#1:}}
+\define@key{pfarrei.prayer}{leader}{\def\prayer@leader{#1:}}
+\newcommand*{\prayer@responder}{}
+\newcommand*{\prayer@response}{}
+\newcommand*{\prayer@leader}{}
+\newcommand*{\setupprayer}{%
+ \setkeys{pfarrei.prayer}%
+}
+\newif\ifprayer@firstitem
+\newcommand*{\prayer@response@item}{%
+ \ifprayer@firstitem\else
+ \ifx\prayer@responder\@empty\else
+ \ifx\prayer@response\@empty\else
+ \prayer@save@item[\prayer@responder] \prayer@response
+ \fi
+ \fi
+ \fi
+}
+\newcommand*{\prayer@item}[1][\prayer@leader]{%
+ \prayer@response@item
+ \prayer@firstitemfalse
+ \prayer@save@item[{#1}]%
+}
+\newenvironment*{prayer}[1][]{%
+ \begin{description}
+ \begingroup
+ \def\@currenvir{prayer}%
+ \setupprayer{#1}%
+ \let\prayer@save@item\item
+ \let\item\prayer@item
+ \prayer@firstitemtrue
+ \let\noresponder\prayer@firstitemtrue
+}{%
+ \prayer@response@item
+ \endgroup
+ \end{description}
+}
\endinput
%%
%% End of file `pfarrei.sty'.