diff options
author | Karl Berry <karl@freefriends.org> | 2020-03-26 21:27:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-03-26 21:27:46 +0000 |
commit | e5b867c8ebe58caa2dae444265723e8a88603b1f (patch) | |
tree | 38f31c315e0a0b8e45bf120bf54d502b4c7b0476 /Master/texmf-dist/tex | |
parent | 0b6fc17678db57f37210b8ced66a414f3fc6a4e6 (diff) |
hyperxmp (26mar20)
git-svn-id: svn://tug.org/texlive/trunk@54559 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty | 432 |
1 files changed, 322 insertions, 110 deletions
diff --git a/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty b/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty index 5933861a84d..bcd36e7d64c 100644 --- a/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty +++ b/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2019 by Scott Pakin <scott+hyxmp@pakin.org> +%% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp@pakin.org> %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3c of this license @@ -22,7 +22,7 @@ %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{hyperxmp} - [2019/04/05 v4.1 Store hyperref metadata in XMP format] + [2020/03/20 v5.0 Store hyperref metadata in XMP format] \edef\hyxmp@dq@code{\the\catcode`\"} \catcode`\"=12 \def\hyxmp@driver{hpdftex} @@ -36,8 +36,10 @@ \RequirePackage{pdfescape} \RequirePackage{stringenc} \RequirePackage{intcalc} -\RequirePackage{ifxetex} +\RequirePackage{iftex} \RequirePackage{ifmtarg} +\RequirePackage{etoolbox} +\RequirePackage{ifthen} \def\@ifmtargexp#1{\expandafter\@ifmtarg\expandafter{#1}} \def\@ifnotmtargexp#1{\expandafter\@ifnotmtarg\expandafter{#1}} \newcommand{\hyxmp@pdfstringdef}[2]{% @@ -80,18 +82,72 @@ \define@key{Hyp}{pdfcaptionwriter}{\hyxmp@pdfstringdef\@pdfcaptionwriter{#1}} \def\@pdfmetalang{} \define@key{Hyp}{pdfmetalang}{\hyxmp@pdfstringdef\@pdfmetalang{#1}} +\def\hyxmp@no@bad@parts#1\relax{% + \@ifnotmtarg{#1}{% + \PackageWarning{hyperxmp}{pdfapart and pdfuapart must be numeric}% + }% +} \def\@pdfapart{1} -\define@key{Hyp}{pdfapart}{\hyxmp@pdfstringdef\@pdfapart{#1}} +\define@key{Hyp}{pdfapart}{% + \afterassignment\hyxmp@no@bad@parts\@tempcnta=0#1\relax + \hyxmp@pdfstringdef\@pdfapart{\the\@tempcnta}% +} \def\@pdfaconformance{B} -\define@key{Hyp}{pdfaconformance}{\hyxmp@pdfstringdef\@pdfaconformance{#1}} +\define@key{Hyp}{pdfaconformance}{% + \uppercase{\hyxmp@pdfstringdef\@pdfaconformance{#1}}% +} +\def\@pdfuapart{} +\define@key{Hyp}{pdfuapart}{% + \afterassignment\hyxmp@no@bad@parts\@tempcnta=0#1\relax + \hyxmp@pdfstringdef\@pdfuapart{\the\@tempcnta}% +} +\newcommand*{\hyxmp@set@pdfx@major}[1]{\hyxmp@set@pdfx@major@i#1!} +\def\hyxmp@set@pdfx@major@i PDF/X-{% + \afterassignment\hyxmp@set@pdfx@major@ii + \@tempcnta=% +} +\def\hyxmp@set@pdfx@major@ii#1!{% + \edef\hyxmp@pdfx@major{\the\@tempcnta}% +} +\newcommand*\hyxmp@check@std[2]{% + \ifthenelse{\equal{#1}{#2}}% + {\global\let\next=\relax}% + {}% +}% +\def\@pdfxstandard{} +\def\hyxmp@pdfx@major{} +\define@key{Hyp}{pdfxstandard}{% + \hyxmp@pdfstringdef\@pdfxstandard{#1}% + \gdef\next{% + \PackageWarning{hyperxmp}{Unrecognized PDF/X standard `#1'}% + }% + \hyxmp@check@std{#1}{PDF/X-1a:2001}% + \hyxmp@check@std{#1}{PDF/X-1a:2003}% + \hyxmp@check@std{#1}{PDF/X-3:2002}% + \hyxmp@check@std{#1}{PDF/X-3:2003}% + \hyxmp@check@std{#1}{PDF/X-4}% + \hyxmp@check@std{#1}{PDF/X-4p}% + \hyxmp@check@std{#1}{PDF/X-5g}% + \hyxmp@check@std{#1}{PDF/X-5n}% + \hyxmp@check@std{#1}{PDF/X-5pg}% + \next + \hyxmp@set@pdfx@major{#1}% +} \edef\@pdfsource{\jobname.tex} \define@key{Hyp}{pdfsource}{\hyxmp@pdfstringdef\@pdfsource{#1}} \def\hyxmp@DocumentID{} \define@key{Hyp}{pdfdocumentid}{\hyxmp@pdfstringdef\hyxmp@DocumentID{#1}} \def\hyxmp@InstanceID{} \define@key{Hyp}{pdfinstanceid}{\hyxmp@pdfstringdef\hyxmp@InstanceID{#1}} -\def\@pdfversionid{} +\def\@pdfversionid{1} \define@key{Hyp}{pdfversionid}{\hyxmp@pdfstringdef\@pdfversionid{#1}} +\RequirePackage{ifdraft} +\ifdraft{% + \def\@pdfrendition{draft}% +}{% + \def\@pdfrendition{default}% +} +\define@key{Hyp}{pdfrendition}{\hyxmp@pdfstringdef\@pdfrendition{#1}} \def\@pdfpublication{} \define@key{Hyp}{pdfpublication}{\hyxmp@pdfstringdef\@pdfpublication{#1}} \def\@pdfpubtype{} @@ -144,11 +200,31 @@ \define@key{Hyp}{pdfcontactemail}{\hyxmp@pdfstringdef\@pdfcontactemail{#1}} \def\@pdfcontacturl{} \define@key{Hyp}{pdfcontacturl}{\hyxmp@pdfstringdef\@pdfcontacturl{#1}} -\def\hyxmp@suppress@pdf@metadata{% - \global\let\PDF@FinishDoc=\@empty +\def\hyxmp@no@info@lists{% + \def\hyxmp@suppress@pdf@info{% + \global\let\PDF@FinishDoc=\@empty + \PackageWarningNoLine{hyperxmp}{% + Suppressing the _entire_ PDF Info dictionary.\MessageBreak + Please notify the hyperxmp maintainer% + }% + }% + \let\next=\relax + \patchcmd + {\PDF@FinishDoc}% + {/Author(\@pdfauthor)}% + {}% + {}% + {\let\next=\hyxmp@suppress@pdf@info}% + \patchcmd + {\PDF@FinishDoc}% + {/Keywords(\@pdfkeywords)}% + {}% + {}% + {\let\next=\hyxmp@suppress@pdf@info}% + \next } \define@key{Hyp}{keeppdfinfo}[true]{% - \gdef\hyxmp@suppress@pdf@metadata{}% + \gdef\hyxmp@no@info@lists{}% } \def\hyxmp@pdfauthor{} \def\hyxmp@pdfkeywords{} @@ -238,10 +314,10 @@ \@pdfsubject \@pdfsubtitle \@pdftitle - \@pdftype + \@pdfuapart \@pdfurl - \@pdfversionid \@pdfvolumenum + \@pdfxstandard }% \ifx\hyxmp@concated@metadata\@empty \PackageWarningNoLine{hyperxmp}{% @@ -251,6 +327,21 @@ provide metadata values to hyperxmp}% \fi } +\newcommand*{\hyxmp@check@standards}{% + \def\hyxmp@standards{% + \@pdfapart + \@pdfxstandard + \@pdfuapart + }% + \@ifnotmtargexp{\hyxmp@standards}{% + \@ifmtargexp{\@pdftitle}{% + \PackageWarning{hyperxmp}{% + Missing pdftitle (required for PDF standards\MessageBreak + compliance)% + }% + }% + }% +} \AtBeginDocument{% \@ifpackageloaded{hyperref}{% \ifx\@pdflang\relax @@ -264,10 +355,6 @@ \fi \fi \hyxmp@xmlify\@pdfmetalang - \ifx\@pdfdatetime\@empty - \else - \edef\hyxmp@today{\@pdfdatetime}% - \fi \@ifmtargexp{\@pdftitle}{% \@ifnotmtargexp{\@title}{% \hypersetup{pdftitle={\@title}}% @@ -280,7 +367,14 @@ }% }% {}% - \hyxmp@suppress@pdf@metadata + \@ifundefined{XeTeXversion}{}{% + \@ifmtargexp{\@pdfcreationdate}{% + \let\@pdfcreationdate=\hyxmp@today@pdf + }% + {}% + }% + \hyxmp@check@standards + \hyxmp@no@info@lists \hyxmp@at@end{% \hyxmp@find@metadata \hyxmp@embed@packet @@ -340,7 +434,7 @@ \def\hyxmp@first@char#1{\hyxmp@first@char@i#1\relax} \def\hyxmp@first@char@i#1#2\relax{#1} \def\hyxmp@as@xmp@date#1{% - \expandafter\ifx\hyxmp@first@char@i#1\relax D% + \expandafter\ifnum\expandafter`\hyxmp@first@char@i#1\relax=`D \hyxmp@pdf@to@xmp@date{#1}% \else #1% @@ -433,7 +527,7 @@ \def\hyxmp@xmp@to@pdf@date@viii#1#2#3#4{% '#1#2'% } -\def\hyxmp@today@define#1{% +\def\hyxmp@today@xmp@define#1{% \xdef#1{\the\year}% \ifnum\month<10 \xdef#1{#1-0\the\month}% @@ -446,28 +540,45 @@ \xdef#1{#1-\the\day}% \fi \@tempcnta=\time - \divide\@tempcnta by 60% - \ifnum\@tempcnta<10% + \divide\@tempcnta by 60 + \ifnum\@tempcnta<10 \xdef#1{#1T0\the\@tempcnta}% \else \xdef#1{#1T\the\@tempcnta}% \fi - \multiply\@tempcnta by -60% + \multiply\@tempcnta by -60 \advance\@tempcnta by \time - \ifnum\@tempcnta<10% + \ifnum\@tempcnta<10 \xdef#1{#1:0\the\@tempcnta}% \else \xdef#1{#1:\the\@tempcnta}% \fi + \xdef#1{#1Z}% } -\@ifundefined{pdffeedback}{% - \@ifundefined{pdfcreationdate}{% - \hyxmp@today@define\hyxmp@today - }{% - \edef\hyxmp@today{\expandafter\hyxmp@pdf@to@xmp@date\pdfcreationdate}% +\def\hyxmp@try@today#1#2{% + \@ifmtargexp{\hyxmp@today@xmp}{% + \@ifundefined{#1}{}{#2}% + }{}% +} +\def\hyxmp@today@xmp{} +\hyxmp@try@today{pdfcreationdate}{% + \edef\hyxmp@today@xmp{\expandafter\hyxmp@pdf@to@xmp@date\pdfcreationdate}% +} +\hyxmp@try@today{pdffeedback}{% + \edef\hyxmp@today@xmp{\expandafter\hyxmp@pdf@to@xmp@date\pdffeedback creationdate}% +} +\hyxmp@try@today{filemoddate}{% + \edef\hyxmp@today@xmp{\filemoddate{\jobname.aux}}% + \edef\next{% + \edef\noexpand\hyxmp@today@xmp{\noexpand\hyxmp@as@xmp@date{\hyxmp@today@xmp}}% }% -}{% - \edef\hyxmp@today{\expandafter\hyxmp@pdf@to@xmp@date\pdffeedback creationdate}% + \next +}% +\hyxmp@try@today{year}{% + \hyxmp@today@xmp@define\hyxmp@today@xmp +} +\expandafter\edef\expandafter\hyxmp@today@pdf\expandafter{% + \expandafter\hyxmp@xmp@to@pdf@date\expandafter{\hyxmp@today@xmp}% } \catcode`\Q=3 \newcommand{\hyxmp@trimspaces}[1]{% @@ -485,7 +596,6 @@ \else \hyxmp@unicodetexfalse \fi -\newcommand*{\hyxmp@reencode}[1]{} \expandafter\def\csname SE->pdfdoc@03\endcsname{0003} \expandafter\def\csname SE->pdfdoc@15\endcsname{0015} \newcommand*{\hyxmp@xmlify}[1]{% @@ -496,7 +606,7 @@ \StringEncodingConvert \hyxmp@text\hyxmp@text{utf16be}{utf32be}% }{% - \ifxetex + \ifXeTeX \hyxmp@xetex@crap \else \StringEncodingConvert @@ -678,6 +788,48 @@ \catcode0=12 % \gdef\hyxmp@zero{^^00}% \endgroup +\newcommand*{\hyxmp@extra@indent}{} +\newcommand*{\hyxmp@add@simple}[2]{% + \@ifnotmtargexp{#2}{% + \hyxmp@xmlify{#2}% + \hyxmp@add@to@xml{\hyxmp@extra@indent______<}% + \xdef\hyxmp@xml{\hyxmp@xml#1}% + \hyxmp@add@to@xml{>\hyxmp@xmlified</}% + \xdef\hyxmp@xml{\hyxmp@xml#1>^^J}% + }% +} +\newcommand*{\hyxmp@add@simple@var}[2]{% + \expandafter\ifx\csname#2\endcsname\relax + \else + \hyxmp@xmlify{\csname#2\endcsname}% + \hyxmp@add@to@xml{% + \hyxmp@extra@indent______<#1>\hyxmp@xmlified</#1>^^J% + }% + \fi +} +\newcommand*{\hyxmp@add@simple@lang}[2]{% + \@ifnotmtarg{#2}{% + \hyxmp@xmlify{#2}% + \expandafter\hyxmp@add@simple@lang@i\hyxmp@xmlified\relax{#1}% + }% +} +\newcommand*{\hyxmp@add@simple@lang@i}{% + \@ifnextchar[\hyxmp@add@simple@lang@ii{\hyxmp@add@simple@lang@ii[]}% +} +\def\hyxmp@add@simple@lang@ii[#1]#2\relax#3{% + \@ifnotmtarg{#2}{% + \hyxmp@xmlify{#2}% + \@ifmtarg{#1}{% + \hyxmp@add@to@xml{% +______<#3>\hyxmp@xmlified</#3>^^J% + }% + }{% + \hyxmp@add@to@xml{% +______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J% + }% + }% + }% +} \def\hyxmp@alt@title{} \def\hyxmp@alt@description{} \def\hyxmp@alt@rights{} @@ -785,9 +937,9 @@ \hyxmp@create@uuid\hyxmp@DocumentID } \newcommand*{\hyxmp@def@InstanceID}{% - \hyxmp@today@define{\hyxmp@seed@string}% + \hyxmp@today@xmp@define{\hyxmp@seed@string}% \edef\hyxmp@seed@string{% - \jobname:\@pdftitle:\@pdfauthor:\hyxmp@today:\hyxmp@seed@string + \jobname:\@pdftitle:\@pdfauthor:\hyxmp@today@xmp:\hyxmp@seed@string }% \expandafter\hyxmp@seed@rng\expandafter{\hyxmp@seed@string}% \edef\hyxmp@rand@num{\the\@tempcnta}% @@ -830,9 +982,37 @@ _______________________________________________________________^^J% \xdef\hyxmp@padding{\hyxmp@padding\hyxmp@padding} \xdef\hyxmp@padding{\hyxmp@padding\hyxmp@padding} \newcommand*{\hyxmp@x@default}{x-default} +\newcommand*{\hyxmp@define@pdfproducer}{% + \gdef\@pdfproducer{TeX} + \ifPDFTeX + \expandafter\hyxmp@banner@to@producer\expandafter{\pdftexbanner} + \else + \ifLuaTeX + \expandafter\hyxmp@banner@to@producer\expandafter{\luatexbanner} + \else + \ifXeTeX + \edef\@pdfproducer{XeTeX version \the\XeTeXversion\XeTeXrevision} + \fi + \fi + \fi +} +\def\hyxmp@banner@to@producer#1{% + \ifx\scantokens\relax + \gdef\@pdfproducer{#1}% + \else + \scantokens{\makeatletter\hyxmp@remove@this#1\relax\makeatother}% + \fi +} +\def\hyxmp@remove@this This is #1\relax{\gdef\@pdfproducer{#1}} +\AtBeginDocument{% + \ifx\@pdfproducer\relax + \hyxmp@define@pdfproducer + \fi +} \newcommand*{\hyxmp@pdf@schema}{% - \hyxmp@add@simple@var{pdf:Keywords}{@pdfkeywords}% \hyxmp@add@simple@var{pdf:Producer}{@pdfproducer}% + \hyxmp@add@simple@var{pdf:Keywords}{@pdfkeywords}% + \hyxmp@add@simple{pdf:Trapped}{\@pdftrapped}% \@ifundefined{pdfvariable}{% \@ifundefined{pdfminorversion}{% }{% @@ -842,47 +1022,6 @@ _______________________________________________________________^^J% \hyxmp@add@simple{pdf:PDFVersion}{1.\the\pdfvariable minorversion}% }% } -\newcommand*{\hyxmp@extra@indent}{} -\newcommand*{\hyxmp@add@simple}[2]{% - \@ifnotmtargexp{#2}{% - \hyxmp@xmlify{#2}% - \hyxmp@add@to@xml{% - \hyxmp@extra@indent______<#1>\hyxmp@xmlified</#1>^^J% - }% - }% -} -\newcommand*{\hyxmp@add@simple@var}[2]{% - \expandafter\ifx\csname#2\endcsname\relax - \else - \hyxmp@xmlify{\csname#2\endcsname}% - \hyxmp@add@to@xml{% - \hyxmp@extra@indent______<#1>\hyxmp@xmlified</#1>^^J% - }% - \fi -} -\newcommand*{\hyxmp@add@simple@lang}[2]{% - \@ifnotmtarg{#2}{% - \hyxmp@xmlify{#2}% - \expandafter\hyxmp@add@simple@lang@i\hyxmp@xmlified\relax{#1}% - }% -} -\newcommand*{\hyxmp@add@simple@lang@i}{% - \@ifnextchar[\hyxmp@add@simple@lang@ii{\hyxmp@add@simple@lang@ii[]}% -} -\def\hyxmp@add@simple@lang@ii[#1]#2\relax#3{% - \@ifnotmtarg{#2}{% - \hyxmp@xmlify{#2}% - \@ifmtarg{#1}{% - \hyxmp@add@to@xml{% -______<#3>\hyxmp@xmlified</#3>^^J% - }% - }{% - \hyxmp@add@to@xml{% -______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J% - }% - }% - }% -} \newcommand*{\hyxmp@rdf@dc}[3][\iffalse]{% \@ifmtargexp{#3}{\@tempswafalse}{\@tempswatrue}% #1 @@ -962,7 +1101,7 @@ ______</dc:#2>^^J% \hyxmp@rdf@dc[\ifHy@pdfa]{description}{\@pdfsubject}% \hyxmp@rdf@dc{rights}{\@pdfcopyright}% \hyxmp@singleton@dc{publisher}{\@pdfpublisher}% - \hyxmp@singleton@dc[Seq]{date}{\hyxmp@today}% + \hyxmp@singleton@dc[Seq]{date}{\hyxmp@today@xmp}% \hyxmp@singleton@dc{language}{\@pdflang}% \hyxmp@singleton@dc{type}{\@pdftype}% \hyxmp@list@to@xml[\ifHy@pdfa]{creator}{Seq}{\hyxmp@pdfauthor}% @@ -997,45 +1136,26 @@ ______</dc:#2>^^J% \hyxmp@add@simple{xmpMM:DocumentID}{\hyxmp@DocumentID}% \hyxmp@add@simple{xmpMM:InstanceID}{\hyxmp@InstanceID}% \hyxmp@add@simple{xmpMM:VersionID}{\@pdfversionid}% -} -\newcommand*{\hyxmp@define@createdate}{% - \@ifundefined{pdffeedback}{% - \@ifundefined{pdfcreationdate}{% - \hyxmp@today@define\hyxmp@createdate - }{% - \edef\hyxmp@createdate{\expandafter\hyxmp@pdf@to@xmp@date\pdfcreationdate}% - }% - }{% - \edef\hyxmp@createdate{\expandafter\hyxmp@pdf@to@xmp@date\pdffeedback creationdate}% - }% + \hyxmp@add@simple{xmpMM:RenditionClass}{\@pdfrendition}% } \newcommand*{\hyxmp@xmp@basic@schema}{% - \hyxmp@define@createdate - \@ifundefined{@pdfcreationdate}{% - \hyxmp@add@simple{xmp:CreateDate}{\hyxmp@createdate}% + \@ifmtargexp{\@pdfcreationdate}{% + \hyxmp@add@simple{xmp:CreateDate}{\hyxmp@today@xmp}% }{% - \ifx\@pdfcreationdate\@empty - \hyxmp@add@simple{xmp:CreateDate}{\hyxmp@createdate}% - \else - \hyxmp@add@simple{xmp:CreateDate}{% - \expandafter\hyxmp@as@xmp@date\expandafter{\@pdfcreationdate}}% - \fi + \hyxmp@add@simple{xmp:CreateDate}{% + \expandafter\hyxmp@as@xmp@date\expandafter{\@pdfcreationdate}}% }% - \@ifundefined{@pdfmoddate}{% - \hyxmp@add@simple{xmp:ModifyDate}{\hyxmp@createdate}% + \@ifmtargexp{\@pdfmoddate}{% + \hyxmp@add@simple{xmp:ModifyDate}{\hyxmp@today@xmp}% }{% - \ifx\@pdfmoddate\@empty - \hyxmp@add@simple{xmp:ModifyDate}{\hyxmp@createdate}% - \else - \hyxmp@add@simple{xmp:ModifyDate}{% - \expandafter\hyxmp@as@xmp@date\expandafter{\@pdfmoddate}}% - \fi + \hyxmp@add@simple{xmp:ModifyDate}{% + \expandafter\hyxmp@as@xmp@date\expandafter{\@pdfmoddate}}% }% - \ifx\@pdfmetadatetime\@empty - \hyxmp@add@simple{xmp:MetadataDate}{\hyxmp@createdate}% - \else + \@ifmtargexp{\@pdfmetadatetime}{% + \hyxmp@add@simple{xmp:MetadataDate}{\hyxmp@today@xmp}% + }{% \hyxmp@add@simple{xmp:MetadataDate}{\@pdfmetadatetime}% - \fi + }% \hyxmp@add@simple{xmp:CreatorTool}{\@pdfcreator}% \hyxmp@add@simple{xmp:BaseURL}{\@baseurl}% } @@ -1050,6 +1170,25 @@ ______</dc:#2>^^J% \hyxmp@add@simple{pdfaid:conformance}{\@pdfaconformance}% \fi } +\newcommand*{\hyxmp@pdfua@id@schema}{% + \hyxmp@add@simple{pdfuaid:part}{\@pdfuapart}% +} +\newcommand*{\hyxmp@pdfx@id@schema}{% + \@tempcnta=0\hyxmp@pdfx@major\relax + \ifnum\@tempcnta=0 + \else + \ifnum\@tempcnta=1 + \hyxmp@add@simple{pdfx:GTS_PDFXVersion}{PDF/X-1:2001}% + \hyxmp@add@simple{pdfx:GTS_PDFXConformance}{\@pdfxstandard}% + \else + \ifnum\@tempcnta<4 + \hyxmp@add@simple{pdfx:GTS_PDFXVersion}{\@pdfxstandard}% + \else + \hyxmp@add@simple{pdfxid:GTS_PDFXVersion}{\@pdfxstandard}% + \fi + \fi + \fi +} \begingroup \catcode`\&=12 \catcode`\#=12 @@ -1181,7 +1320,9 @@ __________</rdf:li>^^J% \newcommand{\hyxmp@declare@property}[4][Text]{% \hyxmp@add@to@xml{% ________________<rdf:li rdf:parseType="Resource">^^J% -__________________<pdfaProperty:name>#2</pdfaProperty:name>^^J% +__________________<pdfaProperty:name>}% + \xdef\hyxmp@xml{\hyxmp@xml#2}% + \hyxmp@add@to@xml{</pdfaProperty:name>^^J% __________________<pdfaProperty:valueType>#1</pdfaProperty:valueType>^^J% __________________<pdfaProperty:category>#3</pdfaProperty:category>^^J% __________________<pdfaProperty:description>#4</pdfaProperty:description>^^J% @@ -1197,6 +1338,17 @@ ________________________<pdfaField:description>#3</pdfaField:description>^^J% ______________________</rdf:li>^^J% }% } +\newcommand*{\hyxmp@pdf@extensions}{% + \hyxmp@begin@ext@decl + {Adobe PDF Schema}% + {pdf}% + {http://ns.adobe.com/pdf/1.3/}% + \hyxmp@declare@property + {Trapped}% + {internal}% + {Indication if the document has been modified to include trapping information}% + \hyxmp@end@ext@decl +}% \newcommand*{\hyxmp@mm@extensions}{% \hyxmp@begin@ext@decl {XMP Media Management Schema}% @@ -1216,6 +1368,10 @@ ______________________</rdf:li>^^J% {VersionID}% {internal}% {Document version identifier}% + \hyxmp@declare@property + {RenditionClass}% + {internal}% + {The manner in which a document is rendered}% \hyxmp@end@ext@decl }% \newcommand*{\hyxmp@pdfa@id@extensions}{% @@ -1234,6 +1390,48 @@ ______________________</rdf:li>^^J% {Conformance level of PDF/A standard}% \hyxmp@end@ext@decl }% +\newcommand*{\hyxmp@pdfua@id@extensions}{% + \hyxmp@begin@ext@decl + {PDF/UA Universal Accessibility Schema}% + {pdfuaid}% + {http://www.aiim.org/pdfua/ns/id/}% + \hyxmp@declare@property + [Integer]% + {part}% + {internal}% + {Part of ISO 14289 standard}% + \hyxmp@end@ext@decl +}% +\newcommand*{\hyxmp@pdfx@id@extensions}{% + \ifx\hyxmp@pdfx@major\empty + \else + \hyxmp@begin@ext@decl + {Adobe Document Info PDF/X eXtension Schema}% + {pdfx}% + {http://ns.adobe.com/pdfx/1.3/}% + \hyxmp@declare@property + {GTS_PDFXVersion}% + {internal}% + {ID of PDF/X standard}% + \hyxmp@declare@property + {GTS_PDFXConformance}% + {internal}% + {Conformance level of PDF/X standard}% + \hyxmp@end@ext@decl + \fi + \@tempcnta=0\hyxmp@pdfx@major\relax + \ifnum\@tempcnta>3 + \hyxmp@begin@ext@decl + {PDF/X ID Schema}% + {pdfxid}% + {http://www.npes.org/pdfx/ns/id/}% + \hyxmp@declare@property + {GTS_PDFXVersion}% + {internal}% + {ID of PDF/X standard}% + \hyxmp@end@ext@decl + \fi +}% \newcommand*{\hyxmp@iptc@extensions}{% \hyxmp@begin@ext@decl {IPTC Core Schema}% @@ -1364,9 +1562,18 @@ __________</rdf:li>^^J% }% \newcommand*{\hyxmp@declare@extensions}{% \hyxmp@begin@extension@decls + \hyxmp@pdf@extensions \hyxmp@mm@extensions \ifHy@pdfa - \hyxmp@mm@extensions + \hyxmp@pdfa@id@extensions + \fi + \ifx\@pdfuapart\@empty + \else + \hyxmp@pdfua@id@extensions + \fi + \ifx\@pdfxversion\@empty + \else + \hyxmp@pdfx@id@extensions \fi \ifx\hyxmp@iptc@data\@empty \else @@ -1407,6 +1614,9 @@ _____________________xmlns:xmp="http://ns.adobe.com/xap/1.0/"^^J% _____________________xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"^^J% _____________________xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent\hyxmp@hash"^^J% _____________________xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"^^J% +_____________________xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/"^^J% +_____________________xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/"^^J% +_____________________xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/"^^J% _____________________xmlns:prism="http://prismstandard.org/namespaces/basic/2.1/"^^J% _____________________xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"^^J% _____________________xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"^^J% @@ -1424,6 +1634,8 @@ _____________________xmlns:pdfaField="http://www.aiim.org/pdfa/ns/field\hyxmp@ha \hyxmp@photoshop@schema \hyxmp@xmp@basic@schema \hyxmp@pdfa@id@schema + \hyxmp@pdfua@id@schema + \hyxmp@pdfx@id@schema \hyxmp@mm@schema \hyxmp@iptc@schema \hyxmp@prism@schema |