[latex3-commits] [latex3/luamml] main: add support for \tag_struct_use_num:n (#4) (43825dc)
github at latex-project.org
github at latex-project.org
Thu Nov 21 06:28:30 CET 2024
Repository : https://github.com/latex3/luamml
On branch : main
Link : https://github.com/latex3/luamml/commit/43825dcac438041298d9bb50a12eba2da92fb504
>---------------------------------------------------------------
commit 43825dcac438041298d9bb50a12eba2da92fb504
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date: Thu Nov 21 06:28:30 2024 +0100
add support for \tag_struct_use_num:n (#4)
add support for \tag_struct_use_num:n
>---------------------------------------------------------------
43825dcac438041298d9bb50a12eba2da92fb504
.github/tl_packages | 1 +
luamml-structelemwriter.lua | 6 +
luamml-tex-annotate.lua | 12 +
luamml.dtx | 18 +-
testfiles-lua/test_structnum.pvt | 35 ++
testfiles-lua/test_structnum.tpf | 783 +++++++++++++++++++++++++++++++++++++++
6 files changed, 854 insertions(+), 1 deletion(-)
diff --git a/.github/tl_packages b/.github/tl_packages
index 0630b10..ea7ca2b 100644
--- a/.github/tl_packages
+++ b/.github/tl_packages
@@ -34,6 +34,7 @@ l3backend
l3build
l3kernel
l3packages
+l3experimental
latex
latex-fonts
latex-lab
diff --git a/luamml-structelemwriter.lua b/luamml-structelemwriter.lua
index 97a90ac..7c2e549 100644
--- a/luamml-structelemwriter.lua
+++ b/luamml-structelemwriter.lua
@@ -1,5 +1,6 @@
local struct_begin = token.create'tag_struct_begin:n'
local struct_use = token.create'tag_struct_use:n'
+local struct_use_num = token.create'tag_struct_use_num:n'
local struct_end = token.create'tag_struct_end:'
local mc_begin = token.create'tag_mc_begin:n'
@@ -65,6 +66,11 @@ local function write_elem(tree, stash)
return tex.sprint(struct_use, '{', tree[':struct'], '}')
end)
end
+ if tree[':structnum'] then
+ return tex.runtoks(function()
+ return tex.sprint(struct_use_num, '{', tree[':structnum'], '}')
+ end)
+ end
if not tree[0] then print('ERR', require'inspect'(tree)) end
local i = 0
for attr, val in next, tree do if type(attr) == 'string' and not string.find(attr, ':') and attr ~= 'xmlns' then
diff --git a/luamml-tex-annotate.lua b/luamml-tex-annotate.lua
index 050a00a..958b3ee 100644
--- a/luamml-tex-annotate.lua
+++ b/luamml-tex-annotate.lua
@@ -83,6 +83,18 @@ local function annotate()
end
end
end
+ if annotation.structnum ~= nil then
+ local saved = props.mathml_filter
+ local structnum = annotation.structnum
+ function props.mathml_filter(mml, core)
+ mml[':structnum'] = structnum
+ if saved then
+ return saved(mml, core)
+ else
+ return mml, core
+ end
+ end
+ end
else
tex.error'Unable to annotate nucleus of node without nucleus'
end
diff --git a/luamml.dtx b/luamml.dtx
index 651185a..c45dca1 100644
--- a/luamml.dtx
+++ b/luamml.dtx
@@ -93,7 +93,23 @@
% }
% \end{verbatim}
% produces a |<mi>TeX</mi>| element in the output instead of trying to import \TeX~as a mathematical expression.
-% The table structure is explained in an appendix.
+%
+% It it possible to add a structure around the construct, stash that structure
+% and then to tell \cmd{luamml_annotate:en} to insert it later inside the math.
+% For this the keys \texttt{struct} (which takes a label as argument) or \texttt{structnum}
+% (which takes a structure number) can be used. For example
+% \begin{verbatim}
+% $a = b \quad
+% \tagstructbegin{tag=mtext,stash}\tagmcbegin{}
+% \luamml_annotate:en{nucleus=true,structnum=\tag_get:n{struct_num}}
+% {\mbox{some~text~with~\emph{structure}}}
+% \tagmcend\tagstructend
+% $
+% \end{verbatim}
+% Such a construction should check that the flag for structure elements has actually
+% been set to avoid orphaned structures if the stashed structure is ignored.
+%
+% More about the table structure is explained in an appendix.
%
% \section{Features \& Limitations}
% Currently all mathematical expressions which purely contain Unicode encoded math mode material without embedded non-math should get converted successfully.
diff --git a/testfiles-lua/test_structnum.pvt b/testfiles-lua/test_structnum.pvt
new file mode 100644
index 0000000..a9e3ca3
--- /dev/null
+++ b/testfiles-lua/test_structnum.pvt
@@ -0,0 +1,35 @@
+\ExplSyntaxOn
+\sys_gset_rand_seed:n{42}
+\ExplSyntaxOff
+\DocumentMetadata{
+ lang=en,
+ testphase={phase-III,math},
+ pdfversion=2.0,
+ pdfstandard=ua-2,
+ pdfstandard=a-4f,
+ uncompress
+}
+\input{regression-test}
+\documentclass{article}
+
+\usepackage{unicode-math}
+
+% suppress writing of luamml-mathml
+\tagpdfsetup{math/mathml/luamml/write=false} %
+
+% suppress mathml-AF reading
+\tagpdfsetup{math/mathml/sources=} %
+\tagpdfsetup{math/mathml/AF=false}
+\begin{document}
+\ExplSyntaxOn
+
+\luamml_structelem:
+$a = b \quad
+ \tagstructbegin{tag=mtext,stash}\tagmcbegin{}
+ \luamml_annotate:en{nucleus=true,structnum=\tag_get:n{struct_num}}
+ {\mbox{some~text~with~\emph{structure}}}
+ \tagmcend\tagstructend
+$
+\ExplSyntaxOff
+\end{document}
+
diff --git a/testfiles-lua/test_structnum.tpf b/testfiles-lua/test_structnum.tpf
new file mode 100644
index 0000000..6cd2230
--- /dev/null
+++ b/testfiles-lua/test_structnum.tpf
@@ -0,0 +1,783 @@
+%PDF-2.0
+%���������
+22 0 obj
+<< /N 3 /Length 3268 >>
+[BINARY STREAM]
+endobj
+23 0 obj
+<< /Type /OutputIntent /S /GTS_PDFA1 /DestOutputProfile 22 0 R /OutputConditionIdentifier (IEC\040sRGB) /Info (IEC\04061966-2.1\040Default\040RGB\040colour\040space\040-\040sRGB) /RegistryName (http://www.iec.ch) >>
+endobj
+29 0 obj
+<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20160520) >> /Length 192 >>
+stream
+$a=b\quad \tagstructbegin {tag=mtext,stash}\tagmcbegin {}\luamml_annotate:en {nucleus=true,structnum=\tag_get:n {struct_num}}{\mbox {some text with \emph {structure}}}\tagmcend \tagstructend $
+endstream
+endobj
+30 0 obj
+<< /Type /Filespec /AFRelationship /Source /Desc (TeX source) /F (tag-AFfile1.tex) /UF <FEFF007400610067002D0041004600660069006C00650031002E007400650078> /EF<</F 29 0 R/UF 29 0 R>> >>
+endobj
+36 0 obj
+<< /O/NSO/NS130R/lspace(0.278em)/rspace(0.278em) >>
+endobj
+39 0 obj
+<< /O/NSO/NS130R/width(9.963pt) >>
+endobj
+40 0 obj
+<< /Type /Metadata /Subtype /XML /Length 16669 >>
+stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+ xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+ xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"
+ xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/"
+ xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/"
+ xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/"
+ xmlns:prism="http://prismstandard.org/namespaces/basic/3.0/"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"
+ xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
+ xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
+ xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#"
+ xmlns:pdfaType="http://www.aiim.org/pdfa/ns/type#"
+ xmlns:pdfaField="http://www.aiim.org/pdfa/ns/field#"
+ xmlns:pdfd="http://pdfa.org/declarations/">
+ <pdfaExtension:schemas>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:schema>XMP Media Management Schema</pdfaSchema:schema>
+ <pdfaSchema:prefix>xmpMM</pdfaSchema:prefix>
+ <pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>OriginalDocumentID</pdfaProperty:name>
+ <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>The common identifier for all versions and renditions of a document.</pdfaProperty:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:schema>PDF/A Identification Schema</pdfaSchema:schema>
+ <pdfaSchema:prefix>pdfaid</pdfaSchema:prefix>
+ <pdfaSchema:namespaceURI>http://www.aiim.org/pdfa/ns/id/</pdfaSchema:namespaceURI>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>year</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Year of standard</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision year of standard</pdfaProperty:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:schema>PDF/UA Universal Accessibility Schema</pdfaSchema:schema>
+ <pdfaSchema:prefix>pdfuaid</pdfaSchema:prefix>
+ <pdfaSchema:namespaceURI>http://www.aiim.org/pdfua/ns/id/</pdfaSchema:namespaceURI>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>part</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Part of ISO 14289 standard</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>rev</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Revision of ISO 14289 standard</pdfaProperty:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:schema>PDF/X ID Schema</pdfaSchema:schema>
+ <pdfaSchema:prefix>pdfxid</pdfaSchema:prefix>
+ <pdfaSchema:namespaceURI>http://www.npes.org/pdfx/ns/id/</pdfaSchema:namespaceURI>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>GTS_PDFXVersion</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>ID of PDF/X standard</pdfaProperty:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:schema>PRISM Basic Metadata</pdfaSchema:schema>
+ <pdfaSchema:prefix>prism</pdfaSchema:prefix>
+ <pdfaSchema:namespaceURI>http://prismstandard.org/namespaces/basic/3.0/</pdfaSchema:namespaceURI>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>complianceProfile</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>PRISM specification compliance profile to which this document adheres</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>publicationName</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Publication name</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>aggregationType</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Publication type</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>bookEdition</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Edition of the book in which the document was published</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>volume</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Publication volume number</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>number</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Publication issue number within a volume</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>pageRange</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Page range for the document within the print version of its publication</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>issn</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>ISSN for the printed publication in which the document was published</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>eIssn</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>ISSN for the electronic publication in which the document was published</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>isbn</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>ISBN for the publication in which the document was published</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>doi</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Digital Object Identifier for the document</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>url</pdfaProperty:name>
+ <pdfaProperty:valueType>URL</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>URL at which the document can be found</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>byteCount</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Approximate file size in octets</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>pageCount</pdfaProperty:name>
+ <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Number of pages in the print version of the document</pdfaProperty:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>subtitle</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Document's subtitle</pdfaProperty:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:schema>PDF Declarations Schema</pdfaSchema:schema>
+ <pdfaSchema:prefix>pdfd</pdfaSchema:prefix>
+ <pdfaSchema:namespaceURI>http://pdfa.org/declarations/</pdfaSchema:namespaceURI>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:name>declarations</pdfaProperty:name>
+ <pdfaProperty:valueType>Bag declaration</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>An unordered array of PDF Declaration entries, where each PDF Declaration representing a statement of conformance with an identified external standard or profile, along with optional information identifying the nature of the claim.</pdfaProperty:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ <pdfaSchema:valueType>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaType:type>claim</pdfaType:type>
+ <pdfaType:namespaceURI>http://pdfa.org/declarations/</pdfaType:namespaceURI>
+ <pdfaType:prefix>pdfd</pdfaType:prefix>
+ <pdfaType:description>A structure describing properties of an individualclaim.</pdfaType:description>
+ <pdfaType:field>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaField:name>claimReport</pdfaField:name>
+ <pdfaField:valueType>Text</pdfaField:valueType>
+ <pdfaField:description>A URL to a report containing details of the specific conformance claim.</pdfaField:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaField:name>claimCredentials</pdfaField:name>
+ <pdfaField:valueType>Text</pdfaField:valueType>
+ <pdfaField:description>The claimant's credentials.</pdfaField:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaField:name>claimDate</pdfaField:name>
+ <pdfaField:valueType>Text</pdfaField:valueType>
+ <pdfaField:description>A date identifying when the claim was made.</pdfaField:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaField:name>claimBy</pdfaField:name>
+ <pdfaField:valueType>Text</pdfaField:valueType>
+ <pdfaField:description>The name of the organization and/or individual and/or software making the claim.</pdfaField:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaType:field>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaType:type>declaration</pdfaType:type>
+ <pdfaType:namespaceURI>http://pdfa.org/declarations/</pdfaType:namespaceURI>
+ <pdfaType:prefix>pdfd</pdfaType:prefix>
+ <pdfaType:description>A structure describing a single PDF Declaration asserting conformance with an externally-identified standard or profile.</pdfaType:description>
+ <pdfaType:field>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaField:name>conformsTo</pdfaField:name>
+ <pdfaField:valueType>Text</pdfaField:valueType>
+ <pdfaField:description>A property containing a URI specifying the standard or profile by the PDF Declaration. This property is intended to mirror the Dublin Core property dc:conformsTo.</pdfaField:description>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaField:name>claimData</pdfaField:name>
+ <pdfaField:valueType>Bag claim</pdfaField:valueType>
+ <pdfaField:description>An unordered array of claim data, where each claim identifies the nature of the claim.</pdfaField:description>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaType:field>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:valueType>
+ </rdf:li>
+ </rdf:Bag>
+ </pdfaExtension:schemas>
+ <pdf:Producer>luahbtex-NN.NN.NN</pdf:Producer>
+ <pdf:PDFVersion>2.0</pdf:PDFVersion>
+ <pdfaid:part>4</pdfaid:part>
+ <pdfaid:conformance>F</pdfaid:conformance>
+ <pdfaid:rev>2020</pdfaid:rev>
+ <pdfuaid:part>2</pdfuaid:part>
+ <pdfuaid:rev>2024</pdfuaid:rev>
+ <pdfd:declarations>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <pdfd:conformsTo>http://pdfa.org/declarations/wtpdf#accessibility1.0</pdfd:conformsTo>
+ <pdfd:claimData>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <pdfd:claimBy>LaTeX Project</pdfd:claimBy>
+ <pdfd:claimDate>2016-05-20</pdfd:claimDate>
+ </rdf:li>
+ </rdf:Bag>
+ </pdfd:claimData>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfd:conformsTo>http://pdfa.org/declarations/wtpdf#reuse1.0</pdfd:conformsTo>
+ <pdfd:claimData>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <pdfd:claimBy>LaTeX Project</pdfd:claimBy>
+ <pdfd:claimDate>2016-05-20</pdfd:claimDate>
+ </rdf:li>
+ </rdf:Bag>
+ </pdfd:claimData>
+ </rdf:li>
+ </rdf:Bag>
+ </pdfd:declarations>
+ <dc:type>
+ <rdf:Bag>
+ <rdf:li>Text</rdf:li>
+ </rdf:Bag>
+ </dc:type>
+ <dc:language>
+ <rdf:Bag>
+ <rdf:li>en</rdf:li>
+ </rdf:Bag>
+ </dc:language>
+ <dc:date>
+ <rdf:Seq>
+ <rdf:li>2016-05-20T09:00:00Z</rdf:li>
+ </rdf:Seq>
+ </dc:date>
+ <dc:format>application/pdf</dc:format>
+ <dc:source>test_structnum.tex</dc:source>
+ <xmp:CreatorTool>LaTeX</xmp:CreatorTool>
+ <xmp:CreateDate>2016-05-20T09:00:00Z</xmp:CreateDate>
+ <xmp:ModifyDate>2016-05-20T09:00:00Z</xmp:ModifyDate>
+ <xmp:MetadataDate>2016-05-20T09:00:00Z</xmp:MetadataDate>
+ <xmpMM:DocumentID>uuid:2b6fecb9-b74a-4265-883d-138c87e7152f</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:0a57c455-157a-4141-8c19-6237d832fc80</xmpMM:InstanceID>
+ <prism:complianceProfile>three</prism:complianceProfile>
+ <prism:pageCount>1</prism:pageCount>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+<?xpacket end="w"?>
+endstream
+endobj
+43 0 obj
+<< /Length 653 >>
+stream
+/opacity1 gs
+/Artifact BMC
+EMC
+/mi<</MCID 0>> BDC
+BT
+/F20 9.96264 Tf
+1 0 0 1 148.712 657.235 Tm [<0510>]TJ
+ET
+EMC
+/mo<</MCID 1>> BDC
+BT
+/F20 9.96264 Tf
+1 0 0 1 156.75 657.235 Tm [<001E>]TJ
+ET
+EMC
+/mi<</MCID 2>> BDC
+BT
+/F20 9.96264 Tf
+1 0 0 1 167.268 657.235 Tm [<0511>]TJ
+ET
+EMC
+/mtext<</MCID 3>> BDC
+BT
+/F15 9.96264 Tf
+1 0 0 1 181.505 657.235 Tm [<00620051004B0032006700690032007400690067007200420069003F0067>]TJ
+ET
+EMC
+/Em<</MCID 4>> BDC
+BT
+/F32 9.96264 Tf
+1 0 0 1 249.898 657.235 Tm [<006200690060006D002B0069006D0060>51<0032>]TJ
+ET
+EMC
+/Artifact BMC
+EMC
+/Artifact BMC
+BT
+/F15 9.96264 Tf
+1 0 0 1 303.133 89.365 Tm [<0052>]TJ
+ET
+EMC
+/Artifact BMC
+EMC
+endstream
+endobj
+42 0 obj
+<< /Type /Page /Contents 43 0 R /Resources 41 0 R /MediaBox [ 0 0 612 792 ] /StructParents 0/Tabs /S /Parent 47 0 R >>
+endobj
+41 0 obj
+<< /ExtGState 1 0 R /Font << /F20 44 0 R /F15 45 0 R /F32 46 0 R >> >>
+endobj
+1 0 obj
+<< /opacity1 <</ca 1/CA 1>> >>
+endobj
+48 0 obj
+<< /Marked true >>
+endobj
+49 0 obj
+[ 23 0 R ]
+endobj
+50 0 obj
+<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20160520) >> /Length 33 >>
+stream
+PDF standard A-4F requires a file
+endstream
+endobj
+51 0 obj
+<< /Type /Filespec /AFRelationship /Unspecified /Desc (note about PDF/A-4F) /F (readme.txt) /UF <FEFF0072006500610064006D0065002E007400780074> /EF<</F 50 0 R/UF 50 0 R>> >>
+endobj
+52 0 obj
+<< /Names[(readme) 51 0 R] >>
+endobj
+6 0 obj
+<< /Nums [0 [ 34 0 R 35 0 R 37 0 R 31 0 R 32 0 R]
+] >>
+endobj
+53 0 obj
+<< /Limits [(ID.002) (ID.014)]/Names [(ID.002) 21 0 R (ID.003) 24 0 R (ID.004) 25 0 R (ID.005) 26 0 R (ID.006) 27 0 R (ID.007) 28 0 R (ID.008) 31 0 R (ID.009) 32 0 R (ID.010) 33 0 R (ID.011) 34 0 R (ID.012) 35 0 R (ID.013) 37 0 R (ID.014) 38 0 R ] >>
+endobj
+54 0 obj
+<< /Kids [53 0 R] >>
+endobj
+7 0 obj
+<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H1 /subsection /H2 /subsubsection /H3 /paragraph /H4 /subparagraph /H5 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /P /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /theorem-like /Sect /codeline /Span /float /Note /figures /Sect /tables /Sect >>
+endobj
+55 0 obj
+<< /justify <</O/Layout/TextAlign/Justify>>
+/inline <</O/Layout/Placement/Inline>>
+ >>
+endobj
+9 0 obj
+<< /Type /Namespace /NS (http://iso.org/pdf/ssn) >>
+endobj
+11 0 obj
+<< /Type /Namespace /NS (http://iso.org/pdf2/ssn) >>
+endobj
+13 0 obj
+<< /Type /Namespace /NS (http://www.w3.org/1998/Math/MathML) >>
+endobj
+16 0 obj
+<< /title [/Title 11 0 R] /part [/Title 11 0 R] /section [/H1 11 0 R] /subsection [/H2 11 0 R] /subsubsection [/H3 11 0 R] /paragraph [/H4 11 0 R] /subparagraph [/H5 11 0 R] /list [/L 11 0 R] /itemize [/L 11 0 R] /enumerate [/L 11 0 R] /description [/L 11 0 R] /quote [/BlockQuote 9 0 R] /quotation [/BlockQuote 9 0 R] /verbatim [/P 11 0 R] /item [/LI 11 0 R] /itemlabel [/Lbl 11 0 R] /itembody [/LBody 11 0 R] /footnote [/FENote 11 0 R] /footnotemark [/Lbl 11 0 R] /footnotelabel [/Lbl 11 0 R] /text-unit [/Part 11 0 R] /text [/P 11 0 R] /theorem-like [/Sect 11 0 R] /codeline [/Sub 11 0 R] /float [/Aside 11 0 R] /figures [/Sect 11 0 R] /tables [/Sect 11 0 R] >>
+endobj
+15 0 obj
+<< /Type /Namespace /NS (https://www.latex-project.org/ns/dflt/2022) /RoleMapNS 16 0 R >>
+endobj
+18 0 obj
+<< /chapter [/H1 11 0 R] /section [/H2 11 0 R] /subsection [/H3 11 0 R] /subsubsection [/H4 11 0 R] /paragraph [/H5 11 0 R] /subparagraph [/H6 11 0 R] >>
+endobj
+17 0 obj
+<< /Type /Namespace /NS (https://www.latex-project.org/ns/book/2022) /RoleMapNS 18 0 R >>
+endobj
+19 0 obj
+<< /Type /Namespace /NS (data:,C9B55C18-275C-494E-C10F-E4B83CD03F23) >>
+endobj
+8 0 obj
+[ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R ]
+endobj
+21 0 obj
+<< /Type /StructElem /S /Document /NS 11 0 R /P 5 0 R /K 26 0 R /ID (ID.002) >>
+endobj
+24 0 obj
+<< /Type /StructElem /S /Artifact /NS 15 0 R /P 5 0 R /ID (ID.003) >>
+endobj
+25 0 obj
+<< /Type /StructElem /S /Artifact /NS 15 0 R /P 5 0 R /ID (ID.004) >>
+endobj
+26 0 obj
+<< /Type /StructElem /S /text-unit /NS 15 0 R /P 21 0 R /K 27 0 R /ID (ID.005) >>
+endobj
+27 0 obj
+<< /Type /StructElem /C /justify /S /text /NS 15 0 R /P 26 0 R /K [ 28 0 R ] /ID (ID.006) >>
+endobj
+28 0 obj
+<< /Type /StructElem /C /inline /AF [30 0 R] /T <FEFF006D006100740068> /S /Formula /NS 11 0 R /P 27 0 R /K [ 33 0 R] /ID (ID.007) >>
+endobj
+31 0 obj
+<< /Type /StructElem /S /mtext /NS 13 0 R /P 33 0 R /K [<</Type /MCR /Pg 42 0 R /MCID 3>> 32 0 R ] /ID (ID.008) >>
+endobj
+32 0 obj
+<< /Type /StructElem /S /Em /NS 11 0 R /P 31 0 R /K <</Type /MCR /Pg 42 0 R /MCID 4>> /ID (ID.009) >>
+endobj
+33 0 obj
+<< /Type /StructElem /S /math /NS 13 0 R /P 28 0 R /K [34 0 R 35 0 R 37 0 R 38 0 R 31 0 R] /ID (ID.010) >>
+endobj
+34 0 obj
+<< /Type /StructElem /S /mi /NS 13 0 R /P 33 0 R /K <</Type /MCR /Pg 42 0 R /MCID 0>> /ID (ID.011) >>
+endobj
+35 0 obj
+<< /Type /StructElem /A 36 0 R /S /mo /NS 13 0 R /P 33 0 R /K <</Type /MCR /Pg 42 0 R /MCID 1>> /ID (ID.012) >>
+endobj
+37 0 obj
+<< /Type /StructElem /S /mi /NS 13 0 R /P 33 0 R /K <</Type /MCR /Pg 42 0 R /MCID 2>> /ID (ID.013) >>
+endobj
+38 0 obj
+<< /Type /StructElem /A 39 0 R /S /mspace /NS 13 0 R /P 33 0 R /ID (ID.014) >>
+endobj
+5 0 obj
+<< /Type /StructTreeRoot /Namespaces 8 0 R /IDTree 54 0 R /ClassMap 55 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 21 0 R >>
+endobj
+56 0 obj
+[ 43 [ 460 ] 50 [ 460 ] 96 [ 422 ] 98 [ 409 ] 105 [ 332 ] 109 [ 537 ] ]
+endobj
+58 0 obj
+<< /Subtype /CIDFontType0C /Length 1274 >>
+[BINARY STREAM]
+endobj
+57 0 obj
+<< /Type /FontDescriptor /FontName /ADNFRA+LMRoman10-Italic /Flags 4 /FontBBox [ -458 -290 1386 1125 ] /Ascent 1125 /CapHeight 683 /Descent -290 /ItalicAngle -15 /StemV 102 /XHeight 431 /FontFile3 58 0 R >>
+endobj
+59 0 obj
+<< /Length 757 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-ADNFRA-LMRoman10-Italic-0)
+%%Title: (TeX-ADNFRA-LMRoman10-Italic-0 TeX ADNFRA-LMRoman10-Italic 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (ADNFRA-LMRoman10-Italic)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-ADNFRA-LMRoman10-Italic def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+6 beginbfchar
+<002B> <0063>
+<0032> <0065>
+<0060> <0072>
+<0062> <0073>
+<0069> <0074>
+<006D> <0075>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+46 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ADNFRA+LMRoman10-Italic /DescendantFonts [ 60 0 R ] /ToUnicode 59 0 R >>
+endobj
+60 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ADNFRA+LMRoman10-Italic /FontDescriptor 57 0 R /W 56 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
+61 0 obj
+[ 50 [ 444 ] 63 [ 556 ] 66 [ 278 ] 75 [ 833 ] 81 [ 500 500 ] 98 [ 394 ] 103 [ 333 ] 105 [ 389 ] 114 [ 722 ] 116 [ 528 ] ]
+endobj
+63 0 obj
+<< /Subtype /CIDFontType0C /Length 1812 >>
+[BINARY STREAM]
+endobj
+62 0 obj
+<< /Type /FontDescriptor /FontName /GZYIXU+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 63 0 R >>
+endobj
+64 0 obj
+<< /Length 833 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-GZYIXU-LMRoman10-Regular-0)
+%%Title: (TeX-GZYIXU-LMRoman10-Regular-0 TeX GZYIXU-LMRoman10-Regular 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (GZYIXU-LMRoman10-Regular)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-GZYIXU-LMRoman10-Regular def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+11 beginbfchar
+<0032> <0065>
+<003F> <0068>
+<0042> <0069>
+<004B> <006D>
+<0051> <006F>
+<0052> <0031>
+<0062> <0073>
+<0067> <0020>
+<0069> <0074>
+<0072> <0077>
+<0074> <0078>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+45 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /GZYIXU+LMRoman10-Regular /DescendantFonts [ 65 0 R ] /ToUnicode 64 0 R >>
+endobj
+65 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /GZYIXU+LMRoman10-Regular /FontDescriptor 62 0 R /W 61 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
+66 0 obj
+[ 30 [ 778 ] 1296 [ 529 429 ] ]
+endobj
+68 0 obj
+<< /Subtype /CIDFontType0C /Length 984 >>
+[BINARY STREAM]
+endobj
+67 0 obj
+<< /Type /FontDescriptor /FontName /NFEDYW+LatinModernMath-Regular /Flags 4 /FontBBox [ -1042 -3060 4082 3560 ] /Ascent 806 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 68 0 R >>
+endobj
+69 0 obj
+<< /Length 758 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-NFEDYW-LatinModernMath-Regular-0)
+%%Title: (TeX-NFEDYW-LatinModernMath-Regular-0 TeX NFEDYW-LatinModernMath-Regular 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (NFEDYW-LatinModernMath-Regular)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-NFEDYW-LatinModernMath-Regular def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+3 beginbfchar
+<001E> <003D>
+<0510> <D835DC4E>
+<0511> <D835DC4F>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+44 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /NFEDYW+LatinModernMath-Regular /DescendantFonts [ 70 0 R ] /ToUnicode 69 0 R >>
+endobj
+70 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /NFEDYW+LatinModernMath-Regular /FontDescriptor 67 0 R /W 66 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
+47 0 obj
+<< /Type /Pages /Count 1 /Kids [ 42 0 R ] >>
+endobj
+71 0 obj
+<< /EmbeddedFiles 52 0 R >>
+endobj
+72 0 obj
+<< /Type /Catalog /Pages 47 0 R /Names 71 0 R /MarkInfo 48 0 R/OutputIntents 49 0 R/Lang (en)/Metadata 40 0 R/StructTreeRoot 5 0 R >>
+endobj
+xref
+0 73
+0000000002 65535 f
+0000021934 00000 n
+0000000003 00000 f
+0000000004 00000 f
+0000000010 00000 f
+0000026429 00000 n
+0000022448 00000 n
+0000022823 00000 n
+0000024880 00000 n
+0000023505 00000 n
+0000000012 00000 f
+0000023573 00000 n
+0000000014 00000 f
+0000023643 00000 n
+0000000020 00000 f
+0000024406 00000 n
+0000023724 00000 n
+0000024684 00000 n
+0000024513 00000 n
+0000024791 00000 n
+0000000000 00000 f
+0000024941 00000 n
+0000000020 00000 n
+0000003353 00000 n
+0000025039 00000 n
+0000025127 00000 n
+0000025215 00000 n
+0000025315 00000 n
+0000025426 00000 n
+0000003586 00000 n
+0000003921 00000 n
+0000025577 00000 n
+0000025711 00000 n
+0000025832 00000 n
+0000025957 00000 n
+0000026078 00000 n
+0000004121 00000 n
+0000026210 00000 n
+0000026331 00000 n
+0000004189 00000 n
+0000004240 00000 n
+0000021847 00000 n
+0000021712 00000 n
+0000020999 00000 n
+0000035068 00000 n
+0000032552 00000 n
+0000029052 00000 n
+0000035434 00000 n
+0000021981 00000 n
+0000022017 00000 n
+0000022044 00000 n
+0000022213 00000 n
+0000022402 00000 n
+0000022519 00000 n
+0000022786 00000 n
+0000023402 00000 n
+0000026566 00000 n
+0000028012 00000 n
+0000026654 00000 n
+0000028235 00000 n
+0000029205 00000 n
+0000029404 00000 n
+0000031438 00000 n
+0000029542 00000 n
+0000031659 00000 n
+0000032706 00000 n
+0000032906 00000 n
+0000034022 00000 n
+0000032954 00000 n
+0000034250 00000 n
+0000035228 00000 n
+0000035496 00000 n
+0000035540 00000 n
+trailer
+<< /Size 73 /Root 72 0 R /ID [ <2350CAD05F8A7AF0AA4058486855344F> <2350CAD05F8A7AF0AA4058486855344F> ] >>
+startxref
+35690
+%%EOF
More information about the latex3-commits
mailing list.