diff options
author | Karl Berry <karl@freefriends.org> | 2013-03-11 23:37:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-03-11 23:37:16 +0000 |
commit | ba010cadf18382da1fa1ad0567552261171c4c63 (patch) | |
tree | 5ca8649dcec7199d091f73831a747c6f1bdb4db2 /Master/texmf-dist | |
parent | 6dbb8dfbb59d7e98e7addb0feae7ff9306c49b0e (diff) |
pfarrei (11mar13)
git-svn-id: svn://tug.org/texlive/trunk@29348 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf | bin | 0 -> 419416 bytes | |||
-rwxr-xr-x | Master/texmf-dist/scripts/pfarrei/a5toa4.tlu | 37 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/pfarrei/pfarrei.tlu | 144 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pfarrei/README | 47 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx | 623 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex | 47 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty | 60 |
7 files changed, 958 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf b/Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf Binary files differnew file mode 100644 index 00000000000..03c944fe195 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pfarrei/pfarrei.pdf diff --git a/Master/texmf-dist/scripts/pfarrei/a5toa4.tlu b/Master/texmf-dist/scripts/pfarrei/a5toa4.tlu new file mode 100755 index 00000000000..25c7de5986e --- /dev/null +++ b/Master/texmf-dist/scripts/pfarrei/a5toa4.tlu @@ -0,0 +1,37 @@ +#!/usr/bin/env texlua + +-- +-- This is file `a5toa4.tlu', +-- generated with the docstrip utility. +-- +-- The original source files were: +-- +-- pfarrei.dtx (with options: `a5toa4,lua') +-- +-- Copyright (c) 2013 Markus Kohm +-- komascript at gmx info +-- +-- This file was generated from file(s) of the work `pfarrei'. +-- ------------------------------------------------------------------ +-- +-- It may be distributed under the conditions of the +-- LaTeX Project Public License in the version distributed together +-- with the work `pfarrei'. You may however distribute the work +-- `pfarrei' without all such generated files. See also +-- <http://www.latex-project.org/lppl.txt> for additional +-- information. +-- +-- This work has the LPPL maintenance status `maintained'. +-- +-- The Current Maintainer of this work is Markus Kohm. +-- +-- 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 $ + +kpse.set_program_name(arg[-1], 'a5toa4') +require('pfarrei') +-- +-- +-- End of file `a5toa4.tlu'. diff --git a/Master/texmf-dist/scripts/pfarrei/pfarrei.tlu b/Master/texmf-dist/scripts/pfarrei/pfarrei.tlu new file mode 100755 index 00000000000..ee5f0ed8d67 --- /dev/null +++ b/Master/texmf-dist/scripts/pfarrei/pfarrei.tlu @@ -0,0 +1,144 @@ +#!/usr/bin/env texlua + +-- +-- This is file `pfarrei.tlu', +-- generated with the docstrip utility. +-- +-- The original source files were: +-- +-- pfarrei.dtx (with options: `pfarrei,lua') +-- +-- Copyright (c) 2013 Markus Kohm +-- komascript at gmx info +-- +-- This file was generated from file(s) of the work `pfarrei'. +-- ------------------------------------------------------------------ +-- +-- It may be distributed under the conditions of the +-- LaTeX Project Public License in the version distributed together +-- with the work `pfarrei'. You may however distribute the work +-- `pfarrei' without all such generated files. See also +-- <http://www.latex-project.org/lppl.txt> for additional +-- information. +-- +-- This work has the LPPL maintenance status `maintained'. +-- +-- The Current Maintainer of this work is Markus Kohm. +-- +-- 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 action_version = ' r' .. version_number .. '\n' .. [[ + +Copyright (c) 2013 Markus Kohm. +License: lppl 1.3c or later. See <http://www.latex-project.org/lppl.txt>. +]] +local action_help = [[ +action options: + + -h, --help Print this help message. + -V, --version Print the version information. + +processing options: + -b, --booklet Generate a booklet instead of only two pages side by + side onto one page. The whole booklet will be one + signature. + -s, --sidebyside Generate only two pages side by side onto one page + instead of a booklet. + -o, --overwrite Write the output to the <PDF file> instead of appending + "-sidebyside.pdf" or "--booklet.pdf" to the basename + of <PDF file> +]] +local action_opts = { + ['-h'] = 'help', + ['--help'] = 'help', + ['-V'] = 'version', + ['--version'] = 'version', +} +local processing_opts = { + ['-b'] = 'booklet', + ['--booklet'] = 'booklet', + ['-s'] = 'sidebyside', + ['--sidebyside'] = 'sidebyside', + ['-o'] = 'overwrite', + ['--overwrite'] = 'overwrite' +} + +-- detect action options and do action +local i = 1 +local action +while arg[i] do + action = action_opts[arg[i]] + i = i+1 + if action == 'help' then + print( arg[0]..action_version ); + print( 'Usage: ' .. arg[0] .. ' <action option>' ) + print( ' ' .. arg[0] .. ' [<processing options>] <PDF file> ...\n' ) + print( action_help ); + os.exit( 0 ); + elseif action == 'version' then + print( arg[0] .. action_version ); + os.exit( 0 ); + end +end + +-- process options and parameters +local booklet = false +local overwrite = 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 == nil then + -- build the temporary tex file + local tmpdir = os.tmpdir("pfarrei.XXXXXX" ) + local tmpfile = string.match( arg[i], '.*/(.*)$') or arg[i] + 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 + assert( file:write("\\def\\OriginalFile{",arg[i],"}\n") ) + assert( file:write("\\input{a5toa4.tex}\n") ) + assert( file:flush() ) + file:close() + -- call pdflatex + assert( os.execute( 'pdflatex -interaction=batchmode -output-directory='..tmpdir..' '..tmpfile ) ) + -- copy the resulting pdf file + local srcfile = assert( io.open( tmpdir..'/'..basename..'.pdf', 'rb' ) ) + if overwrite + then + tmpfile = arg[i] + else + tmpfile = string.match( arg[i], '(.*)%.[^.]*$' ) or arg[i] + if booklet + then + tmpfile = tmpfile..'-booklet.pdf' + else + tmpfile = tmpfile..'-sidebyside.pdf' + end + end + local destfile = assert( io.open( tmpfile, 'wb' ) ) + local buffer + while true do + buffer = srcfile:read(8388608) + if buffer==nil then break end + assert( destfile:write(buffer) ) + 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 ) + overwrite = false + end + i=i+1 +end +-- +-- +-- End of file `pfarrei.tlu'. diff --git a/Master/texmf-dist/source/latex/pfarrei/README b/Master/texmf-dist/source/latex/pfarrei/README new file mode 100644 index 00000000000..bcc6833233e --- /dev/null +++ b/Master/texmf-dist/source/latex/pfarrei/README @@ -0,0 +1,47 @@ +$Id: README 19 2013-03-10 14:15:48Z mjk $ +============================================================================ +pfarrei - A bundle of executables, LaTeX documents and packages for priests +---------------------------------------------------------------------------- +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 + 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 +License: LPPL 1.3c or later +State: Maintained +---------------------------------------------------------------------------- +Special installation note: + To extract all the files just call `tex pfarrei.dtx'. Note, + that you have to use tex NOT latex or pdflatex! + The manual may be done using `pdflatex pfarrei.dtx' two + times. + After this, you should copy the files like this into a valid + TEXMF tree (aka TDS tree): + a5toa4.tlu --> scripts/pfarrei/a5toa5.tlu + pfarrei.tlu --> scripts/pfarrei/pfarrei.tlu + a5toa4.tex --> tex/latex/pfarrei/a5toa4.tex + pfarrei.sty --> tex/latex/pfarrei/pfarrei.sty + pfarrei.pdf --> doc/latex/pfarrei/pfarrei.pdf + README --> source/latex/pfarrei/README + pfarrei.dtx --> source/latex/pfarrei/pfarrei.dtx + Users, that do not use Windows, should also copy a5toa4.tlu + to the binary directory of their TeX distribution and rename + that copy onto a5toa4 (without extension). + Windows users, at least using TeX Live, should make a copy + of runscript.exe with the name a5toa4 in the binary + directory of their TeX distribution. + + 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 + as described above. +============================================================================ diff --git a/Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx b/Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx new file mode 100644 index 00000000000..a1deca6de9d --- /dev/null +++ b/Master/texmf-dist/source/latex/pfarrei/pfarrei.dtx @@ -0,0 +1,623 @@ +% \CheckSum{36} +% \iffalse^^A meta-comment +% ====================================================================== +% pfarrei.dtx +% Copyright (c) 2013 Markus Kohm +% komascript at gmx info +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of the files `README' and `pfarrei.dtx'. +% +% If you're missing the installation batch file `pfarrei.ins', try +% tex pfarrei.dtx +% to unpack all files. +% The package documentation may be produced repeating +% pdflatex pfarrei.dtx +% at least three times. +% ---------------------------------------------------------------------- +% pfarrei.dtx +% Copyright (c) 2013 Markus Kohm +% komascript at gmx info +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01. +% +% Dieses Wert hat den LPPL-Verwaltungszustand `maintained' (verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Das Werk besteht aus den Dateien `README' und `pfarrei.dtx'. +% +% Falls Sie die Installations-Batch-Datei `pfarrei.ins' vermissen, +% probieren Sie einfach einmal +% tex pfarrei.dtx +% um alle Dateien auszupacken. +% Die Anleitung erhalten Sie durch dreimalige Ausführung von: +% pdflatex pfarrei.dtx +% ====================================================================== +% \fi^^A meta-comment +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse^^A meta-comment +%<*dtx|tex> +\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) $ + \def\revision$#1: #2 #3${% + \gdef\pfarreirevision{#2}% + }\revision$Revision: 20 $ +\endgroup +%<*dtx> +\def\LaTeXformat{LaTeX2e} +\ifx\fmtname\LaTeXformat + \makeatletter + \let\saved@@end\@@end + \def\@@end{\csname fi\endcsname\saved@@end} + \makeatother + \ProvidesFile{pfarrei.dtx} +%</dtx> +%<package>\ProvidesPackage{pfarrei.sty} +%<a5toa4>\ProvidesFile{a5toa4.tex} + [\pfarreirevisiondate\space r\pfarreirevision LaTeX2e package + (for priests)] +%</dtx|tex> +%<*driver> +\documentclass{ltxdoc} +\usepackage[english,ngerman]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\CodelineIndex +\RecordChanges +\GetFileInfo{pfarrei.dtx} +\begin{document} +\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.% + }% + }% +} \date{\filedate} \author{Markus Kohm} +\maketitle +\DocInput{pfarrei.dtx} +\PrintChanges +\PrintIndex +\end{document} +%</driver> +%<*dtx> +\fi +%</dtx> +%<*insfile> +\def\batchfile{pfarrei.dtx} +\input docstrip.tex +\ifToplevel{% + \keepsilent + \askforoverwritefalse +} + +\let\MetaPrefix\relax +\declarepreamble\rawpreamble + +Copyright (c) 2013 Markus Kohm + komascript at gmx info + +This file was generated from file(s) of the work `pfarrei'. +------------------------------------------------------------------ + +It may be distributed under the conditions of the +LaTeX Project Public License in the version distributed together +with the work `pfarrei'. You may however distribute the work +`pfarrei' without all such generated files. See also +<http://www.latex-project.org/lppl.txt> for additional +information. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Markus Kohm. + +The list of files belonging to the work `pfarrei' is given in +the file `pfarrei.dtx'. + +\endpreamble + +\let\MetaPrefix\DoubleperCent +\edef\texpreamble{\rawpreamble} + +\generate{% + \usepreamble\texpreamble + \file{pfarrei.sty}{% + \from{pfarrei.dtx}{package,tex}% + }% + \file{a5toa4.tex}{% + \from{pfarrei.dtx}{a5toa4,tex}% + }% +} + +\ifToplevel{% + \generate{% + \usepreamble\texpreamble + \file{pfarrei.ins}{% + \from{pfarrei.dtx}{insfile,tex}% + }% + }% +} + +\def\MetaPrefix{--} +{ + { + \catcode`\#=11 + \gdef\Hash{#}% + } + \xdef\luapreamble{\Hash!/usr/bin/env texlua^^J% + ^^J% + \rawpreamble} +} + +\declarepostamble\luapostamble + +\endpostamble + +\generate{% + \usepreamble\luapreamble\usepostamble\luapostamble + \file{a5toa4.tlu}{% + \from{pfarrei.dtx}{a5toa4,lua}% + }% + \file{pfarrei.tlu}{% + \from{pfarrei.dtx}{pfarrei,lua}% + }% +} + +\ifToplevel{% + \Msg{+---------------------------------------------------------------} + \Msg{| To finish the installation copy the files into a TEXMF tree:} + \Msg{| \space\space a5toa4.tlu --> scripts/pfarrei/a5toa5.tlu} + \Msg{| \space\space pfarrei.tlu --> scripts/pfarrei/pfarrei.tlu} + \Msg{| \space\space a5toa4.tex --> tex/latex/pfarrei/a5toa4.tex} + \Msg{| \space\space pfarrei.sty --> tex/latex/pfarrei/pfarrei.sty} + \Msg{| If you are not using Windows, you should also copy a5toa4.tlu} + \Msg{| to the binary directory of your TeX distribution and rename} + \Msg{| it into a5toa4.} + \Msg{| If you are using Windows, you make a copy of runscript.exe at} + \Msg{| the binary directory of your TeX distribution and rename it} + \Msg{| into a5toa4.} + \Msg{+---------------------------------------------------------------} +} +%</insfile> +%<*dtx|doc> +\csname endinput\endcsname +% \fi^^A meta-comment +% +% \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 +% 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. +% \end{abstract} +% +% \tableofcontents +% +% \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. +% +% Das erste, "`a5toa4", arrangiert die A5-Seiten dabei so, dass jeweils zwei +% aufeinander folgende A5-Seiten nebeneinandern ausgegeben werden. Das ist vor +% allem dann praktisch, wenn man nur einseitig druckt und die Seiten später +% geteilt werden sollen. Im folgenden wird diese Ausgabe \emph{side-by-side} +% genannt. +% +% Das zweite, "`a5toa4bogen"', erzeugt hingegen ein sogenanntes Booklet. Dabei +% werden die Seiten so angeordnet, dass nach dem beidseitigen Druck, der ganze +% Stapel nur noch in der Mitte geknickt werden muss, um eine Art Heft zu +% 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. +% +% Ruft 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. +% +% 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 +% 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. +% +% Für die Durchführung wurde auch ein Verbesserungsvorschlag von Christian +% Justen selbst aufgegriffen. Bei ihm haben die Skripte mit einer +% Zwischendateien mit dem festen Namen "`\texttt{cj.tmp}"' gearbeitet. Im +% Extramfall konnte dies dazu führen, dass Dateien unerwünscht überschrieben +% und so vernichtet wurden. +% +% In meiner Fassung als texlua-Skript wird mit einem temporären Verzeichnis im +% aktuellen Arbeitsverzeichnis gearbeitet. Darin wird eine temporäre +% \LaTeX-Datei erzeugt und alle Ausgabedateien eines PDF\LaTeX-Laufs +% abgelegt. Das PDF-Ergebnis des PDF\LaTeX-Laufs wird dann wieder in das noch +% immer aktuelle Arbeitsverzeichnis kopiert. Im Normalfall wird dabei der +% Basisname (also ohne Extension) der Ursprungsdatei je nachdem, was erzeugt +% 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. +% +% Eine weitere Änderung bei mir betrifft die Tatsache, dass man für die +% Verarbeitung mehrerer Dateien nicht mehrere Aufrufe benötigt, man kann auch +% in einem Aufruf beliebig oft Optionen und Dateien hintereinander anfügen, +% die dann nacheinander verarbeitet werden. So würde beispielsweise mit dem +% Aufruf: +% \begin{verbatim} +% a5toa4 -b foo.pdf -s bar.pdf -o bum.pdf +% \end{verbatim}\unskip\ignorespaces +% sowohl "`\texttt{foo-booklet.pdf}"' als auch "`\texttt{bar-sidebyside.pdf}"' +% erzeugt und anschließend "`\texttt{bum.pdf}"' durch eine +% side-by-side-Fassung von sich selbst überschrieben werden. +% +% Es ist zu beachten, dass nach jeder erzeugten Datei die +% Überschreibeinstellung von Option "`\texttt{-o}"' oder +% "`\texttt{--overwrite}"' aus Sicherheitsgründen wieder aufgehoben wird. Will +% man also mehrere Dateien nacheinander bearbeiten und bei mehreren davon soll +% 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 +% "`\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.} +% +% Eine letzte kleine Änderung meiner Fassung betrifft die Anforderungen an das +% Seitenformat der Quelldateien. Im Original wurde mit der \texttt{pdfpages} +% Option \texttt{noautoscale} gearbeitet. Damit wurden die Seiten der +% Quelldatei nicht an das Seitenformat der Zieldatei angepasst. War die +% Quelldatei also nicht im Format A5, sondern beispielsweise A6, dann wurden +% zwei A6-Seiten auf einer A4-quer-Seite platziert. War die Quelldatei im Format +% A4, passten ihre Seiten nicht einmal auf die A4-quer-Seite. Ich habe diese +% Option daher weggelassen. Nun werden die Seiten der Quelldatei automatisch +% ins A5-Format gebracht, bevor sie auf der A4-quer-Seite platziert werden. +% +% +% \subsection*{Zusammenfassung} +% +% 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: +% \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: +% \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: +% \begin{verbatim} +% a5toa4 --version +% \end{verbatim}\unskip +% +% Eine Hilfe zum Programm erhält man mit: +% \begin{verbatim} +% a5toa4 --help +% \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 +% 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. +% +% \StopEventually{} +% +% \iffalse^^A meta-comment +%</dtx|doc> +% \fi^^A meta-comment +% +% \section{Implementierung der \LaTeX-Seite} +% +% \iffalse^^A meta-comment +%<*tex> +% \fi^^A meta-comment +% +% \subsection{Das \LaTeX-Dokument "`\texttt{a5toa4.tex}"'} +% +% \iffalse^^A meta-comment +%<*a5toa4> +% \fi^^A meta-comment +% +% Das ist wirklich geradezu trivial: +% \begin{macrocode} +\documentclass[a4paper,landscape]{article} +\usepackage{pfarrei} +\begin{document} +\AvToAiv +\end{document} +% \end{macrocode} +% Das war es schon. +% +% \iffalse^^A meta-comment +%</a5toa4> +% \fi^^A meta-comment +% +% \subsection{Das \LaTeX-Paket "`\texttt{pfarrei}"'} +% +% \iffalse^^A meta-comment +%<*package> +% \fi^^A meta-comment +% +% Als erstes werden die Optionen ausgeführt (obwohl es noch keine gibt): +% \begin{macrocode} +\ProcessOptions* +% \end{macrocode} +% Dann benötigen wir ein paar Pakete: +% \begin{macrocode} +\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}{% + \ifpdf\else + \PackageError{pfarrei}{PDF mode needed}{% + a5toa4 needs the direct PDF mode.\MessageBreak + Usually this may be activated using either pdflatex, lualatex or + xelatex.% + }% + \input{x.tex} + \fi + \@ifundefined{Booklet}{% + \includepdf[pages=-,nup=2x1]{\OriginalFile}% + }{% + \includepdf[pages=-,booklet]{\OriginalFile}% + }% +} +% \end{macrocode} +% \end{macro}^^A \AvToAiv +% +% \iffalse^^A meta-comment +%</package> +% \fi^^A meta-comment +% +% +% \iffalse^^A meta-comment +%</tex> +% \fi^^A meta-comment +% +% \section{Implementierung der Skripten} +% +% \iffalse^^A meta-comment +%<*lua> +% \fi^^A meta-comment +% +% \subsection{Der kleine Wrapper "`\texttt{a5toa4.tlu}"'} +% +% \iffalse^^A meta-comment +%<*a5toa4> +% \fi^^A meta-comment +% \begin{macrocode} +-- $Id: pfarrei.dtx 20 2013-03-10 14:19:06Z mjk $ + +kpse.set_program_name(arg[-1], 'a5toa4') +require('pfarrei') +% \end{macrocode} +% \iffalse^^A meta-comment +%</a5toa4> +% \fi^^A meta-comment +% +% \subsection{Das Haupt-Skript "`\texttt{pfarrei.tlu}"'} +% +% \iffalse^^A meta-comment +%<*pfarrei> +% \fi^^A meta-comment +% \begin{macrocode} +local version_number = string.sub( '$Revision: 20 $', 12, -2 ) +local action_version = ' r' .. version_number .. '\n' .. [[ + +Copyright (c) 2013 Markus Kohm. +License: lppl 1.3c or later. See <http://www.latex-project.org/lppl.txt>. +]] +local action_help = [[ +action options: + + -h, --help Print this help message. + -V, --version Print the version information. + +processing options: + -b, --booklet Generate a booklet instead of only two pages side by + side onto one page. The whole booklet will be one + signature. + -s, --sidebyside Generate only two pages side by side onto one page + instead of a booklet. + -o, --overwrite Write the output to the <PDF file> instead of appending + "-sidebyside.pdf" or "--booklet.pdf" to the basename + of <PDF file> +]] +local action_opts = { + ['-h'] = 'help', + ['--help'] = 'help', + ['-V'] = 'version', + ['--version'] = 'version', +} +local processing_opts = { + ['-b'] = 'booklet', + ['--booklet'] = 'booklet', + ['-s'] = 'sidebyside', + ['--sidebyside'] = 'sidebyside', + ['-o'] = 'overwrite', + ['--overwrite'] = 'overwrite' +} + +-- detect action options and do action +local i = 1 +local action +while arg[i] do + action = action_opts[arg[i]] + i = i+1 + if action == 'help' then + print( arg[0]..action_version ); + print( 'Usage: ' .. arg[0] .. ' <action option>' ) + print( ' ' .. arg[0] .. ' [<processing options>] <PDF file> ...\n' ) + print( action_help ); + os.exit( 0 ); + elseif action == 'version' then + print( arg[0] .. action_version ); + os.exit( 0 ); + end +end + +-- process options and parameters +local booklet = false +local overwrite = 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 == nil then + -- build the temporary tex file + local tmpdir = os.tmpdir("pfarrei.XXXXXX" ) + local tmpfile = string.match( arg[i], '.*/(.*)$') or arg[i] + 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 + assert( file:write("\\def\\OriginalFile{",arg[i],"}\n") ) + assert( file:write("\\input{a5toa4.tex}\n") ) + assert( file:flush() ) + file:close() + -- call pdflatex + assert( os.execute( 'pdflatex -interaction=batchmode -output-directory='..tmpdir..' '..tmpfile ) ) + -- copy the resulting pdf file + local srcfile = assert( io.open( tmpdir..'/'..basename..'.pdf', 'rb' ) ) + if overwrite + then + tmpfile = arg[i] + else + tmpfile = string.match( arg[i], '(.*)%.[^.]*$' ) or arg[i] + if booklet + then + tmpfile = tmpfile..'-booklet.pdf' + else + tmpfile = tmpfile..'-sidebyside.pdf' + end + end + local destfile = assert( io.open( tmpfile, 'wb' ) ) + local buffer + while true do + buffer = srcfile:read(8388608) + if buffer==nil then break end + assert( destfile:write(buffer) ) + 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 ) + overwrite = false + end + i=i+1 +end +% \end{macrocode} +% \iffalse^^A meta-comment +%</pfarrei> +% \fi^^A meta-comment +% +% \iffalse^^A meta-comment +%</lua> +% \fi^^A meta-comment +% +% \Finale +% +\endinput +% +% end of file `pfarrei.dtx' +% +%%% Local Variables: +%%% mode: doctex +%%% mode: flyspell +%%% ispell-local-dictionary: "de_DE" +%%% TeX-master: t +%%% End: + diff --git a/Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex b/Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex new file mode 100644 index 00000000000..6fda799e025 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pfarrei/a5toa4.tex @@ -0,0 +1,47 @@ +%% +%% This is file `a5toa4.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pfarrei.dtx (with options: `a5toa4,tex') +%% +%% Copyright (c) 2013 Markus Kohm +%% komascript at gmx info +%% +%% This file was generated from file(s) of the work `pfarrei'. +%% ------------------------------------------------------------------ +%% +%% It may be distributed under the conditions of the +%% LaTeX Project Public License in the version distributed together +%% with the work `pfarrei'. You may however distribute the work +%% `pfarrei' without all such generated files. See also +%% <http://www.latex-project.org/lppl.txt> for additional +%% information. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Markus Kohm. +%% +%% The list of files belonging to the work `pfarrei' is given in +%% the file `pfarrei.dtx'. +%% +\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) $ + \def\revision$#1: #2 #3${% + \gdef\pfarreirevision{#2}% + }\revision$Revision: 20 $ +\endgroup +\ProvidesFile{a5toa4.tex} + [\pfarreirevisiondate\space r\pfarreirevision LaTeX2e package + (for priests)] +\documentclass[a4paper,landscape]{article} +\usepackage{pfarrei} +\begin{document} +\AvToAiv +\end{document} +\endinput +%% +%% End of file `a5toa4.tex'. diff --git a/Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty b/Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty new file mode 100644 index 00000000000..34b5cba0a26 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pfarrei/pfarrei.sty @@ -0,0 +1,60 @@ +%% +%% This is file `pfarrei.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pfarrei.dtx (with options: `package,tex') +%% +%% Copyright (c) 2013 Markus Kohm +%% komascript at gmx info +%% +%% This file was generated from file(s) of the work `pfarrei'. +%% ------------------------------------------------------------------ +%% +%% It may be distributed under the conditions of the +%% LaTeX Project Public License in the version distributed together +%% with the work `pfarrei'. You may however distribute the work +%% `pfarrei' without all such generated files. See also +%% <http://www.latex-project.org/lppl.txt> for additional +%% information. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Markus Kohm. +%% +%% The list of files belonging to the work `pfarrei' is given in +%% the file `pfarrei.dtx'. +%% +\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) $ + \def\revision$#1: #2 #3${% + \gdef\pfarreirevision{#2}% + }\revision$Revision: 20 $ +\endgroup +\ProvidesPackage{pfarrei.sty} + [\pfarreirevisiondate\space r\pfarreirevision LaTeX2e package + (for priests)] +\ProcessOptions* +\RequirePackage{ifpdf} +\RequirePackage{pdfpages} +\newcommand*{\AvToAiv}{% + \ifpdf\else + \PackageError{pfarrei}{PDF mode needed}{% + a5toa4 needs the direct PDF mode.\MessageBreak + Usually this may be activated using either pdflatex, lualatex or + xelatex.% + }% + \input{x.tex} + \fi + \@ifundefined{Booklet}{% + \includepdf[pages=-,nup=2x1]{\OriginalFile}% + }{% + \includepdf[pages=-,booklet]{\OriginalFile}% + }% +} +\endinput +%% +%% End of file `pfarrei.sty'. |