summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/pdfx/pdfx.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-12-05 01:52:40 +0000
committerKarl Berry <karl@freefriends.org>2008-12-05 01:52:40 +0000
commitd00f2929d26af30109b9c7f5909b584460b73978 (patch)
treee4ca1a17c574062225ca3f59ef5829b89792ad30 /Master/texmf-dist/source/latex/pdfx/pdfx.dtx
parent328f6344fc5d11b5731246b12ea1df785d55d968 (diff)
new latex package pdfx (4dec08)
git-svn-id: svn://tug.org/texlive/trunk@11521 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/pdfx/pdfx.dtx')
-rw-r--r--Master/texmf-dist/source/latex/pdfx/pdfx.dtx521
1 files changed, 521 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/pdfx/pdfx.dtx b/Master/texmf-dist/source/latex/pdfx/pdfx.dtx
new file mode 100644
index 00000000000..e3285522299
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pdfx/pdfx.dtx
@@ -0,0 +1,521 @@
+% \iffalse meta-comment
+%
+% File: pdfx.dtx
+%
+% Copyright (c) 2008, CV Radhakrishnan <cvr@river-valley.org>,
+% Han The Thanh <thanh@river-valley.org>
+%
+% This file may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.2 of this
+% license or (at your option) any later version. The latest version
+% of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% \fi
+%
+% \CheckSum{374}
+% \iffalse
+%
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\usepackage{rvdtx}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{pdfx.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \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 \~}
+%
+% \GetFileInfo{pdfx.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let}
+% \DoNotIndex{\expandafter,\string,\the,\ifx,\else,\fi}
+% \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup}
+% \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand}
+% \DoNotIndex{\space,\@empty,\special,\@nil,\advance\@nnil}
+% \DoNotIndex{\\,\@gobble,\@@,\@fornoop,\@fortmp,\@ifundefined}
+% \DoNotIndex{\@tempcnta,\@tempcntb,\{,\},\alph,\bgroup,\egroup}
+% \DoNotIndex{\do,\end,\HN,\ifcase,\ifnum,\IfFileExists,\ifvmode}
+% \DoNotIndex{\ignorespaces,\immediate,\input,\item,\jobname}
+% \DoNotIndex{\leavevmode,\loop,\repeat,\makeatletter,\makeatother}
+% \DoNotIndex{\meaning,\newcounter,\next,\or,\par,\renewcommand}
+% \DoNotIndex{\renewcommand,\renewenvironment,\stepcounter}
+% \DoNotIndex{\Tg,\thepage,\unskip,\write,\advance,\{,\}}
+%
+% \changes{v1.00}{2008/12/01}{Initial commit to the CVS.}
+%
+% \title{Generation of PDF/X-1a and PDF/A-1b compliant PDF's
+% with PDF\TeX{} --- \texttt{pdfx.sty}}
+% \date{2008/12/01}
+% \version{1.1}
+% \keywords{\pdf, \pdfx, \pdfa, pdf\TeX, \LaTeX}
+% \author{C.\,V.\,Radhakrishnan {\upshape\small and} \thanh}
+% \contact{\texttt{[cvr,thanh]@river-valley.org}}
+%
+% \maketitle
+%
+% \StopEventually{}
+%
+% \section{Introduction}
+%
+% \textsc{pdf/x} and \textsc{pdf/a} are umbrella terms used to denote
+% several \textsc{iso} standards that define different subsets of the
+% \pdf standard. The objective of \textsc{pdf/x} is to facilitate
+% graphics exchange between document creator and printer and
+% therefore, has all requirements related to printing. For instance,
+% in \pdfx, all fonts need to be embedded and all images need to be
+% \textsc{cmyk} or spot colors. \textsc{pdf/x-2} and \textsc{pdf/x-3}
+% accept calibrated \textsc{rgb} and \textsc{cielab} colors along with
+% all other specifications of \pdfx.
+%
+% \textsc{pdf/a} defines a profile for archiving \pdf documents which
+% ensures the documents can be reproduced the exact same way in years
+% to come, a key element to achieve this is that the \textsc{pdf/a}
+% documents shall be 100\% self contained. All the information needed
+% to display the document in the same manner every time, is embedded
+% in the file. \textsc{pdf/a} document is not permitted to be reliant
+% on information from external sources. Other restrictions include
+% avoidance of audio/video content, JavaScript and encryption.
+% Mandatory inclusion of fonts, color profile and standards based
+% metadata are absolutely essential for \textsc{pdf/a}.
+%
+% This package currently supports generation of \pdfx and \pdfa
+% compliant documents using \pdftex. More and more standards will be
+% included in future.
+%
+% \section{Usage}
+%
+% The file, namely |pdfx.dtx| is a composite document of
+% program code and documentation in \LaTeX{} format in the
+% tradition of \emph{literate programming}. You
+% can extract the program code alone by stripping off the
+% documentation part by running \LaTeX{} or \TeX{} over the installer
+% namely, |pdfx.ins| which is also provided with this file. To
+% get the documentation which you are reading now, you need to run
+% (\pdf)\LaTeX{} over the file, |pdfx.dtx|.
+%
+% \subsection{Data file for XMP metadata}
+%
+% As you are aware, standards compliant \pdf documents need
+% \textsc{xmp} metadata to be included. In order to create
+% \textsc{xmp} in the prescribed \xml format, a simple data file
+% holding the meta information of the document needs to be created
+% either through a program or by hand. For our purposes, we name it as
+% |\jobname.xmpdata|, a simple example of which will look like the
+% following:
+% \begin{verbatim}
+% \Keywords{pdfTeX</rdf:li><rdf:li>PDF/X-1a</rdf:li><rdf:li>PDF/A-b}
+% \Title{Sample LaTeX input file}
+% \Author{LaTeX project team}
+% \Org{TeX Users Group}
+% \end{verbatim}
+% You may note that the keywords are separated by \xml elements
+% |</rdf:li><rdf:li>| instead of comma character. This is the correct
+% format required by the \xmp metadata which is in \xml format.
+% Similarly, several other kinds of data can be captured using the
+% following commands:
+% \begin{enumerate}
+% \item |\Subject|
+% \item |\Creator|
+% \item |\Producer|
+% \item |\Volume|
+% \item |\Issue|
+% \item |\CoverDisplayDate|
+% \item |\CoverDate|
+% \item |\Copyright|
+% \item |\Doi|
+% \item |\Lastpage|
+% \item |\Firstpage|
+% \item |\Journaltitle|
+% \item |\Journalnumber|
+% \item |\CreatorTool|
+% \item |\AuthoritativeDomain|
+% \end{enumerate}
+% The above commands are self-explanatory. Users can resort to
+% alternate ways to create |xmp| file for inclusion in \pdf. However,
+% minimal |\jobname.xmpdata| shall be created with |\Title| and
+% |\Author| commands along with their corresponding values for |pdfx|
+% package to work correctly. You may check
+% \href{http://www.adobe.com/devnet/xmp/}{Adobe \textsc{xmp}
+% Development Center} for more exhaustive information about
+% Extensible Metadata Platform (\textsc{xmp}). An \textsc{xmp}
+% Toolkit \textsc{sdk} which supports \textsc{gnu}/Linux, Macintosh
+% and Windows operating systems is also provided under \textsc{bsd}
+% licence.
+%
+% |pdfx| makes use of |xmpincl| package to include |xmp| data into the
+% \pdf. A good look at the documentation of |xmpincl| package will
+% greatly help the users to understand the process of |xmp| data
+% inclusion.
+%
+% \subsection{Limitations and dependencies}
+%
+% |pdfx.sty| works only with \pdftex. It further depends on the following
+% packages:
+% \begin{enumerate}
+% \item |xmpincl| for insertion of metadata into \pdf.
+% \item |hyperref| for hyperlinking, bookmarks, etc.
+% \item |glyphtounicode.tex| maps glyph names to corresponding Unicode.
+% \item |glyphtounicode-cmr.tex| does the same for |cmr| fonts.
+% \end{enumerate}
+% Necessary color profile files may be obtained from International
+% Color Consortium. Please take a look at
+% \url{http://www.color.org/iccprofile.xalter}.
+%
+% \subsection{Files included}
+%
+% Following files are included in the archive:
+%
+% \begin{enumerate}
+% \item |pdfx.dtx| --- composite package and documentation.
+% \item |pdfx.ins| --- installer batch file.
+% \item |pdfx-1a.xmp| --- specimen |xmp| template for \pdfx.
+% \item |pdfa-1b.xmp| --- specimen |xmp| template for \pdfa.
+% \item |small2e.xmpdata| --- specimen data file to provide values
+% relating to the document to generate metadata.
+% \end{enumerate}
+% A directory named |pdfx| may be created under |$TEXMF/tex/latex| and
+% all |*.sty| and |*.xmp| may be moved to the same. \TeX's file
+% database may need to be updated by suitable command depending on
+% your distribution and operating system.
+%
+% \subsection{Options}
+%
+% The package can be loaded with the command:
+% \begin{decl}
+% \defmacro{usepackage}|[<option>]{pdfx}|
+% \end{decl}
+% where the options are:
+% \begin{description}
+% \item[|x-1a|] generates \pdfx compliant \pdf.
+% \item[|a-1b|] generates \pdfa compliant \pdf.
+% \end{description}
+%
+% \subsection{Useful production notes}
+%
+% We have included some useful notes about production problems which
+% we have encountered while generating \pdfa compliant documents and
+% the fixes recommended at:
+% \url{http://support.river-valley.com/wiki/index.php?title=Generating_PDF/A_compliant_PDFs_from_pdftex}.
+%
+% \subsection{Miscellaneous information}
+%
+% The package is released under \LaTeX{} Project Public Licence. Bug
+% reports, suggestions, feature requests, etc., may be sent to the
+% authors at \href{mailto:cvr@river-valley.org}{\ttfamily
+% cvr@river-valley.org} and/or
+% \href{mailto:thanh@river-valley.org}{\ttfamily
+% thanh@river-valley.org}.
+%
+% \section{Implementation}
+% \subsection{Various auxiliary macros}
+%
+% Two booleans are defined to switch between two options, |a-1b| and
+% |x-1a|. \pdfx further demands \pdf version 1.3 and properly placed
+% mediabox, bleedbox and trimbox (innermost) in that order. The
+% MediaBox defines the size of the entire document, either the
+% ArtBox or the TrimBox, defines the extent of the printable
+% area. If the file is to be printed with bleed, a BleedBox, which
+% must be larger than the TrimBox/ArtBox, but smaller than the
+% MediaBox, must be defined.
+%
+% \begin{macrocode}
+%<*package>
+%
+% $Id: pdfx.dtx,v 1.1 2008/12/01 10:28:01 cvr Exp cvr $
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pdfx}
+ [2008/12/01 v1.1 PDF/X and PDF/A support (CVR/HTH)]
+
+\newif\ifpdfxonea \pdfxoneafalse
+\newif\ifpdfaoneb \pdfaonebfalse
+
+\DeclareOption{a-1b}{\global\pdfaonebtrue}
+\DeclareOption{x-1a}{\global\pdfxoneatrue}
+\ProcessOptions
+
+\ifpdfxonea
+ \pdfminorversion=3
+ \pdfpageattr{/MediaBox[0 0 595 793]
+ /BleedBox[0 0 595 793]
+ /TrimBox[25 20 570 773]}
+\else
+ \pdfminorversion=4
+\fi
+% \end{macrocode}
+%
+% Several macros were defined to capture data for the \xmp metadata to
+% be inserted into the PDF during generation.
+% \begin{macrocode}
+\def\hash{\expandafter\@gobble\string\#}
+\def\amp{\expandafter\@gobble\string\&}
+\def\xmpAmp{\amp\hash x0026;}
+\def\TextCopyright{\amp\hash x00A9;}
+\def\Title#1{\gdef\xmpTitle{#1}}
+ \let\xmpTitle\@empty
+\def\Author#1{\gdef\xmpAuthor{#1}}
+ \let\xmpAuthor\@empty
+\def\Keywords#1{\gdef\xmpKeywords{#1}}
+ \let\xmpKeywords\@empty
+ \let\xmpSubject\xmpKeywords
+\def\Creator#1{\gdef\xmpCreator{#1}}
+ \def\xmpCreator{\@pdfcreator}
+\def\Producer#1{\gdef\xmpProducer{#1}}
+ \def\xmpProducer{pdfTeX}
+\def\Volume#1{\gdef\xmpVolume{#1}}
+ \let\xmpVolume\@empty
+\def\Issue#1{\gdef\xmpIssue{#1}}
+ \let\xmpIssue\@empty
+\def\CoverDisplayDate#1{\gdef\xmpCoverDisplayDate{#1}}
+ \let\xmpCoverDisplayDate\@empty
+\def\CoverDate#1{\gdef\xmpCoverDate{#1}}
+ \let\xmpCoverDate\@empty
+\def\Copyright#1{\gdef\xmpCopyright{#1}}
+ \let\xmpCopyright\@empty
+\def\Doi#1{\gdef\xmpDoi{#1}}
+ \let\xmpDoi\@empty
+\def\Lastpage#1{\gdef\xmpLastpage{#1}}
+ \let\xmpLastpage\@empty
+\def\Firstpage#1{\gdef\xmpFirstpage{#1}}
+ \let\xmpFirstpage\@empty
+\def\Journaltitle#1{\gdef\xmpJournaltitle{#1}}
+ \let\xmpJournaltitle\@empty
+\def\Journalnumber#1{\gdef\xmpJournalnumber{#1}}
+ \let\xmpJournalnumber\@empty
+\def\Org#1{\gdef\xmpOrg{#1}}
+ \let\xmpOrg\@empty
+\def\CreatorTool#1{\gdef\xmpCreatorTool{#1}}
+ \def\xmpCreatorTool{\xmpProducer}
+\def\AuthoritativeDomain#1{\gdef\xmpAuthoritativeDomain{#1}}
+ \let\xmpAuthoritativeDomain\@empty
+% \end{macrocode}
+%
+% \subsection{Document and instance ID's}
+%
+% Document \textsc{id} and instance \textsc{id} are created from
+% values obtained from |\jobname.pdf| and |\pdfcreationdate| by making
+% \DescribeMacro{\findUUID}
+% \DescribeMacro{\uuid}
+% use of |\pdfmdfivesum| primitive of \pdftex.
+% \begin{macrocode}
+\def\findUUID#1{\edef\tmpstring{\pdfmdfivesum{#1}}
+ \expandafter\eightofnine\tmpstring\end}
+\def\eightofnine#1#2#3#4#5#6#7#8#9\end{%
+ \xdef\eightchars{#1#2#3#4#5#6#7#8}
+ \fouroffive#9\end}
+\def\fouroffive#1#2#3#4#5\end{\xdef\ffourchars{#1#2#3#4}
+ \sfouroffive#5\end}
+\def\sfouroffive#1#2#3#4#5\end{\xdef\sfourchars{#1#2#3#4}
+ \tfouroffive#5\end}
+\def\tfouroffive#1#2#3#4#5\end{\xdef\tfourchars{#1#2#3#4}
+ \xdef\laststring{#5}}
+
+\def\uuid{\eightchars-%
+ \ffourchars-%
+ \sfourchars-%
+ \tfourchars-%
+ \laststring}
+
+\findUUID{\jobname.pdf}
+\edef\xmpdocid{\uuid}
+\findUUID{\pdfcreationdate}
+\edef\xmpinstid{\uuid}
+% \end{macrocode}
+%
+% |\jobname.xmpdata| is read if available and the package, |xmpincl|
+% is also loaded which will take care of inserting metadata into the
+% \pdf document.
+%
+% \begin{macrocode}
+\InputIfFileExists{\jobname.xmpdata}{}{}
+\RequirePackage{xmpincl}
+% \end{macrocode}
+%
+% \DescribeMacro{\convDate}
+% \DescribeMacro{\convertDate}
+% The date format needed by metadata is different from the value
+% provided by the |\pdfcreationdate|. |\convertDate| macro generates
+% the required date format from |\pdfcreationdate|.
+%
+% \begin{macrocode}
+\def\convertDate{\getYear}
+{\catcode`\D=12
+ \gdef\getYear D:#1#2#3#4{\edef\xYear{#1#2#3#4}\getMonth}
+}
+\def\getMonth#1#2{\edef\xMonth{#1#2}\getDay}
+\def\getDay#1#2{\edef\xDay{#1#2}\getHour}
+\def\getHour#1#2{\edef\xHour{#1#2}\getMin}
+\def\getMin#1#2{\edef\xMin{#1#2}\getSec}
+\def\getSec#1#2{\edef\xSec{#1#2}\getTZh}
+\def\getTZh +#1#2{\edef\xTZh{#1#2}\getTZm}
+\def\getTZm '#1#2'{%
+ \edef\xTZm{#1#2}%
+ \edef\convDate{\xYear-\xMonth-\xDay
+ T\xHour:\xMin:\xSec+\xTZh:\xTZm}}
+\expandafter\convertDate\pdfcreationdate
+% \end{macrocode}
+%
+% \subsection{Color profiles}
+% \DescribeMacro{/OutputIntents} For better color management, \pdfx
+% and \pdfa need an ICC profile included in the document. An ICC
+% profile is a set of data that characterizes a color input or output
+% device, or a color space, according to standards promulgated by the
+% International Color Consortium (ICC). Profiles describe the color
+% attributes of a particular device or viewing requirement by defining
+% a mapping between the device source or target color space and a
+% profile connection space. For \pdfx, we have included the ICC
+% profile namely, |FOGRA39L.icc| which is for \textsc{cmyk} data and
+% for \pdfa, we have used |sRGBIEC1966-2.1.icm| for \textsc{rgb}
+% data. You can change the value of the |file| attribute in the code
+% below to use different color profile files.
+%
+% \begin{macrocode}
+\ifpdfxonea
+ \def\@pctchar{\expandafter\@gobble\string\%}
+ \def\@bchar{\expandafter\@gobble\string\\}
+ \immediate\pdfobj stream attr{/N 4} file{FOGRA39L.icc}
+ \edef\OBJ@CVR{\the\pdflastobj}
+ \pdfcatalog{/OutputIntents [ <<
+ /Type/OutputIntent
+ /S/GTS_PDFX
+ /OutputCondition (FOGRA39)
+ /OutputConditionIdentifier (FOGRA39 \@bchar(ISO Coated v2
+ 300\@pctchar\space \@bchar(ECI\@bchar)\@bchar))
+ /DestOutputProfile \OBJ@CVR\space 0 R
+ /RegistryName(http://www.color.org)
+ >> ]}
+\else
+ \immediate\pdfobj stream attr{/N 4} file{sRGBIEC1966-2.1.icm}
+ \edef\OBJ@RVT{\the\pdflastobj}
+ \pdfcatalog{%
+ /OutputIntents [ <<
+ /Type /OutputIntent
+ /S/GTS_PDFA1
+ /DestOutputProfile \OBJ@RVT\space 0 R
+ /OutputConditionIdentifier (sRGB IEC61966-2.1)
+ /Info(sRGB IEC61966-2.1)
+ >> ]}
+\fi
+% \end{macrocode}
+%
+% One of the |xmp| files is selectively loaded based on the option
+% chosen.
+%
+% \begin{macrocode}
+\begingroup
+\let\&=\xmpAmp
+\ifpdfxonea
+ \includexmp{pdfx-1a}
+\else
+ \includexmp{pdfa-1b}
+\fi
+\endgroup
+% \end{macrocode}
+%
+% |glyphtounicode.tex| and |glyphtounicode-cmr.tex| are read.
+% These files contain mapping from glyph names to corresponding unicode for
+% embedded fonts, which are required by \pdfa. |glyphtounicode.tex| covers
+% AGL (Adobe Glyph List), names from |texglyphlist.txt| (part of
+% lcdf-typetools) and |zapfdingbats.txt|, plus a few exceptions.
+% |glyphtounicode-cmr.tex| covers glyphs that are used in CM fonts but not
+% listed in |glyphtounicode.txt|; the mappings come from file |goadb998.nam|
+% (part of \TeX{} Gyre fonts).
+
+
+%
+% \begin{macrocode}
+\input glyphtounicode.tex
+\input glyphtounicode-cmr.tex
+\pdfgentounicode=1
+% \end{macrocode}
+%
+% Active content is not allowed in a \pdfx file. This means that
+% standard \pdf features like forms, signatures, comments and embedded
+% sounds and movies are not allowed in \pdfx. So |hyperref| is loaded
+% in |draft| mode and |info| dictionary is defined with |\pdfinfo|
+% command.
+%
+% \begin{macrocode}
+\ifpdfxonea
+ \RequirePackage[draft,pdftex,pdfpagemode=UseNone,bookmarks=false]{hyperref}
+ \pdfinfo{
+ /Title(\xmpTitle)%
+ /Author(\xmpAuthor)%
+ /Creator(\xmpProducer)%
+ /CreationDate(\convDate)%
+ /ModDate(\convDate)%
+ /Producer(\xmpProducer)%
+ /Trapped /False
+ /GTS_PDFXVersion (PDF/X-1:2001)%
+ /GTS_PDFXConformance (PDF/X-1a:2001)%
+ }
+\else
+% \end{macrocode}
+%
+% For \pdfa, load |hyperref| package with |pdfa| option, so that it
+% will take care of the link annotations correctly. We have slightly
+% modified the |\pdfinfo| by including |/GTS_PDFA1Version|
+% |(PDA/A-1b:2005)|. Take a look at the modified |\PDF@FinishDoc|
+% macro of |hyprref|.
+%
+% \begin{macrocode}
+ \RequirePackage[pdftex,pdfa]{hyperref}
+ \def\PDF@FinishDoc{%
+ \Hy@UseMaketitleInfos
+ \pdfinfo{%
+ /Creator(\xmpProducer)%
+ \ifx\@pdfcreationdate\@empty
+ \else
+ /CreationDate(\@pdfcreationdate)%
+ \fi
+ \ifx\@pdfmoddate\@empty
+ \else
+ /ModDate(\@pdfmoddate)%
+ \fi
+ /Producer(\xmpProducer)%
+ /Trapped /False
+ /GTS_PDFA1Version (PDF/A-1b:2005)%
+ }%
+ \Hy@DisableOption{pdfauthor}%
+ \Hy@DisableOption{pdftitle}%
+ \Hy@DisableOption{pdfsubject}%
+ \Hy@DisableOption{pdfcreator}%
+ \Hy@DisableOption{pdfcreationdate}%
+ \Hy@DisableOption{pdfmoddate}%
+ \Hy@DisableOption{pdfproducer}%
+ \Hy@DisableOption{pdfkeywords}}
+\fi
+%
+%</package>
+% \end{macrocode}
+% \Finale
+% \PrintIndex
+% \PrintChanges
+% \endinput