summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/pdfx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-05-13 21:34:47 +0000
committerKarl Berry <karl@freefriends.org>2015-05-13 21:34:47 +0000
commit3c75840c1a14960dc7e45c10220b9763bbe01167 (patch)
treef8bc6060bc66eee048a39bdd9ff1d3a93ba5e2ce /Master/texmf-dist/source/latex/pdfx
parentec29272038a24b651f07358507068b84abfb3c1f (diff)
pdfx (13may15)
git-svn-id: svn://tug.org/texlive/trunk@37386 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/pdfx')
-rw-r--r--Master/texmf-dist/source/latex/pdfx/README40
-rw-r--r--Master/texmf-dist/source/latex/pdfx/manifest.txt93
-rw-r--r--Master/texmf-dist/source/latex/pdfx/pdfx.dtx1559
-rw-r--r--Master/texmf-dist/source/latex/pdfx/pdfx.ins7
-rw-r--r--Master/texmf-dist/source/latex/pdfx/rvdtx.sty5
5 files changed, 1307 insertions, 397 deletions
diff --git a/Master/texmf-dist/source/latex/pdfx/README b/Master/texmf-dist/source/latex/pdfx/README
new file mode 100644
index 00000000000..ae89c524149
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pdfx/README
@@ -0,0 +1,40 @@
+Readme for pdfx package (pdfx.sty)
+
+pdfx.sty is a LaTeX package which helps to create PDF/X and
+PFD/A compliant PDF documents with pdfTeX.
+
+Installation:
+
+Create a directory $TEXMF/tex/latex/pdfx and copy pdfx.sty, *.xmp,
+*.icc, 8bit.def, and glyphtounicode-cmr.tex to this directory. Update
+the file database of your TeX system.
+
+Documentation:
+
+Composite documentation and code is available in src/pdfx.dtx. Run
+TeX/LaTeX on pdfx.ins to extract pdfx.sty from pdfx.dtx. If you
+[pdf]LaTeX pdfx.dtx, you will get pdfx.pdf which is the human readable
+documentation.
+
+A Makefile is provided in the src directory. Following steps will
+create the documentation GNU/Linux or similar operating system:
+
+ make pdf
+ make out
+ make index
+ make changes
+ make pdf
+
+'make out' is for manipulating the bookmarks file to create QUICK
+LINKS in the pdf document.
+
+Licence:
+
+The package is released under LaTeX Project Public Licence.
+
+Authors:
+
+CV Radhakrishnan <cvr@river-valley.org>
+Han The Thanh <thanh@river-valley.org>
+Ross Moore <ross.moore@mq.edu.au>
+Peter Selinger <selinger@mathstat.dal.ca>
diff --git a/Master/texmf-dist/source/latex/pdfx/manifest.txt b/Master/texmf-dist/source/latex/pdfx/manifest.txt
new file mode 100644
index 00000000000..e18735a1928
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pdfx/manifest.txt
@@ -0,0 +1,93 @@
+% \iffalse meta-comment
+%
+% Copyright 2008 CV Radhakrishnan and Han The Thanh
+% Copyright 2015 Ross Moore and Peter Selinger
+%
+% This file is part of the 'pdfx' package.
+% ----------------------------------------
+%
+% It 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.
+%
+% The color profile sRGB_IEC61966-2-1_black_scaled.icc is
+% Copyright 2009 International Color Consortium.
+% It is distributed under the terms given in the file `ICC_LICENSE.txt'.
+%
+% The list of all files belonging to the LaTeX package, 'pdfx.sty' is
+% given in the file `manifest.txt'.
+%
+% \fi
+%
+% CONTENTS
+
+README
+ Readme file
+
+pdfx.sty
+ the main package
+
+glyphtounicode-cmr.tex
+ maps glyphnames in cmr font to Unicode
+
+pdfa.xmp
+ XMP template for PDF/A documents
+
+pdfe.xmp
+ XMP template for PDF/E documents
+
+pdfvt.xmp
+ XMP template for PDF/VT documents
+
+pdfx.xmp
+ XMP template for PDF/X documents
+
+8bit.def
+ custom input encoding
+
+coated_FOGRA39L_argl.icc
+ CMYK color profile
+
+sRGB_IEC61966-2-1_black_scaled.icc
+ RGB color profile
+
+ICC_LICENSE.txt
+ the license for the color profiles
+
+pdfx.pdf
+ documentation in PDF format
+
+sample.tex
+ example TeX document
+
+sample.xmpdata
+ example metadata file
+
+small2e-pdfx.tex
+ example TeX document
+
+small2e-pdfx.xmpdata
+ example metadata file
+
+small2e-pdfx.pdf
+ example pdf document
+
+manifest.txt
+ file list
+
+Directory: src
+
+Makefile
+ make file for compiling documentation
+
+pdfx.dtx
+ main package with driver
+
+pdfx.ins
+ main installer batch file
+
+rvdtx.sty
+ extra package needed to compile documentation
diff --git a/Master/texmf-dist/source/latex/pdfx/pdfx.dtx b/Master/texmf-dist/source/latex/pdfx/pdfx.dtx
index a888096aa3c..debb49866a1 100644
--- a/Master/texmf-dist/source/latex/pdfx/pdfx.dtx
+++ b/Master/texmf-dist/source/latex/pdfx/pdfx.dtx
@@ -2,8 +2,10 @@
%
% File: pdfx.dtx
%
-% Copyright (c) 2008, CV Radhakrishnan <cvr@river-valley.org>,
-% Han The Thanh <thanh@river-valley.org>
+% Copyright (c) 2015, CV Radhakrishnan <cvr@river-valley.org>,
+% Han The Thanh <thanh@river-valley.org>,
+% Ross Moore <ross.moore@mq.edu.au>,
+% Peter Selinger <selinger@mathstat.dal.ca>
%
% This file may be distributed and/or modified under the conditions
% of the LaTeX Project Public License, either version 1.2 of this
@@ -17,7 +19,7 @@
%
% \fi
%
-% \CheckSum{376}
+% \CheckSum{1844}
% \iffalse
%
%<*driver>
@@ -27,7 +29,7 @@
\CodelineIndex
\RecordChanges
\begin{document}
- \DocInput{pdfx.dtx}
+ \DocInput{\jobname.dtx}
\PrintChanges
\PrintIndex
\end{document}
@@ -67,19 +69,36 @@
% \DoNotIndex{\meaning,\newcounter,\next,\or,\par,\renewcommand}
% \DoNotIndex{\renewcommand,\renewenvironment,\stepcounter}
% \DoNotIndex{\Tg,\thepage,\unskip,\write,\advance,\{,\}}
+% \DoNotIndex{\@ifpackageloaded,\@pdfcreationdate,\@pdfcreator}
+% \DoNotIndex{\@pdfmoddate,\AtBeginDocument,\catcode,\DeclareOption}
+% \DoNotIndex{\endinput,\endlinechar,\errmessage,\everyeof,\futurelet}
+% \DoNotIndex{\Hy@DisableOption,\Hy@UseMaketitleInfos,\hypersetup}
+% \DoNotIndex{\inputencoding,\InputIfFileExists,\NeedsTeXFormat}
+% \DoNotIndex{\newif,\noexpand,\obeyspaces,\PackageError,\PDF@FinishDoc}
+% \DoNotIndex{\pdfcatalog,\pdfcreationdate,\pdfgeninterwordspace}
+% \DoNotIndex{\pdfinterwordspace,\pdfinterwordspaceoff,\pdfgentounicode}
+% \DoNotIndex{\pdfinfo,\pdfinterwordspaceon,\pdflastobj,\pdfmapline}
+% \DoNotIndex{\pdfmdfivesum,\pdfminorversion,\pdfobj,\pdfobjcompresslevel}
+% \DoNotIndex{\pdfpageattr,\pdfresetpageorigin,\pdfstringdef}
+% \DoNotIndex{\pdftexbanner,\ProcessOptions,\ProvidesPackage,\RequirePackage}
+% \DoNotIndex{\scantokens,\typeout}
%
% \changes{v1.00}{2008/12/01}{Initial commit to the CVS.}
% \changes{v1.01}{2008/12/10}{glyphtounicode-cmr.tex included with the
% package.}
% \changes{v1.3}{2008/12/01}{Fix copyright in xmp files.}
+% \changes{v1.5.4}{2015/02/28}{Fixed timezone bug; Unicode support; more
+% PDF variants; added color profiles.}
%
-% \title{Generation of PDF/X-1a and PDF/A-1b compliant PDF's
+% \title{Generation of PDF/X and PDF/A compliant PDF's
% with PDF\TeX{} --- \texttt{pdfx.sty}}
-% \date{2008/12/10}
-% \version{1.3}
-% \keywords{\pdf, \pdfx, \pdfa, pdf\TeX, \LaTeX}
-% \author{C.\,V.\,Radhakrishnan {\upshape\small and} \thanh}
-% \contact{\texttt{[cvr,thanh]@river-valley.org}}
+% \date{2015/02/28}
+% \version{1.5.4}
+% \keywords{PDF, PDF/A, PDF/X, pdf\TeX, \LaTeX}
+% \author{C.\,V.\,Radhakrishnan, \thanh, Ross~Moore {\upshape\small
+% and} Peter Selinger}
+% \contact{\texttt{[cvr,thanh]@river-valley.org},
+% \texttt{ross.moore@mq.edu.au}, \texttt{selinger@mathstat.dal.ca}}
%
% \maketitle
%
@@ -87,440 +106,1200 @@
%
% \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. A \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 standards will be
-% included in future.
+% PDF/X and PDF/A are umbrella terms used to denote several ISO
+% standards that define different subsets of the PDF standard. The
+% objective of PDF/X is to facilitate graphics exchange between
+% document creator and printer and therefore, has all requirements
+% related to printing. For instance, in PDF/X, all fonts need to be
+% embedded and all images need to be CMYK or spot colors. PDF/X-2 and
+% PDF/X-3 accept calibrated RGB and CIELAB colors along with all other
+% specifications of PDF/X.
+%
+% 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 achieving this is that 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. A
+% 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 PDF/A.
+%
+% This package currently supports generation of PDF/X and PDF/A
+% compliant documents using \pdftex. Support for additional standards
+% is also included; see the complete list in
+% Section~\ref{ssec-options} below.
%
% \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 mentioned above, 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:
+% \subsection{Options}\label{ssec-options}
+%
+% The package can be loaded with the command:
+% \begin{decl}
+% \defmacro{usepackage}|[<option>]{pdfx}|
+% \end{decl}
+% where the options are as follows.
+%
+% \subsubsection{PDF/A options}
+%
+% PDF/A is an ISO standard intended for long-term archiving of
+% electronic documents. It therefore emphasizes self-containedness and
+% reproducibility, as well as machine readable metadata. The PDF/A
+% standard has three conformance levels ``a'', ``b'', and ``u''. Level
+% ``a'' is the strictest, but is not yet fully implemented by the
+% |pdfx| package. Conformance level ``u'' has the same requirements as
+% level ``b'', but with the additional requirement that all text in
+% the document must have a Unicode mapping. However, the |pdfx|
+% package produces such Unicode mappings even in level ``b'' files.
+% The standard also has three different versions 1, 2, and 3, which
+% were standardized in 2005, 2011, and 2012, respectively. Earlier
+% versions contain a subset of the features of later versions, so for
+% maximum portability, it is preferable to use a lower-numbered
+% version. There is no conformance level ``u'' in version 1 of the
+% standard. For many typical uses of PDF/A, it is sufficient to use
+% PDF/A-1b.
+%
+% \begin{itemize}
+% \item |a-1a|: generate PDF/A-1a. Experimental, not fully implemented.
+% \item |a-1b|: generate PDF/A-1b.
+% \item |a-2a|: generate PDF/A-2a. Experimental, not fully implemented.
+% \item |a-2b|: generate PDF/A-2b.
+% \item |a-2u|: generate PDF/A-2u.
+% \item |a-3a|: generate PDF/A-3a. Experimental, not fully implemented.
+% \item |a-3b|: generate PDF/A-3b.
+% \item |a-3u|: generate PDF/A-3u.
+% \end{itemize}
+%
+% \subsubsection{PDF/E options}
+%
+% PDF/E is an ISO standard intended for documents used in engineering
+% workflows. There is only one version of the PDF/E standard so far,
+% and it is called PDF/E-1.
+%
+% \begin{itemize}
+% \item |e-1|: generate PDF/E-1.
+% \end{itemize}
+%
+% \subsubsection{PDF/VT options}
+%
+% PDF/VT is an ISO standard intended as an exchange format for
+% variable and transactional printing, and is an extension of the
+% PDF/X-4 standard. The standard specifies three PDF/VT conformance
+% levels. Level 1 is for single-file exchange, level 2 is for
+% multi-file exchange, and level 2s is for streamed delivery.
+% Currently, none of the PDF/VT conformance levels are fully
+% implemented by the |pdfx| package.
+%
+% \begin{itemize}
+% \item |vt-1|: generate PDF/VT-1. Experimental, not fully implemented.
+% \item |vt-2|: generate PDF/VT-2. Experimental, not fully implemented.
+% \item |vt-2s|: generate PDF/VT-2s. Experimental, not fully implemented.
+% \end{itemize}
+%
+% \subsubsection{PDF/X options}
+%
+% PDF/X is an ISO standard intended for graphics interchange. It
+% emphasizes printing-related requirements, such as embedded fonts and
+% color profiles. The PDF/X standard has a large number of variants
+% and conformance levels. The basic variants are known as X-1, X-1a,
+% X-3, X-4, and X-5. (Note that there is no X-2 standard, because it
+% was either never published or withdrawn). The PDF/X-1a standard
+% exists in revisions of 2001 and 2003, the PDF/X-3 standard exists in
+% revisions of 2002 and 2003, and the PDF/X-4 and PDF/X-5 standards
+% exist in revisions of 2008 and 2010. Moreover, some of these
+% standards have a ``p'' version, which permits the use of an
+% externally supplied color profile (instead of an embedded one),
+% and/or a ``g'' version, which permits the use of external graphical
+% content. Moreover, PDF/X-5 has an ``n'' version, which extends
+% PDF/X-4p by permitting additional color spaces other than Grayscale,
+% RGB, and CMYK. For many typical uses of PDF/X, it is sufficient to
+% use PDF/X-1a.
+%
+% \begin{itemize}
+% \item |x-1|: generate PDF/X-1.
+% \item |x-1a|: generate PDF/X-1a. Options |x-1a1| and |x-1a3| are
+% also available to specify PDF/X-1a:2001 or PDF/X-1a:2003 explicitly.
+% \item |x-3|: generate PDF/X-3. Options |x-302| and |x-303| are
+% also available to specify PDF/X-3:2002 or PDF/X-3:2003 explicitly.
+% \item |x-4|: generate PDF/X-4. Options |x-408| and |x-410| are
+% also available to specify PDF/X-4:2008 or PDF/X-4:2010 explicitly.
+% \item |x-4p|: generate PDF/X-4p. Options |x-4p08| and |x-4p10| are
+% also available to specify PDF/X-4p:2008 or PDF/X-4p:2010 explicitly.
+% Experimental, not fully implemented.
+% \item |x-5g|: generate PDF/X-5g. Options |x-5g08| and |x-5g10| are
+% also available to specify PDF/X-5g:2008 or PDF/X-5g:2010 explicitly.
+% \item |x-5n|: generate PDF/X-5n. Options |x-5n08| and |x-5n10| are
+% also available to specify PDF/X-5n:2008 or PDF/X-5n:2010
+% explicitly. Experimental, not fully implemented.
+% \item |x-5pg|: generate PDF/X-5pg. Options |x-5pg08| and |x-5pg10| are
+% also available to specify PDF/X-5pg:2008 or PDF/X-5pg:2010 explicitly.
+% Experimental, not fully implemented.
+% \end{itemize}
+%
+% \subsubsection{Other options}
+%
+% These options are experimental and should not normally be used.
+%
+% \begin{itemize}
+% \item |noBOM|: do not generate the optional byte order marker in the
+% embedded XMP metadata. Try this option in case there is an
+% unexplained error involving the |xmpincl| package.
+% \item |pdf13|: use PDF 1.3, overriding the version specified by the
+% applicable standard. This may produce a non-standard-conforming PDF file.
+% \item |pdf14|: use PDF 1.4, overriding the version specified by the
+% applicable standard. This may produce a non-standard-conforming PDF file.
+% \item |pdf15|: use PDF 1.5, overriding the version specified by the
+% applicable standard. This may produce a non-standard-conforming PDF file.
+% \item |pdf16|: use PDF 1.6, overriding the version specified by the
+% applicable standard. This may produce a non-standard-conforming PDF file.
+% \item |pdf17|: use PDF 1.7, overriding the version specified by the
+% applicable standard. This may produce a non-standard-conforming PDF file.
+% \end{itemize}
+%
+% \subsection{Data file for metadata}
+%
+% As mentioned above, standards compliant PDF documents need metadata
+% to be included. The |pdfx| package expects the metadata to be
+% supplied in a special data file called |\jobname.xmpdata|. Here,
+% |\jobname| is usually the basename of the document's main |.tex|
+% file. For example, if your document source is in the file
+% |main.tex|, then the metadata must be in a file called
+% |main.xmpdata|. None of the individual metadata fields are
+% mandatory, but for most documents, it makes sense to define at least
+% the title and the author. Here is an example of a short |.xmpdata|
+% file:
% \begin{verbatim}
-% \Keywords{pdfTeX\sep PDF/X-1a\sep PDF/A-b}
-% \Title{Sample LaTeX input file}
-% \Author{LaTeX project team}
-% \Org{TeX Users Group}
+% \Title{Baking through the ages}
+% \Author{A. Baker\sep C. Kneader}
+% \Keywords{cookies\sep muffins\sep cakes}
+% \Publisher{Baking International}
% \end{verbatim}
-% You may note that the keywords are separated by |\sep| which will
-% expand to \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 modified \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.
+% You may note that multiple authors and keywords have been separated
+% by |\sep|. The |\sep| macro is only permitted in within the
+% |\Author|, |\Keywords|, and |\Publisher| fields.
+%
+% \subsection{List of supported metadata fields}
+%
+% Here is a complete list of user-definable metadata fields currently
+% supported, and their meanings. More may be added in the future.
+% These commands can only be used in the |.xmpdata| file.
+%
+% \subsubsection{General information:}
+%
+% \begin{itemize}
+% \item |\Author|: the document's human author. Separate multiple
+% authors with |\sep|.
+% \item |\Title|: the document's title.
+% \item |\Keywords|: list of keywords, separated with |\sep|.
+% \item |\Subject|: the abstract.
+% \item |\Publisher|: the publisher.
+% \end{itemize}
+%
+% \subsubsection{Copyright information:}
+%
+% \begin{itemize}
+% \item |\Copyright|: a copyright statement.
+% \item |\CopyrightURL|: location of a web page describing the owner
+% and/or rights statement for this document.
+% \item |\Copyrighted|: ``True'' if the document is copyrighted, and
+% ``False'' if it isn't. This is automatically set to ``True'' if either
+% |\Copyright| or |\CopyrightURL| is specified, but can be
+% overridden. For example, if the copyright statement is ``Public
+% Domain'', this should be set to ``False''.
+% \end{itemize}
+%
+% \subsubsection{Publication information:}
+%
+% \begin{itemize}
+% \item |\PublicationType|: The type of publication. If defined, must
+% be one of book, catalog, feed, journal, magazine, manual,
+% newsletter, pamphlet. This is automatically set to ``journal'' if
+% |\Journaltitle| is specified, but can be overridden.
+% \item |\Journaltitle|: The title of the journal in which the
+% document was published.
+% \item |\Journalnumber|: The ISSN for the publication in which the
+% document was published.
+% \item |\Volume|: Journal volume.
+% \item |\Issue|: Journal issue/number.
+% \item |\Firstpage|: First page number of the published version of
+% the document.
+% \item |\Lastpage|: Last page number of the published version of the
+% document.
+% \item |\Doi| : Digital Object Identifier (DOI) for the document,
+% without the leading ``doi:''.
+% \item |\CoverDisplayDate|: Date on the cover of the journal issue,
+% as a human-readable text string.
+% \item |\CoverDate|: Date on the cover of the journal issue, in a
+% format suitable for storing in a database field with a ``date'' data
+% type.
+% \end{itemize}
+%
+% \subsection{Symbols permitted in metadata}
+%
+% Within the metadata, all printable ASCII characters except
+% |\|, |{|, |}|, and |%| represent themselves. Also, all printable
+% Unicode characters from the basic multilingual plane (i.e., up to
+% code point U+FFFF) can be used directly with the UTF-8 encoding.
+% (Please note: encodings other than UTF-8 are not currently supported
+% in the metadata). Consecutive whitespace characters are combined
+% into a single space. Whitespace after a macro such as |\copyright|,
+% |\backslash|, or |\sep| is ignored. Blank lines are not permitted.
+% Moreover, the following markup can be used:
+%
+% \begin{itemize}
+% \item ``|\ |'': a literal space (for example after a macro)
+% \item |\%|: a literal |%|
+% \item |\{|: a literal |{|
+% \item |\}|: a literal |}|
+% \item |\backslash|: a literal backslash ``|\|''
+% \item |\copyright|: the \copyright\ copyright symbol
+% \end{itemize}
+% The macro |\sep| is only permitted within |\Author|, |\Keywords|,
+% and |\Publisher|. It is used to separate multiple authors,
+% keywords, etc.
+%
+% \subsection{Color profiles}
+%
+% Most standards compliant PDF documents require a \emph{color
+% profile} to be embedded in the file. In a nutshell, such a profile
+% determines precisely how the colors used in the document will be
+% rendered when printed to a physical medium. This can be used to
+% ensure that the document will look exactly the same, even when it is
+% printed on different printers, paper types, etc. The inclusion of a
+% color profile is necessary to make the document completely
+% self-contained.
+%
+% Since most \LaTeX\ users are not graphics professionals and are not
+% particularly picky about colors, the |pdfx| package includes default
+% profiles that will be included when nothing else is
+% specified. Therefore, the average user doesn't have to do anything
+% special about color.
+%
+% For users who have a specific color profile they wish to use, it is
+% possible to do so by including a |\setRGBcolorprofile| or
+% |\setCMYKcolorprofile| command in the |.xmpdata| file. Note that
+% PDF/A and PDF/E require an RGB color profile, and PDF/X and PDF/VT
+% require a CMYK color profile. Use the following commands to specify
+% an RGB or CMYK color profile, respectively:
+%
+% \begin{decl}
+% \defmacro{setRGBcolorprofile}\marg{filename}\marg{identifier}\marg{info
+% string}\marg{registry URL}
+% \\[1ex]
+% \defmacro{setCMYKcolorprofile}\marg{filename}\marg{output
+% intent}\marg{identifier}\marg{registry URL}
+% \end{decl}
+% Within the arguments of these macros, the characters |<|, |>|, |&|,
+% |^|, |_|, |#|, |$|, and |~| can be used as themselves, but
+% |%| must be escaped as |\%|. The defaults are:
+% \begin{verbatim}
+% \setRGBcolorprofile{sRGB_IEC61966-2-1_black_scaled.icc}
+% {sRGB_IEC61966-2-1_black_scaled}
+% {sRGB IEC61966 v2.1 with black scaling}
+% {http://www.color.org}
+%
+% \setCMYKcolorprofile{coated_FOGRA39L_argl.icc}
+% {Coated FOGRA39}
+% {FOGRA39 (ISO Coated v2 300\% (ECI))}
+% {http://www.argyllcms.com/}
+% \end{verbatim}
+%
+% Some color profile files may be obtained from the International
+% Color Consortium. Please take a look at
+% \url{http://www.color.org/iccprofile.xalter}.
+%
+% \subsection{Notes on the internal representation of metadata}
+%
+% Within the PDF file, metadata is deposited in two places: some data
+% goes into the native PDF |/Info| dictionary, and some data goes into
+% an XMP packet stored separately within the file. XMP is Adobe's
+% Extensible Metadata Platform, and is an XML-based format. See
+% \href{http://www.adobe.com/devnet/xmp/}{Adobe XMP Development
+% Center} for more exhaustive information about XMP. An XMP Toolkit
+% SDK which supports the GNU/Linux, Macintosh and Windows operating
+% systems is also provided under modified BSD licence.
+%
+% Some of the metadata, such as the author, title, and keywords, are
+% stored {\bf both} in the XMP packet and in the |/Info|
+% dictionary. For the resulting file to be standard compliant, the two
+% copies of the data must be identical. All of this is taken care of
+% automatically by the |pdfx| package.
+%
+% In principle, users can resort to alternate ways to create an XMP
+% file for inclusion in PDF. In this case, users should create a file
+% |pdfa.xmp| or |pdfx.xmp| (etc., depending on the PDF flavor)
+% containing the pre-defined data. However, this is an error prone
+% process and is not recommended for most users. If there is a
+% particular field of metadata that you need and that is not currently
+% supported, please contact the authors.
+%
+% |pdfx| makes use of the |xmpincl| package to include |xmp| data into
+% the PDF. The documentation of |xmpincl| package may help interested
+% users to understand the process of |xmp| data inclusion.
+%
+% \subsection{Tutorials and technical notes}
+%
+% A tutorial with step-by-step instructions for generating PDF/A files
+% can be found at:
+% \url{http://www.mathstat.dal.ca/~selinger/pdfa/}.
+%
+% Some technical notes about production problems the authors have
+% encountered while generating PDF/A compliant documents are available
+% here:
+% \url{http://support.river-valley.com/wiki/index.php?title=Generating_PDF/A_compliant_PDFs_from_pdftex}.
+%
+%
+%
+% \section{Installing}
+%
+% The file |pdfx.dtx| is a composite document of program code and
+% documentation in \LaTeX{} format in the tradition of \emph{literate
+% programming}. To get the documentation that you are reading now,
+% run (\textsc{pdf})\LaTeX{} on the file |pdfx.dtx|. Or better, use
+% the included |Makefile|, which will also regenerate the index.
+%
+% To install the package, first extract the program code, i.e., the
+% file |pdfx.sty|, by running \LaTeX{} or \TeX{} on the file
+% |pdfx.ins|. Create a directory named |pdfx| under |$TEXMF/tex/latex|
+% and copy the files |pdfx.sty|, |8bit.def|, |glyphtounicode-cmr.tex|,
+% as well as the |*.icc| and |*.xmp| files, to it. Then update \TeX's
+% file database using the appropriate command for your distribution and
+% operating system (such as |texhash| or |mktexlsr|, or similar).
%
% \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 |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 the 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.
-% \item |glyphtounicode-cmr.tex| --- glyph names in cmr font to
-% corresponding Unicode.
-% \end{enumerate}
-% A directory named |pdfx| may be created under |$TEXMF/tex/latex| and
-% all |*.sty|, |*.xmp| and |glyphtounicode-cmr.tex| may be moved to
-% the same. \TeX's file database should then be updated by a 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}
+% The following files are included in the archive:
%
-% \subsection{Useful production notes}
+% \subsubsection{Package files}
%
-% 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}.
+% \begin{itemize}
+% \item |pdfx.sty| --- main package file generated from |pdfx.dtx|.
+% \item |pdfa.xmp| --- specimen |xmp| template for PDF/A.
+% \item |pdfe.xmp| --- specimen |xmp| template for PDF/E.
+% \item |pdfvt.xmp| --- specimen |xmp| template for PDF/VT.
+% \item |pdfx.xmp| --- specimen |xmp| template for PDF/X.
+% \item |8bit.def| --- custom input encoding.
+% \item |glyphtounicode-cmr.tex| --- maps glyph names to corresponding
+% Unicode for Computer Modern and other \TeX-specific fonts.
+% \item |coated_FOGRA39L_argl.icc| --- a freely distributable CMYK
+% color profile.
+% \item |sRGB_IEC61966-2-1_black_scaled.icc| --- a freely
+% distributable RGB color profile.
+% \item |ICC_LICENSE.txt| --- the license for the color profiles.
+% \end{itemize}
+%
+% \subsubsection{Documentation}
+%
+% \begin{itemize}
+% \item |README| --- Readme file.
+% \item |manifest.txt| --- file list.
+% \item |sample.tex|, |sample.xmpdata| --- a sample file with sample
+% metadata.
+% \item |small2e-pdfx.tex|, |small2e-pdfx.xmpdata| --- another sample
+% file with sample metadata.
+% \end{itemize}
+%
+% \subsubsection{Sources}
+%
+% \begin{itemize}
+% \item |src/pdfx.dtx| --- composite package and documentation.
+% \item |src/pdfx.ins| --- installer batch file.
+% \item |src/rvdtx.sty| --- used by |pdfx.dtx|.
+% \item |src/Makefile| --- a Makefile for building the documentation.
+% \end{itemize}
%
% \subsection{Miscellaneous information}
%
-% The package is released under the \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}.
+% The package is released under the \LaTeX{} Project Public
+% Licence. Bug reports, suggestions, feature requests, etc., may be
+% sent to the original 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},
+% or to the more recent contributors at
+% \href{mailto:ross.moore@mq.edu.au}{\ttfamily ross.moore@mq.edu.au}
+% and/or
+% \href{mailto:selinger@mathstat.dal.ca}{\ttfamily selinger@mathstat.dal.ca}.
%
% \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}
+% \iffalse
%<*package>
-%
-% $Id: pdfx.dtx,v 1.2 2008/12/10 13:51:10 cvr Exp cvr $
-%
+% \fi
+% \begin{macrocode}
+ \@ifpackageloaded{pdfxmult}{%
+ \PackageError{pdfx}%
+ {^^JThis package may not be used in conjunction with the \space pdfxmult \space package}%
+ {Type \space x <return> \space to exit; or just \space <return> \space to continue without this package.}%
+ \expandafter\let\csname opt@pdfx.sty\endcsname\@empty\endinput
+ }{}%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pdfx}
- [2008/12/10 v1.2 PDF/X and PDF/A support (CVR/HTH)]
+ [2015/02/17 v1.5.3 PDF/X and PDF/A support (CVR/HTH/RRM/PS)]
+
+\newif\ifpdfx@noBOM \pdfx@noBOMfalse % use a BOM in the XMP packet
+\newif\ifpdfx@x \pdfx@xfalse % PDF/X mode
+\newif\ifpdfx@e \pdfx@efalse % PDF/E mode; not implemented yet
+\newif\ifpdfx@vt \pdfx@vtfalse % PDF/VT mode, extension of PDF/X
+\newif\ifno@iccprofile % used with PDF/X-4p and PDF/X-5pg
-\newif\ifpdfxonea \pdfxoneafalse
-\newif\ifpdfaoneb \pdfaonebfalse
+%% Not all combinations of the following parameters are meaningful.
+\def\xmp@Part{1} % PDF/A part: 1, 2, or 3
+\def\xmp@Conformance{B} % Conformance level: A, B, or U
+\def\xmp@ReleaseDate{2005} % 2001 for PDF/X-1, 2005 for PDF/A-1,
+ % 2010 for PDF/A-2, 2012 for PDF/A-3.
-\DeclareOption{a-1b}{\global\pdfaonebtrue}
-\DeclareOption{x-1a}{\global\pdfxoneatrue}
+%% default is to create PDF/A-1b
+%% options can change this for PDF/X or higher levels of PDF/A
+\DeclareOption{a-1a}{\global\pdfx@xfalse\def\xmp@Part{1}\def\xmp@Conformance{A}\def\xmp@ReleaseDate{2005}}
+\DeclareOption{a-1b}{\global\pdfx@xfalse\def\xmp@Part{1}\def\xmp@Conformance{B}\def\xmp@ReleaseDate{2005}}
+\DeclareOption{a-2a}{\global\pdfx@xfalse\def\xmp@Part{2}\def\xmp@Conformance{A}\def\xmp@ReleaseDate{2010}}
+\DeclareOption{a-2b}{\global\pdfx@xfalse\def\xmp@Part{2}\def\xmp@Conformance{B}\def\xmp@ReleaseDate{2010}}
+\DeclareOption{a-2u}{\global\pdfx@xfalse\def\xmp@Part{2}\def\xmp@Conformance{U}\def\xmp@ReleaseDate{2010}}
+\DeclareOption{a-3a}{\global\pdfx@xfalse\def\xmp@Part{3}\def\xmp@Conformance{A}\def\xmp@ReleaseDate{2012}}
+\DeclareOption{a-3b}{\global\pdfx@xfalse\def\xmp@Part{3}\def\xmp@Conformance{B}\def\xmp@ReleaseDate{2012}}
+\DeclareOption{a-3u}{\global\pdfx@xfalse\def\xmp@Part{3}\def\xmp@Conformance{U}\def\xmp@ReleaseDate{2012}}
+\DeclareOption{x-1}{\global\pdfx@xtrue\def\xmp@Part{1}\def\xmp@Conformance{a}\def\xmp@ReleaseDate{2001}\global\pdfminorversion=3 }
+\DeclareOption{x-1a}{\global\pdfx@xtrue\def\xmp@Part{1}\def\xmp@Conformance{a}\def\xmp@ReleaseDate{2003}\global\pdfminorversion=3 }
+\DeclareOption{x-1a1}{\global\pdfx@xtrue\def\xmp@Part{1}\def\xmp@Conformance{a}\def\xmp@ReleaseDate{2001}\global\pdfminorversion=3 }
+\DeclareOption{x-1a3}{\global\pdfx@xtrue\def\xmp@Part{1}\def\xmp@Conformance{a}\def\xmp@ReleaseDate{2003}\global\pdfminorversion=3 }
+\DeclareOption{x-2}{\global\pdfx@xtrue\def\xmp@Part{2}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2002}\global\pdfminorversion=4 }
+\DeclareOption{x-3}{\global\pdfx@xtrue\def\xmp@Part{3}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2002}\global\pdfminorversion=3 }
+\DeclareOption{x-302}{\global\pdfx@xtrue\def\xmp@Part{3}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2002}\global\pdfminorversion=3 }
+\DeclareOption{x-303}{\global\pdfx@xtrue\def\xmp@Part{3}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2003}\global\pdfminorversion=4 }
+%%% Later versions, yet to be fully implemented
+\DeclareOption{x-4}{\global\pdfx@xtrue\def\xmp@Part{4}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-4p}{\global\pdfx@xtrue\global\no@iccprofiletrue
+ \def\xmp@Part{4}\def\xmp@Conformance{p}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-408}{\global\pdfx@xtrue\def\xmp@Part{4}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-410}{\global\pdfx@xtrue\def\xmp@Part{4}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{x-4p08}{\global\pdfx@xtrue\global\no@iccprofiletrue
+ \def\xmp@Part{4}\def\xmp@Conformance{p}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-4p10}{\global\pdfx@xtrue\global\no@iccprofiletrue
+ \def\xmp@Part{4}\def\xmp@Conformance{p}\def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{x-5}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-5g}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{g}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-5n}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{n}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-5pg}{\global\pdfx@xtrue\global\no@iccprofiletrue
+ \def\xmp@Part{5}\def\xmp@Conformance{pg}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-508}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-5g08}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{g}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-5n08}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{n}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-5pg08}{\global\pdfx@xtrue\global\no@iccprofiletrue
+ \def\xmp@Part{5}\def\xmp@Conformance{pg}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{x-510}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{x-5g10}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{g}\def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{x-5n10}{\global\pdfx@xtrue\def\xmp@Part{5}\def\xmp@Conformance{n}\def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{x-5pg10}{\global\pdfx@xtrue\global\no@iccprofiletrue
+ \def\xmp@Part{5}\def\xmp@Conformance{pg}\def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{e-1}{\global\pdfx@xfalse\global\pdfx@etrue
+ \def\xmp@Part{1}\def\xmp@Conformance{}\def\xmp@ReleaseDate{2008}\global\pdfminorversion=6 }
+\DeclareOption{vt-1}{\global\pdfx@xtrue\global\pdfx@vttrue
+ \def\xmp@Part{4}\def\xmp@vtPart{1}\def\xmp@Conformance{}\def\xmp@vtConformance{}%
+ \def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{vt-2}{\global\pdfx@xtrue\global\pdfx@vttrue
+ \def\xmp@Part{4}\def\xmp@vtPart{2}\def\xmp@Conformance{}\def\xmp@vtConformance{}%
+ \def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+\DeclareOption{vt-2s}{\global\pdfx@xtrue\global\pdfx@vttrue
+ \def\xmp@Part{5}\def\xmp@vtPart{2}\def\xmp@Conformance{pg}\def\xmp@vtConformance{s}%
+ \def\xmp@ReleaseDate{2010}\global\pdfminorversion=6 }
+
+%% extra options to alter the PDF minor version, in case needed in special circumstances
+\DeclareOption{pdf13}{\global\pdfminorversion=3 }
+\DeclareOption{pdf14}{\global\pdfminorversion=4 }
+\DeclareOption{pdf15}{\global\pdfminorversion=5 }
+\DeclareOption{pdf16}{\global\pdfminorversion=6 }
+\DeclareOption{pdf17}{\global\pdfminorversion=7 }
+
+%% inhibits writing the XMP byte-order marker
+\DeclareOption{noBOM}{\pdfx@noBOMtrue}
+
+\pdfminorversion=4 % assumed for PDF/A ; options may change this for PDF/X
+\expandafter\ifx\csname pdfresetpageorigin\endcsname\relax\else
+ \pdfresetpageorigin=0
+\fi
\ProcessOptions
-\ifpdfxonea
- \pdfminorversion=3
+{\endlinechar=-1
+ \everyeof{\noexpand}%
+ \xdef\pdfx@bannerstring{\expandafter\scantokens\expandafter{\pdftexbanner}}
+}%
+\def\pdfx@testbannerstr{This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/dev) kpathsea version 6.2.0dev}%
+\ifx\pdfx@bannerstring\pdfx@testbannerstr
+ \typeout{This version of pdfTeX cannot write out upper-range character bytes, 128-255.}%
+ \typeout{Any UTF-8 Unicode characters in the Metadata will not be written correctly.}%
+ \typeout{Please update to a more stable version of pdfTeX.^^J}%
+ \pdfx@noBOMtrue
+\fi
+
+\ifpdfx@x
+ \pdfobjcompresslevel=0 \relax
+ \expandafter\ifx\csname pdfinterwordspaceoff\endcsname\relax\else
+ \pdfinterwordspaceoff
+ \let\pdfinterwordspaceon\pdfinterwordspaceoff
+ \let\pdfinterwordspace\relax
+ \fi
+ \expandafter\ifx\csname pdfgeninterwordspace\endcsname\relax\else
+ \pdfgeninterwordspace=0 \relax
+ \fi
\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\sep{</rdf:li><rdf:li>}
-\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}
+\ifnum\pdfminorversion >3 \relax
+ \pdfmapline{+dummy-space <dummy-space.pfb}
+ \expandafter\ifx\csname pdfgeninterwordspace\endcsname\relax\else
+ \pdfgeninterwordspace=1 \relax
+ \fi
+\fi
+\ifpdfx@x
+ \@ifpackageloaded{hyperref}{%
+ \hypersetup{draft,pdftex,pdfpagemode=UseNone,bookmarks=false,pdfversion=1.\the\pdfminorversion]}
+ }{%
+ \RequirePackage[draft,pdftex,pdfpagemode=UseNone,bookmarks=false,pdfversion=1.\the\pdfminorversion]{hyperref}
+ }%
+\else
+ \ifpdfx@e
+ \@ifpackageloaded{hyperref}{%
+ \hypersetup{draft,pdftex,pdfpagemode=UseNone,bookmarks=false,pdfversion=1.\the\pdfminorversion]}
+ }{%
+ \RequirePackage[draft,pdftex,pdfpagemode=UseNone,bookmarks=false,pdfversion=1.\the\pdfminorversion]{hyperref}
+ }%
+ \else
+ \@ifpackageloaded{hyperref}{%
+ \hypersetup{pdftex,pdfa}%
+ }{%
+ \RequirePackage[pdftex,pdfa]{hyperref}
+ }%
+\fi\fi
+\hypersetup{pdfencoding=unicode}
+
+\RequirePackage{inputenc}
+
+%%----------------------------------------------------------------------
+%% Macros for reading XMP data with special catcodes. Usage:
+%%
+%% \xmp@parse{continuation}{data}
+%%
+%% The effect is to read the data with special catcodes: '<', '>', and
+%% '&' are "active", and '^', '_', '#', '$', '~' are "other". The data
+%% is then bound to the locally scoped name \@this, and the
+%% continuation is called.
+\def\xmp@parse#1{%
+ \begingroup
+ \catcode`\<=13\catcode`\>=13\catcode`\&=13\catcode`\^=12
+ \catcode`\_=12\catcode`\#=12\catcode`\$=12\catcode`\~=12
+ \xmp@doparse{#1}%
}
-\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 [ <<
+\def\xmp@doparse#1#2{%
+ \def\@this{#2}#1%
+ \endgroup%
+}
+
+%%----------------------------------------------------------------------
+%% Local commands. They are only brought into scope during the reading
+%% of xmpdata.
+\def\pdfx@localcommands{%
+ \def\Title{\xmp@parse{\global\let\xmp@Title\@this}}%
+ \def\Author{\xmp@parse{\global\let\xmp@Author\@this}}%
+ \def\Keywords{\xmp@parse{\global\let\xmp@Keywords\@this}}%
+ \def\Subject{\xmp@parse{\global\let\xmp@Subject\@this}}%
+ \def\CreatorTool{\xmp@parse{\global\let\xmp@CreatorTool\@this}}%
+ \def\Producer{\xmp@parse{\global\let\xmp@Producer\@this}}%
+ \def\Volume{\xmp@parse{\global\let\xmp@Volume\@this}}%
+ \def\Issue{\xmp@parse{\global\let\xmp@Issue\@this}}%
+ \def\CoverDisplayDate{\xmp@parse{\global\let\xmp@CoverDisplayDate\@this}}%
+ \def\CoverDate{\xmp@parse{\global\let\xmp@CoverDate\@this}}%
+ \def\Copyright{\xmp@parse{\global\let\xmp@Copyright\@this%
+ \ifx\xmp@Copyrighted\@empty\gdef\xmp@Copyrighted{True}\fi}}%
+ \def\CopyrightURL{\xmp@parse{\global\let\xmp@CopyrightURL\@this%
+ \ifx\xmp@Copyrighted\@empty\gdef\xmp@Copyrighted{True}\fi}}%
+ \def\Copyrighted{\xmp@parse{\global\let\xmp@Copyrighted\@this}}%
+ \def\Doi{\xmp@parse{\global\let\xmp@Doi\@this}}%
+ \def\Lastpage{\xmp@parse{\global\let\xmp@Lastpage\@this}}%
+ \def\Firstpage{\xmp@parse{\global\let\xmp@Firstpage\@this}}%
+ \def\PublicationType{\xmp@parse{\global\let\xmp@PublicationType\@this}}%
+ \def\Journaltitle{\xmp@parse{\global\let\xmp@Journaltitle\@this%
+ \ifx\xmp@PublicationType\@empty\gdef\xmp@PublicationType{journal}\fi}}%
+ \def\Journalnumber{\xmp@parse{\global\let\xmp@Journalnumber\@this}}%
+ \def\Publisher{\xmp@parse{\global\let\xmp@Publisher\@this}}%
+ \def\AuthoritativeDomain{\xmp@parse{\global\let\xmp@AuthoritativeDomain\@this}}%
+ % some aliases for backward compatibility:
+ \let\Creator\CreatorTool%
+ \let\Org\Publisher%
+ \let\WebStatement\CopyrightURL%
+ % user-level commands for color profiles:
+ \let\setRGBcolorprofile\pdfx@setRGBcolorprofile%
+ \let\setCMYKcolorprofile\pdfx@setCMYKcolorprofile%
+ \let\setGRAYcolorprofile\pdfx@setGRAYcolorprofile%
+}
+
+%%----------------------------------------------------------------------
+%% Defaults
+
+\def\xmp@Producer{pdfTeX}
+\edef\xmp@CreatorTool{\@pdfcreator}
+
+\global\let\xmp@Title\@empty
+\global\let\xmp@Author\@empty
+\global\let\xmp@Keywords\@empty
+\global\let\xmp@Subject\@empty
+\global\let\xmp@Volume\@empty
+\global\let\xmp@Issue\@empty
+\global\let\xmp@CoverDisplayDate\@empty
+\global\let\xmp@CoverDate\@empty
+\global\let\xmp@Copyright\@empty
+\global\let\xmp@CopyrightURL\@empty
+\global\let\xmp@Copyrighted\@empty
+\global\let\xmp@Doi\@empty
+\global\let\xmp@Lastpage\@empty
+\global\let\xmp@Firstpage\@empty
+\global\let\xmp@PublicationType\@empty
+\global\let\xmp@Journaltitle\@empty
+\global\let\xmp@Journalnumber\@empty
+\global\let\xmp@Publisher\@empty
+\global\let\xmp@AuthoritativeDomain\@empty
+
+%%----------------------------------------------------------------------
+%% The following characters and markup can be used within the XMP data
+%% defined by \Author, \Title, and so on.
+%%
+%% * All printable non-whitespace ASCII characters except
+%% '%', '{', '}', '\' can be used as themselves.
+%%
+%% * All printable non-whitespace UTF-8 encoded Unicode characters
+%% from the basic multilingual plane can be used as themselves.
+%%
+%% * As usual, consecutive whitespace characters are contracted to a
+%% single space. Whitespace after a macro such as \copyright is
+%% ignored. Blank lines are not permitted.
+%%
+%% * The following markup can be used:
+%% '\ ' - a literal space (for example after a macro)
+%% \% - a literal '%'
+%% \{ - a literal '{'
+%% \} - a literal '}'
+%% \backslash - a literal '\'
+%% \copyright - the (c) copyright symbol
+%%
+%% \sep - only permitted within \Author, \Keywords, \Publisher.
+%%
+%% * For backward compatibility, \& and \TextCopyright are also
+%% provided. Their use is deprecated.
+
+%%----------------------------------------------------------------------
+%% The macro \pdfx@actives binds the active characters
+%% '&', '<', and '>' to \pdfx@amp, \pdfx@lt, and \pdfx@gt,
+%% respectively, without actually making them active.
+\begingroup
+ \catcode`\<=13
+ \catcode`\>=13
+ \catcode`\&=13
+ \gdef\pdfx@actives{
+ \def&{\pdfx@amp}
+ \def<{\pdfx@lt}
+ \def>{\pdfx@gt}
+ }
+\endgroup
+
+%%----------------------------------------------------------------------
+%% Markup bindings to be used during XMP generation.
+
+{\obeyspaces\gdef\pdfx@sep{</rdf:li>^^J <rdf:li>}}
+
+\def\pdfx@xmpmarkup{%
+ \pdfx@actives%
+ \edef\@amp{\expandafter\@gobble\string\&}%
+ \edef\@hash{\expandafter\@gobble\string\#}%
+ \edef\ {\expandafter\@gobble\string\ }%
+ \edef\%{\expandafter\@gobble\string\%}%
+ \edef\{{\expandafter\@gobble\string\{}%
+ \edef\}{\expandafter\@gobble\string\}}%
+ \edef\backslash{\expandafter\@gobble\string\\}%
+ \def\@unicode##1{\@amp\@hash x##1;}%
+ \def\pdfx@amp{\@unicode{0026}}%
+ \def\pdfx@lt{\@unicode{003c}}%
+ \def\pdfx@gt{\@unicode{003e}}%
+ \def\copyright{\@unicode{00A9}}%
+ \let\&\pdfx@amp % for backward compatibility
+ \let\TextCopyright\copyright % for backward compatibility
+ \let\sep\pdfx@sep%
+}
+
+%%----------------------------------------------------------------------
+%% Markup bindings to be used during PDF string generation.
+
+\def\pdfx@pdfmarkup{%
+ \pdfx@actives%
+ \edef\%{\expandafter\@gobble\string\%}%
+ \edef\{{\expandafter\@gobble\string\{}%
+ \edef\}{\expandafter\@gobble\string\}}%
+ \edef\pdfx@backslash{\expandafter\@gobble\string\\}%
+ \def\backslash{\pdfx@backslash000\pdfx@backslash134}%
+ \edef\pdfx@amp{\expandafter\@gobble\string\&}%
+ \edef\pdfx@lt{\expandafter\@gobble\string\<}%
+ \edef\pdfx@gt{\expandafter\@gobble\string\>}%
+ \let\TextCopyright\copyright % for backward compatibility
+ \def\sep{, }%
+ % Note: '\ ', \&, \copyright are already predefined by hyperref.
+}
+
+%%----------------------------------------------------------------------
+\def\pdfx@findUUID#1{\edef\pdfx@tmpstring{\pdfmdfivesum{#1}}
+ \expandafter\pdfx@eightofnine\pdfx@tmpstring\end}
+\def\pdfx@eightofnine#1#2#3#4#5#6#7#8#9\end{%
+ \xdef\pdfx@eightchars{#1#2#3#4#5#6#7#8}
+ \pdfx@fouroffive#9\end}
+\def\pdfx@fouroffive#1#2#3#4#5\end{\xdef\pdfx@ffourchars{#1#2#3#4}
+ \pdfx@sfouroffive#5\end}
+\def\pdfx@sfouroffive#1#2#3#4#5\end{\xdef\pdfx@sfourchars{#1#2#3#4}
+ \pdfx@tfouroffive#5\end}
+\def\pdfx@tfouroffive#1#2#3#4#5\end{\xdef\pdfx@tfourchars{#1#2#3#4}
+ \xdef\pdfx@laststring{#5}}
+
+\def\pdfx@uuid{\pdfx@eightchars-%
+ \pdfx@ffourchars-%
+ \pdfx@sfourchars-%
+ \pdfx@tfourchars-%
+ \pdfx@laststring}
+
+\pdfx@findUUID{\jobname.pdf}
+\edef\xmp@docid{\pdfx@uuid}
+\pdfx@findUUID{\pdfcreationdate}
+\edef\xmp@instid{\pdfx@uuid}
+
+%%----------------------------------------------------------------------
+%% ----- Color Profiles -------
+%% Define how to specify the profile, so the default
+%% can be over-ridden in the .xmpdata file.
+
+%% The user-level macros are only brought into scope during the reading
+%% of xmpdata.
+%%
+%% Usage:
+%% \setRGBcolorprofile{<filename>}{<identifier>}{<info string>}{<registry URL>}
+%% \setCMYKcolorprofile{<filename>}{<output intent>}{<identifier>}{<registry URL>}
+%% \setGRAYcolorprofile{<filename>}{<output intent>}{<identifier>}{<registry URL>}
+%%
+%% Within the arguments of each macro, the characters '<', '>', '&',
+%% '^', '_', '#', '$', and '~' can be used as themselves, but
+%% '%' must be escaped as '\%'.
+%%
+%% Note:
+%% * RGB profile is used with PDF/A and PDF/E files.
+%% * CMYK profile is used with PDF/X and PDF/VT files.
+%% * GRAY profile is currently unused.
+\def\pdfx@profilecatcodes{%
+ \catcode`\<=12\catcode`\>=12\catcode`\&=12\catcode`\^=12
+ \catcode`\_=12\catcode`\#=12\catcode`\$=12\catcode`\~=12
+ \edef\%{\expandafter\@gobble\string\%}%
+}
+\def\pdfx@setRGBcolorprofile{%
+ \begingroup
+ \pdfx@profilecatcodes
+ \pdfx@dosetRGBcolorprofile}
+\def\pdfx@dosetRGBcolorprofile#1#2#3#4{%
+ \xdef\pdfx@rgb@profile{#1}% valid file name
+ \xdef\pdfx@rgb@identifier{#2}%
+ \xdef\pdfx@rgb@info{#3}%
+ \pdfstringdef\pdfx@rgb@registry{#4}% valid URL
+ \endgroup}% closes-off \pdfx@setRGBcolorprofile
+%%
+\def\pdfx@setCMYKcolorprofile{%
+ \begingroup
+ \pdfx@profilecatcodes
+ \pdfx@dosetCMYKcolorprofile}
+\def\pdfx@dosetCMYKcolorprofile#1#2#3#4{%
+ \xdef\pdfx@cmyk@profile{#1}% valid file name
+ \pdfstringdef\pdfx@cmyk@intent{#2}% color intent
+ \pdfstringdef\pdfx@cmyk@identifier{#3}% text string identifier
+ \pdfstringdef\pdfx@cmyk@registry{#4}% valid URL
+ \endgroup}% closes-off \pdfx@setCMYKcolorprofile
+%%
+\def\pdfx@setGRAYcolorprofile{%
+ \begingroup
+ \pdfx@profilecatcodes
+ \pdfx@dosetGRAYcolorprofile}
+\def\pdfx@dosetGRAYcolorprofile#1#2#3#4{%
+ \xdef\pdfx@gray@profile{#1}% valid file name
+ \xdef\pdfx@gray@intent{#2}%
+ \xdef\pdfx@gray@identifier{#3}%
+ \pdfstringdef\pdfx@gray@registry{#4}% valid URL
+ \endgroup}% closes-off \pdfx@setGRAYcolorprofile
+%%----------------------------------------------------------------------
+%% default color profiles
+\pdfx@setRGBcolorprofile{sRGB_IEC61966-2-1_black_scaled.icc}
+ {sRGB_IEC61966-2-1_black_scaled}
+ {sRGB IEC61966 v2.1 with black scaling}
+ {http://www.color.org}
+\pdfx@setCMYKcolorprofile{coated_FOGRA39L_argl.icc}
+ {Coated FOGRA39}
+ {FOGRA39 (ISO Coated v2 300\% (ECI))}
+ {http://www.argyllcms.com/}
+\pdfx@setGRAYcolorprofile{Gray_linear.icc}
+ {}
+ {Custom}
+ {http://www.freedesktop.org/wiki/OpenIcc}
+%%----------------------------------------------------------------------
+%% License for the file sRGB_IEC61966-2-1_black_scaled.icc :
+%%
+%% Copyright International Color Consortium, 2009 -- http://www.color.org/
+%%
+%% It is hereby acknowledged that the file "sRGB_IEC61966-2-1_black_scaled.icc"
+%% is provided "AS IS" WITH NO EXPRESS OR IMPLIED WARRANTY.
+%%
+%% Licensing
+%%
+%% This profile is made available by the International Color Consortium,
+%% and may be copied, distributed, embedded, made, used, and sold without
+%% restriction. Altered versions of this profile shall have the original
+%% identification and copyright information removed and shall not be
+%% misrepresented as the original profile.
+%%
+%% Terms of use
+%%
+%% To anyone who acknowledges that the file "sRGB_IEC61966-2-1_black_scaled.icc"
+%% is provided "AS IS" WITH NO EXPRESS OR IMPLIED WARRANTY, permission
+%% to use, copy and distribute these file for any purpose is hereby
+%% granted without fee, provided that the file is not changed including
+%% the ICC copyright notice tag, and that the name of ICC shall not be
+%% used in advertising or publicity pertaining to distribution of the
+%% software without specific, written prior permission. ICC makes no
+%% representations about the suitability of this software for any
+%% purpose.
+%%
+%%----------------------------------------------------------------------
+%% License for the file coated_FOGRA39L_argl.icc :
+%%
+%% The zlib/libpng License
+%%
+%% Copyright (c) 2008 Kai-Uwe Behrmann
+%%
+%% This software is provided 'as-is', without any express or implied
+%% warranty. In no event will the authors be held liable for any damages
+%% arising from the use of this software.
+%%
+%% Permission is granted to anyone to use this software for any purpose,
+%% including commercial applications, and to alter it and redistribute
+%% it freely, subject to the following restrictions:
+%%
+%% 1. The origin of this software must not be misrepresented; you
+%% must not claim that you wrote the original software. If you use
+%% this software in a product, an acknowledgment in the product
+%% documentation would be appreciated but is not required.
+%%
+%% 2. Altered source versions must be plainly marked as such, and
+%% must not be misrepresented as being the original software.
+%%
+%% 3. This notice may not be removed or altered from any source
+%% distribution.
+%%----------------------------------------------------------------------
+
+\begingroup
+ \inputencoding{8bit}%
+ \makeatletter
+ \pdfx@localcommands
+ \InputIfFileExists{\jobname.xmpdata}%
+ {\typeout{**pdfx: Metadata file \jobname.xmpdata read successfully.}}%
+ {\typeout{**pdfx: No file \jobname.xmpdata . Metadata will be incomplete!}}
+\endgroup
+%% ----------------------------------------------------------------------
+\begingroup
+\ifpdfx@x % PDF/X needs a CMYK color profile for printing
+ \def\0{\string\0}
+ \catcode`\_ 12
+ \ifno@iccprofile % PDF/X-4p and PDF/X-5pg
+ \immediate\pdfobj {<</FS /URL /F (http://www.color.org/registry/profiles/Coated_Fogra39L_VIGC_300.icc)>>}
+ \edef\OBJ@URLs{\the\pdflastobj}%
+ \xdef\pdfx@cmyk@intent{Coated_Fogra39L_VIGC_300}%
+ \xdef\pdfx@cmyk@identifier{Coated_Fogra39L_VIGC_300.icc}%
+ \immediate\pdfobj {<<%
+ /CheckSum <5449c505618a9b6c38634b4708ae9e37>^^J% d5f0714cd9d6092b6ac93b625f5d8a0c>%
+ /ICCVersion (\004\002\000\000)% 4.2.0.0
+ /ProfileCS (CMYK)^^J%
+ /ProfileName (\pdfx@cmyk@identifier)^^J%
+ /URLs [\OBJ@URLs\space 0 R ]
+ >>} %
+ \edef\OBJ@ICC{\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}
+ /OutputCondition (\pdfx@cmyk@intent)%
+ /OutputConditionIdentifier (\pdfx@cmyk@identifier)%
+ /RegistryName(\pdfx@cmyk@registry)
+ % extra dictionary required for PDF/X-4p and PDF/X-5pg
+ /DestOutputProfileRef \OBJ@ICC\space 0 R
+ >> ]}%
+ \else % PDF/X-1 , PDF/X-1a , PDF/X-3 , PDF/X-4 , PDF/X-5g
+ \IfFileExists{\pdfx@cmyk@profile}{%
+ % embedded CMYK color profile
+ \immediate\pdfobj stream attr{/N 4} file{\pdfx@cmyk@profile}%
+ \edef\OBJ@CMYK{\the\pdflastobj}%
+ \pdfcatalog{%
+ /OutputIntents [ <<
+ /Type/OutputIntent
+ /S/GTS_PDFX
+ /OutputCondition (\pdfx@cmyk@intent)%
+ /OutputConditionIdentifier (\pdfx@cmyk@identifier)%
+ /RegistryName(\pdfx@cmyk@registry)
+ /DestOutputProfile \OBJ@CMYK\space 0 R
+ >> ]}%
+ }{%
+ \errmessage{No color profile found to use for CMYK printing colors.}%
+ }%
+ \fi % end of \ifno@iccprofile
+\else
+%% PDF/A needs an RGB color profile for on-screen rendering
+ \IfFileExists{\pdfx@rgb@profile}{%
+ \immediate\pdfobj stream attr{/N 3^^J/Alternate/DeviceRGB} file{\pdfx@rgb@profile}%
+ \edef\OBJ@RGB{\the\pdflastobj}%
+ }{%
+ \errmessage{No color profile found to use for RGB screen colors.}%
+ }%
\pdfcatalog{%
+ /ViewerPreferences <</DisplayDocTitle true >>
/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}
+ \ifpdfx@e
+ /S/ISO_PDFE1
+ \else
+ /S/GTS_PDFA1
+ \fi
+ /OutputConditionIdentifier (\pdfx@rgb@identifier)%
+ /DestOutputProfile \OBJ@RGB\space 0 R
+ /Info(\pdfx@rgb@info)
+ /RegistryName(\pdfx@rgb@registry)
+ >>
+ ]}%
+\fi % end of \ifpdfx@x
+\endgroup
+
+%% ----------------------------------------------------------------------
+%% Make a version of \xmp@Keywords and \xmp@Author where \sep has been
+%% replaced by a comma. The first is for the pdf:Keywords property,
+%% which accepts a comma-separated string of keywords, and seems to be
+%% mandatory for PDF/A-1 compliance. The second is for the dc:creator
+%% property. Although it is defined to be a sequence of authors, Adobe
+%% Acrobat will in fact ignore and delete all except the first author.
+%% Therefore, it's safer to always separate authors by commas.
+
\begingroup
-\let\&=\xmpAmp
-\ifpdfxonea
- \includexmp{pdfx-1a}
-\else
- \includexmp{pdfa-1b}
-\fi
+ \pdfx@xmpmarkup
+ \def\sep{, }%
+ \inputencoding{8bit}\makeatletter
+ \xdef\xmp@@Keywords{\xmp@Keywords}
+ \xdef\xmp@@Author{\xmp@Author}
\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).
+%% ----------------------------------------------------------------------
+\def\xmp@convertDate{\pdfx@getYear}
+{\catcode`\D=12 \catcode`\:=12
+ \gdef\pdfx@getYear D:#1#2#3#4{\edef\pdfx@xYear{#1#2#3#4}\pdfx@getMonth}
+}
+\def\pdfx@getMonth#1#2{\edef\pdfx@xMonth{#1#2}\pdfx@getDay}
+\def\pdfx@getDay#1#2{\edef\pdfx@xDay{#1#2}\pdfx@getHour}
+\def\pdfx@getHour#1#2{\edef\pdfx@xHour{#1#2}\pdfx@getMin}
+\def\pdfx@getMin#1#2{\edef\pdfx@xMin{#1#2}\pdfx@getSec}
+\def\pdfx@getSec#1#2{\edef\pdfx@xSec{#1#2}\pdfx@getTZh}
+\def\pdfx@getTZh{\futurelet\pdfx@next\pdfx@getTzh@branches}
+
+{\catcode`\@=11 \catcode`\Z=12 \catcode`\+=12 \catcode`\-=12
+\gdef\pdfx@getTzh@branches{%
+ \ifx\pdfx@next Z\let\pdfx@getTzbranch\pdfx@getTznozone
+ \else\ifx\pdfx@next +\let\pdfx@getTzbranch\pdfx@getTzplus
+ \else\ifx\pdfx@next -\let\pdfx@getTzbranch\pdfx@getTzminus
+ \else\let\pdfx@getTzbranch\pdfx@getTzerror
+ \fi\fi\fi \pdfx@getTzbranch }
+
+\catcode`\0=12
+\gdef\pdfx@getTznozone Z#1\pdfx@getTzend{%
+ \edef\pdfx@xTzh{+00}\edef\pdfx@xTzm{00}}
+\gdef\pdfx@getTzplus +#1'#2'#3\pdfx@getTzend{%
+ \edef\pdfx@xTzh{+#1}\edef\pdfx@xTzm{#2}%
+ \ifx\relax#2\relax\def\pdfx@xTzm{00}\fi}
+\gdef\pdfx@getTzminus -#1'#2'#3\pdfx@getTzend{%
+ \edef\pdfx@xTzh{-#1}\edef\pdfx@xTzm{#2}%
+ \ifx\relax#2\relax\def\pdfx@xTzm{00}\fi}
+\expandafter\xmp@convertDate\pdfcreationdate''\pdfx@getTzend
+\xdef\pdfx@convDate{\pdfx@xYear\pdfx@xMonth\pdfx@xDay\pdfx@xHour\pdfx@xMin\pdfx@xSec\pdfx@xTzh'\pdfx@xTzm'}%
+\xdef\xmp@convDate{\pdfx@xYear-\pdfx@xMonth-\pdfx@xDay T\pdfx@xHour:\pdfx@xMin:\pdfx@xSec\pdfx@xTzh:\pdfx@xTzm}%
+}% end of \catcode
+
+%% ----------------------------------------------------------------------
+%% \pdfx@topdfstring\toka\tokb: Convert the string in \tokb to a format
+%% appropriate for PDF /Info strings, i.e., PDFDoc encoding or UTF-16
+%% encoding, and store the result in \toka. As a special case, if \tokb
+%% is \@empty, set \toka to \@empty.
+
+\def\pdfx@topdfstring#1#2{%
+ \ifx#2\@empty
+ \global\let#1\@empty
+ \else
+ \begingroup
+ \inputencoding{utf8}%
+ \hypersetup{pdfencoding=unicode}%
+ \pdfstringdef#1{#2}%
+ \endgroup
+ \fi
+}
+
+%% Convert the relevant XMP properties to PDF strings, expanding markup
+%% (such as \sep, \&, \copyright, etc) in an appropriate way.
+\begingroup
+ \pdfx@pdfmarkup
+ \pdfx@topdfstring\pdfx@Title\xmp@Title
+ \pdfx@topdfstring\pdfx@Author\xmp@Author
+ \pdfx@topdfstring\pdfx@Subject\xmp@Subject
+ \pdfx@topdfstring\pdfx@Keywords\xmp@Keywords
+ \pdfx@topdfstring\pdfx@CreatorTool\xmp@CreatorTool
+ \pdfx@topdfstring\pdfx@Producer\xmp@Producer
+\endgroup
-%
-% \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 an |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)%
- }
+
+\ifpdfx@x
+ {\pdfinfo{% order of these dictionary keys should not matter
+ \ifx\pdfx@Author\@empty\else /Author(\pdfx@Author)\fi
+ /CreationDate(D:\pdfx@convDate)%
+ /Creator(\pdfx@CreatorTool)%
+ \ifnum\xmp@Part=1
+ /GTS_PDFXVersion(PDF/X-1\ifnum\xmp@ReleaseDate>2001\xmp@Conformance\fi:\xmp@ReleaseDate)%
+ \else
+ /GTS_PDFXVersion(PDF/X-\xmp@Part\xmp@Conformance\ifnum\xmp@Part< 4 :\xmp@ReleaseDate\fi)%
+ \fi
+ \ifnum\xmp@Part < 3
+ /GTS_PDFXConformance(PDF/X-\xmp@Part\xmp@Conformance:\xmp@ReleaseDate)%
+ \fi
+ \ifpdfx@vt % support for PDF/VT extensions of PDF/X-4 and PDF/X-5
+%% /GTS_PDFVTVersion(PDF/VT-\xmp@vtPart\xmp@vtConformance)%
+ \fi
+ \ifx\pdfx@Keywords\@empty\else /Keywords(\pdfx@Keywords)\fi
+ /ModDate(D:\pdfx@convDate)%
+ /Producer(\pdfx@Producer)%
+ \ifx\pdfx@Subject\@empty\else /Subject(\pdfx@Subject)\fi
+ \ifx\pdfx@Title\@empty\else /Title(\pdfx@Title)\fi
+ /Trapped/False%
+ }% end of PDF/X info
+ }%
\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 |hyperref|.
-%
-% \begin{macrocode}
- \RequirePackage[pdftex,pdfa]{hyperref}
- \def\PDF@FinishDoc{%
- \Hy@UseMaketitleInfos
- \pdfinfo{%
- /Creator(\xmpProducer)%
+ \ifpdfx@e
+ {\pdfinfo{% order of these dictionary keys should not matter
+ \ifx\pdfx@Author\@empty\else /Author(\pdfx@Author)\fi
+ /CreationDate(D:\pdfx@convDate)%
+ /Creator(\pdfx@CreatorTool)%
+ /GTS_PDFEVersion(PDF/E-1\xmp@Conformance:\xmp@ReleaseDate)%
+ \ifx\pdfx@Keywords\@empty\else /Keywords(\pdfx@Keywords)\fi
+ /ModDate(D:\pdfx@convDate)%
+ /Producer(\pdfx@Producer)%
+ \ifx\pdfx@Subject\@empty\else /Subject(\pdfx@Subject)\fi
+ \ifx\pdfx@Title\@empty\else /Title(\pdfx@Title)\fi
+ /Trapped/False%
+ }% end of PDF/E info
+ }%
+ \else
+ \def\pdfx@confA{a}%
+ \def\pdfx@confB{b}%
+ \def\pdfx@confU{u}%
+ \edef\xmp@conformance{\csname pdfx@conf\xmp@Conformance\endcsname}%
+ \AtBeginDocument{%
+ \def\PDF@FinishDoc{%
+ \Hy@UseMaketitleInfos
+ \pdfinfo{%
+ \ifx\pdfx@Title\@empty\else /Title(\pdfx@Title)\fi
+ \ifx\pdfx@Author\@empty\else /Author(\pdfx@Author)\fi
+ \ifx\pdfx@Subject\@empty\else /Subject(\pdfx@Subject)\fi
+ \ifx\pdfx@Keywords\@empty\else /Keywords(\pdfx@Keywords)\fi
+ /Creator(\pdfx@CreatorTool)%
\ifx\@pdfcreationdate\@empty
- \else
+ /CreationDate(D:\pdfx@convDate)%
+ \else
/CreationDate(\@pdfcreationdate)%
- \fi
- \ifx\@pdfmoddate\@empty
- \else
+ \fi
+ \ifx\@pdfmoddate\@empty
+ /ModDate(D:\pdfx@convDate)%
+ \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>
+ \fi
+ /Producer(\pdfx@Producer)%
+ /Trapped/False
+ /GTS_PDFA1Version (PDF/A-\xmp@Part\xmp@conformance:\xmp@ReleaseDate)%
+ }% end of PDF/A info
+ }% end of \PDF@FinishDoc
+ }% end of \AtBeginDocument
+\fi\fi
+
+%%----------------------------------------------------------------------
+\RequirePackage{xmpincl}
+\begingroup
+ \ifpdfx@x
+ \ifpdfx@vt
+ \def\xmp@template{pdfvt}%
+ \else
+ \def\xmp@template{pdfx}% formerly pdfx-1a
+ \fi
+ \else
+ \ifpdfx@e
+ \def\xmp@template{pdfe}%
+ \else
+ \def\xmp@template{pdfa}%
+ \fi\fi
+ % patch commands from xmpincl.sty ...
+ \def\pdfx@xmpinclStart{% supply byte-order marker
+ <?xpacket begin='^^ef^^bb^^bf'? id='W5M0MpCehiHzreSzNTczkc9d' ?> %
+ }%
+ \def\pdfx@xmpinclStartAlt{% no byte-order marker
+ <?xpacket begin=''? id='W5M0MpCehiHzreSzNTczkc9d' ?> %
+ }%
+ \def\pdfx@xmpinclEnd{% allow XMP packet to be writable
+ <?xpacket end='w'?> %
+ }%
+ \let\mcs@xmpinclStart\pdfx@xmpinclStart
+ \let\mcs@xmpinclStartAlt\pdfx@xmpinclStartAlt
+ \ifpdfx@noBOM % don't use the byte-order marker
+ \let\mcs@xmpinclStart\pdfx@xmpinclStartAlt
+ \fi
+ \let\mcs@xmpinclEnd\pdfx@xmpinclEnd
+%% ... preventing their redefinition
+ \def\newcommand#1#2{}%
+ %
+ \pdfx@xmpmarkup
+ \catcode `\_ 12
+ \obeyspaces% beware of 128 space characters in the next line -- for padding end of XMP packet
+ \def\padding@line{ }%
+ \def\ifnot@empty#1#2{\ifx#1\@empty\else#2\fi}
+ \inputencoding{8bit}\makeatletter
+ \typeout{Using XMP template file: \xmp@template.xmp}%
+ \includexmp{\xmp@template}
+\endgroup
+
+%% disable hyperref options, to prevent changes that will cause an incompatibility
+ \Hy@DisableOption{pdfauthor}%
+ \Hy@DisableOption{pdftitle}%
+ \Hy@DisableOption{pdfsubject}%
+ \Hy@DisableOption{pdfcreator}%
+ \Hy@DisableOption{pdfcreationdate}%
+ \Hy@DisableOption{pdfmoddate}%
+ \Hy@DisableOption{pdfproducer}%
+ \Hy@DisableOption{pdfkeywords}%
+\endinput
% \end{macrocode}
+% \iffalse
+%</package>
+% \fi
% \Finale
% \PrintIndex
% \PrintChanges
diff --git a/Master/texmf-dist/source/latex/pdfx/pdfx.ins b/Master/texmf-dist/source/latex/pdfx/pdfx.ins
index 0d0f2e32499..e4a8eee433e 100644
--- a/Master/texmf-dist/source/latex/pdfx/pdfx.ins
+++ b/Master/texmf-dist/source/latex/pdfx/pdfx.ins
@@ -1,10 +1,13 @@
\input docstrip.tex
%\keepsilent
+\askforoverwritefalse
\preamble
- Copyright (c) 2008, CV Radhakrishnan <cvr@river-valley.org>,
- Han The Thanh <thanh@river-valley.org>
+ Copyright (c) 2015, CV Radhakrishnan <cvr@river-valley.org>,
+ Han The Thanh <thanh@river-valley.org>,
+ Ross Moore <ross.moore@mq.edu.au>,
+ Peter Selinger <selinger@mathstat.dal.ca>
This file may be distributed and/or modified under the conditions
of the LaTeX Project Public License, either version 1.2 of this
diff --git a/Master/texmf-dist/source/latex/pdfx/rvdtx.sty b/Master/texmf-dist/source/latex/pdfx/rvdtx.sty
index 6e7e9235d32..2160142cfa2 100644
--- a/Master/texmf-dist/source/latex/pdfx/rvdtx.sty
+++ b/Master/texmf-dist/source/latex/pdfx/rvdtx.sty
@@ -91,11 +91,6 @@
a4paper}
\RequirePackage{comment,xspace}
-\def\xml{\textsc{xml}\xspace}
-\def\pdf{\textsc{pdf}\xspace}
-\def\pdfa{\textsc{pdf/a-1}b\xspace}
-\def\pdfx{\textsc{pdf/x-1}a\xspace}
-\def\xmp{\textsc{xmp}\xspace}
\def\pdftex{\textsc{pdf\TeX}\xspace}
\def\defmacro#1{\texttt{\@bsl#1}}
\def\thanh{H\`an Th\^e Th\`anh\xspace}