[latex3-commits] [latex3/pdfresources] develop, etype-switch: correct spotcolor and fontspec firstaid (5d34ca0)
github at latex-project.org
github at latex-project.org
Sun Nov 5 21:40:33 CET 2023
Repository : https://github.com/latex3/pdfresources
On branches: develop,etype-switch
Link : https://github.com/latex3/pdfresources/commit/5d34ca05d0e22633c917dd376cc15b94f8917592
>---------------------------------------------------------------
commit 5d34ca05d0e22633c917dd376cc15b94f8917592
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date: Sun Nov 5 21:40:33 2023 +0100
correct spotcolor and fontspec firstaid
>---------------------------------------------------------------
5d34ca05d0e22633c917dd376cc15b94f8917592
pdfmanagement-firstaid.dtx | 78 +++-
testfiles-luatex/fontspec-color-basic.lvt | 38 ++
testfiles-luatex/fontspec-color-basic.tlg | 0
testfiles-luatex/fontspec-color-model.pvt | 50 +++
testfiles-luatex/fontspec-color-model.tpf | 597 ++++++++++++++++++++++++++++
testfiles-luatex/fontspec-color-opacity.lvt | 35 ++
testfiles-luatex/fontspec-color-opacity.tlg | 10 +
testfiles-luatex/fontspec-spotcolor.pvt | 2 +
8 files changed, 802 insertions(+), 8 deletions(-)
diff --git a/pdfmanagement-firstaid.dtx b/pdfmanagement-firstaid.dtx
index 4164b00..b31a9d7 100644
--- a/pdfmanagement-firstaid.dtx
+++ b/pdfmanagement-firstaid.dtx
@@ -103,16 +103,78 @@
{
\bool_if:NT \g_@@_firstaid_fontspec_bool
{
- \declare at file@substitution{fontspec-luatex.sty}{fontspec-luatex-tmp-ltx.sty}
- %\@ifpackagelater{fontspec}{2023-03-10}
-% {
-% \__fontspec_keys_define_code:nnn {fontspec} {Color}
-% {
-% \tl_set:Nn \l__fontspec_hexcol_tl {#1}
-% }
-% }{}
+ \AddToHook{package/fontspec/after}
+ {
+ \@ifpackagelater{fontspec}{2021-11-04}
+ {\typeout{PDF~Management:~fontspec~firstaid~ignored}}
+ {
+ \def\c__fontspec_opacity_tl{}
+ \__fontspec_keys_define_code:nnn {fontspec} {Color}
+ {
+ \color_if_exist:nTF {#1}
+ {
+ \tl_set:Nn \l__fontspec_hexcol_tl {#1}
+ }
+ {
+ \cs_if_exist:cTF { \token_to_str:N \color@ #1 }
+ {
+ \convertcolorspec{named}{#1}{HTML}\l__fontspec_hexcol_tl
+ }
+ {
+ \int_compare:nTF { \tl_count:n {#1} == 6 }
+ { \tl_set:Nn \l__fontspec_hexcol_tl {#1} }
+ {
+ \int_compare:nTF { \tl_count:n {#1} == 8 }
+ { \fontspec_parse_colour:viii #1 }
+ {
+ \bool_if:NF \l__fontspec_firsttime_bool
+ { \__fontspec_warning:nx {bad-colour} {#1} }
+ }
+ }
+ }
+ }
+ }
+% \end{macrocode}
+% add a comma
+% \begin{macrocode}
+ \__fontspec_keys_define_code:nnn {fontspec} {Opacity}
+ {
+ \int_set:Nn \l__fontspec_tmp_int {255}
+ \__fontspec_int_mult_truncate:Nn \l__fontspec_tmp_int { #1 }
+ \tl_if_eq:NNF \l__fontspec_opacity_tl \c__fontspec_opacity_tl
+ {
+ \bool_if:NF \l__fontspec_firsttime_bool
+ { \__fontspec_warning:nx {opa-twice} {#1} }
+ }
+ \tl_set:Nx \l__fontspec_opacity_tl
+ {
+ ,
+ \int_compare:nT { \l__fontspec_tmp_int <= "F } {0} % zero pad
+ \int_to_hex:n { \l__fontspec_tmp_int }
+ }
+ }
+% \end{macrocode}
+% and a brace
+% \begin{macrocode}
+ \cs_set:Nn \__fontspec_get_features:n
+ {
+ \__fontspec_init_fontface:
+ \__fontspec_keys_set_known:nxN {fontspec-renderer} {\l__fontspec_fontfeat_clist,#1}
+ \l__fontspec_keys_leftover_clist
+ \__fontspec_keys_set_known:nxN {fontspec} {\l__fontspec_keys_leftover_clist} \l__fontspec_keys_leftover_clist
+ \keys_set:nV {fontspec-opentype} \l__fontspec_keys_leftover_clist
+
+ \tl_if_empty:NF \l__fontspec_mapping_tl
+ { \__fontspec_update_featstr:n { mapping = \l__fontspec_mapping_tl } }
+
+ \str_if_eq:eeF { \l__fontspec_hexcol_tl \l__fontspec_opacity_tl }
+ { \c__fontspec_hexcol_tl \c__fontspec_opacity_tl }
+ { \__fontspec_update_featstr:n { color = {\l__fontspec_hexcol_tl\l__fontspec_opacity_tl } } }
+ }
+ }
}
}
+ }
% \end{macrocode}
% \subsection{\pkg{beamer}}
diff --git a/testfiles-luatex/fontspec-color-basic.lvt b/testfiles-luatex/fontspec-color-basic.lvt
new file mode 100644
index 0000000..aab8061
--- /dev/null
+++ b/testfiles-luatex/fontspec-color-basic.lvt
@@ -0,0 +1,38 @@
+\DocumentMetadata{}
+\input{regression-test}
+\documentclass{article}
+\usepackage{fontspec}
+\usepackage{xcolor}
+
+\makeatletter
+\newcommand\CURRNFSS{%
+ \TIMO
+ \typeout{\curr at fontshape:^^J\space\space\fontname\font}%
+ \OMIT
+}
+
+\newcommand\MSG[1]{%
+ \TIMO
+ \typeout{#1}%
+ \OMIT
+}
+\makeatother
+\begin{document}
+
+\MSG{Loading a font with hex colour:}
+{\fontspec[Color=5500FF]{texgyreheros-regular.otf} text \CURRNFSS}
+
+\MSG{Loading a font by name (l3color+xcolor):}
+{\fontspec[Color=red]{texgyreheros-regular.otf} text \CURRNFSS}
+
+\MSG{Defining a new xcolor colour and using it:}
+\definecolor{Foo}{rgb}{0.3,0.4,0.5}
+{\fontspec[Color=Foo]{texgyreheros-regular.otf} text \CURRNFSS}
+
+\MSG{Defining a new l3color colour and using it:}
+\ExplSyntaxOn
+\color_set:nnn{Bar}{rgb}{0.5,0.4,0.3}
+\ExplSyntaxOff
+{\fontspec[Color=Bar]{texgyreheros-regular.otf} text \CURRNFSS}
+
+\end{document}
diff --git a/testfiles-luatex/fontspec-color-basic.tlg b/testfiles-luatex/fontspec-color-basic.tlg
new file mode 100644
index 0000000..e69de29
diff --git a/testfiles-luatex/fontspec-color-model.pvt b/testfiles-luatex/fontspec-color-model.pvt
new file mode 100644
index 0000000..6a650f6
--- /dev/null
+++ b/testfiles-luatex/fontspec-color-model.pvt
@@ -0,0 +1,50 @@
+\DocumentMetadata{}
+\input{regression-test}
+\documentclass{article}
+\usepackage{fontspec}
+\ExplSyntaxOn
+ \color_model_new:nnn { sepblue } { Separation }
+ {
+ name = PANTONE~3005~U ,
+ alternative-model = cmyk ,
+ alternative-values = {1, 0.56, 0,0},
+ }
+ \color_set:nnn{spotblue}{sepblue}{1}
+ \color_set:nnn{cmyk}{cmyk}{1,0,0.5,0}
+\ExplSyntaxOff
+
+\begin{document}
+
+\fontspec[Color=00FF00]{texgyreheros-regular.otf} Test
+
+\fontspec[Color=red]{texgyreheros-regular.otf} Test
+
+\fontspec[Color=cmyk]{texgyreheros-regular.otf} Test
+
+\fontspec[Color=spotblue]{texgyreheros-regular.otf} Test
+
+\ExplSyntaxOn
+\tl_set:Nn \l_color_fixed_model_tl{rgb}
+\ExplSyntaxOff
+
+\fontspec[Color=00FF00]{texgyretermes-regular.otf} Test
+
+\fontspec[Color=red]{texgyretermes-regular.otf} Test
+
+\fontspec[Color=cmyk]{texgyretermes-regular.otf} Test
+
+\fontspec[Color=spotblue]{texgyretermes-regular.otf} Test
+
+\ExplSyntaxOn
+\tl_set:Nn \l_color_fixed_model_tl{cmyk}
+\ExplSyntaxOff
+
+\fontspec[Color=00FF00]{texgyrecursor-regular.otf} Test
+
+\fontspec[Color=red]{texgyrecursor-regular.otf} Test
+
+\fontspec[Color=cmyk]{texgyrecursor-regular.otf} Test
+
+\fontspec[Color=spotblue]{texgyrecursor-regular.otf} Test
+
+\end{document}
diff --git a/testfiles-luatex/fontspec-color-model.tpf b/testfiles-luatex/fontspec-color-model.tpf
new file mode 100644
index 0000000..ab8bbd3
--- /dev/null
+++ b/testfiles-luatex/fontspec-color-model.tpf
@@ -0,0 +1,597 @@
+%PDF-1.5
+%ÌÕÁÔÅØÐÄÆ
+5 0 obj
+<< /FunctionType 2/Domain [0 1]/C0 [0 0 0 0] /C1 [1 0.56 0 0]/N 1 >>
+endobj
+6 0 obj
+[ /Separation/PANTONE#203005#20U /DeviceCMYK 5 0 R ]
+endobj
+7 0 obj
+<< /Type /Metadata /Subtype /XML /Length 11374 >>
+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#">
+ <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: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:Bag>
+ </pdfaExtension:schemas>
+ <pdf:Producer>luahbtex-NN.NN.NN</pdf:Producer>
+ <pdf:PDFVersion>1.5</pdf:PDFVersion>
+ <dc:type>
+ <rdf:Bag>
+ <rdf:li>Text</rdf:li>
+ </rdf:Bag>
+ </dc:type>
+ <dc:language>
+ <rdf:Bag>
+ <rdf:li>en-US</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>fontspec-color-model.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:9a552b9f-91a9-4569-8b2a-ad5766caedd2</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
+10 0 obj
+<< /Length 1306 >>
+stream
+/opacity1 gs
+0 1 0 rg
+BT
+/F20 9.96264 Tf
+1 0 0 1 148.712 657.235 Tm [<0069>95<00330063>5<006A>]TJ
+0 g 0 G
+1.0 0.0 0.0 rg 1.0 0.0 0.0 RG
+/F20 9.96264 Tf
+1 0 0 1 148.712 645.28 Tm [<0069>95<00330063>5<006A>]TJ
+0 g 0 G
+1.0 0.0 0.5 0.0 k 1.0 0.0 0.5 0.0 K
+/F20 9.96264 Tf
+1 0 0 1 148.712 633.325 Tm [<0069>95<00330063>5<006A>]TJ
+0 g 0 G
+/color1 cs 1.0 scn /color1 CS 1.0 SCN
+/F20 9.96264 Tf
+1 0 0 1 148.712 621.37 Tm [<0069>95<00330063>5<006A>]TJ
+0 g 0 G
+0 1 0 rg
+/F27 9.96264 Tf
+1 0 0 1 148.712 609.415 Tm [<0069>85<00330063>15<006A>]TJ
+0 g 0 G
+1.0 0.0 0.0 rg 1.0 0.0 0.0 RG
+/F27 9.96264 Tf
+1 0 0 1 148.712 597.46 Tm [<0069>85<00330063>15<006A>]TJ
+0 g 0 G
+0 1 0.5 rg 0 1 0.5 RG
+/F27 9.96264 Tf
+1 0 0 1 148.712 585.504 Tm [<0069>85<00330063>15<006A>]TJ
+0 g 0 G
+0 0.44 1 rg 0 0.44 1 RG
+/F27 9.96264 Tf
+1 0 0 1 148.712 573.549 Tm [<0069>85<00330063>15<006A>]TJ
+0 g 0 G
+0 1 0 rg
+/F34 9.96264 Tf
+1 0 0 1 148.712 561.594 Tm [<006900330063006A>]TJ
+0 g 0 G
+0 1 1 0 k 0 1 1 0 K
+/F34 9.96264 Tf
+1 0 0 1 148.712 549.639 Tm [<006900330063006A>]TJ
+0 g 0 G
+1.0 0.0 0.5 0.0 k 1.0 0.0 0.5 0.0 K
+/F34 9.96264 Tf
+1 0 0 1 148.712 537.684 Tm [<006900330063006A>]TJ
+0 g 0 G
+1 0.56 0 0 k 1 0.56 0 0 K
+/F34 9.96264 Tf
+1 0 0 1 148.712 525.729 Tm [<006900330063006A>]TJ
+0 g 0 G
+/F15 9.96264 Tf
+1 0 0 1 303.133 89.365 Tm [<0052>]TJ
+ET
+endstream
+endobj
+9 0 obj
+<< /Type /Page /Contents 10 0 R /Resources 8 0 R /MediaBox [ 0 0 612 792 ] /Parent 15 0 R >>
+endobj
+8 0 obj
+<< /ExtGState 1 0 R/ColorSpace 2 0 R /Font << /F20 11 0 R /F27 12 0 R /F34 13 0 R /F15 14 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+1 0 obj
+<< /opacity1 <</ca 1/CA 1>> >>
+endobj
+2 0 obj
+<< /color1 6 0 R >>
+endobj
+16 0 obj
+[ 82 [ 500 ] ]
+endobj
+18 0 obj
+<< /Length 11 >>
+[BINARY STREAM]
+endobj
+19 0 obj
+<< /Subtype /CIDFontType0C /Length 574 >>
+[BINARY STREAM]
+endobj
+17 0 obj
+<< /Type /FontDescriptor /FontName /JFRMQG+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 19 0 R /CIDSet 18 0 R >>
+endobj
+20 0 obj
+<< /Length 692 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-JFRMQG-LMRoman10-Regular-0)
+%%Title: (TeX-JFRMQG-LMRoman10-Regular-0 TeX JFRMQG-LMRoman10-Regular 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (JFRMQG-LMRoman10-Regular)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-JFRMQG-LMRoman10-Regular def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+1 beginbfchar
+<0052> <0031>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+14 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JFRMQG+LMRoman10-Regular /DescendantFonts [ 21 0 R ] /ToUnicode 20 0 R >>
+endobj
+21 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JFRMQG+LMRoman10-Regular /FontDescriptor 17 0 R /W 16 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
+22 0 obj
+[ 51 [ 600 ] 99 [ 600 ] 105 [ 600 600 ] ]
+endobj
+24 0 obj
+<< /Length 14 >>
+[BINARY STREAM]
+endobj
+25 0 obj
+<< /Subtype /CIDFontType0C /Length 974 >>
+[BINARY STREAM]
+endobj
+23 0 obj
+<< /Type /FontDescriptor /FontName /ANGBFD+TeXGyreCursor-Regular /Flags 4 /FontBBox [ -525 -250 1094 951 ] /Ascent 951 /CapHeight 563 /Descent -250 /ItalicAngle 0 /StemV 200 /XHeight 417 /FontFile3 25 0 R /CIDSet 24 0 R >>
+endobj
+26 0 obj
+<< /Length 754 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-ANGBFD-TeXGyreCursor-Regular-0)
+%%Title: (TeX-ANGBFD-TeXGyreCursor-Regular-0 TeX ANGBFD-TeXGyreCursor-Regular 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (ANGBFD-TeXGyreCursor-Regular)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-ANGBFD-TeXGyreCursor-Regular def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+4 beginbfchar
+<0033> <0065>
+<0063> <0073>
+<0069> <0054>
+<006A> <0074>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+13 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ANGBFD+TeXGyreCursor-Regular /DescendantFonts [ 27 0 R ] /ToUnicode 26 0 R >>
+endobj
+27 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ANGBFD+TeXGyreCursor-Regular /FontDescriptor 23 0 R /W 22 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
+28 0 obj
+[ 51 [ 444 ] 99 [ 389 ] 105 [ 611 278 ] ]
+endobj
+30 0 obj
+<< /Length 14 >>
+[BINARY STREAM]
+endobj
+31 0 obj
+<< /Subtype /CIDFontType0C /Length 930 >>
+[BINARY STREAM]
+endobj
+29 0 obj
+<< /Type /FontDescriptor /FontName /UJHTDY+TeXGyreTermes-Regular /Flags 4 /FontBBox [ -526 -281 1306 1055 ] /Ascent 1055 /CapHeight 662 /Descent -281 /ItalicAngle 0 /StemV 83 /XHeight 450 /FontFile3 31 0 R /CIDSet 30 0 R >>
+endobj
+32 0 obj
+<< /Length 754 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-UJHTDY-TeXGyreTermes-Regular-0)
+%%Title: (TeX-UJHTDY-TeXGyreTermes-Regular-0 TeX UJHTDY-TeXGyreTermes-Regular 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (UJHTDY-TeXGyreTermes-Regular)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-UJHTDY-TeXGyreTermes-Regular def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+4 beginbfchar
+<0033> <0065>
+<0063> <0073>
+<0069> <0054>
+<006A> <0074>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+12 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UJHTDY+TeXGyreTermes-Regular /DescendantFonts [ 33 0 R ] /ToUnicode 32 0 R >>
+endobj
+33 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UJHTDY+TeXGyreTermes-Regular /FontDescriptor 29 0 R /W 28 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
+34 0 obj
+[ 51 [ 556 ] 99 [ 500 ] 105 [ 611 278 ] ]
+endobj
+36 0 obj
+<< /Length 14 >>
+[BINARY STREAM]
+endobj
+37 0 obj
+<< /Subtype /CIDFontType0C /Length 830 >>
+[BINARY STREAM]
+endobj
+35 0 obj
+<< /Type /FontDescriptor /FontName /VULFFJ+TeXGyreHeros-Regular /Flags 4 /FontBBox [ -529 -284 1353 1148 ] /Ascent 1148 /CapHeight 729 /Descent -284 /ItalicAngle 0 /StemV 93 /XHeight 524 /FontFile3 37 0 R /CIDSet 36 0 R >>
+endobj
+38 0 obj
+<< /Length 749 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-VULFFJ-TeXGyreHeros-Regular-0)
+%%Title: (TeX-VULFFJ-TeXGyreHeros-Regular-0 TeX VULFFJ-TeXGyreHeros-Regular 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (VULFFJ-TeXGyreHeros-Regular)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-VULFFJ-TeXGyreHeros-Regular def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+4 beginbfchar
+<0033> <0065>
+<0063> <0073>
+<0069> <0054>
+<006A> <0074>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+11 0 obj
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VULFFJ+TeXGyreHeros-Regular /DescendantFonts [ 39 0 R ] /ToUnicode 38 0 R >>
+endobj
+39 0 obj
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VULFFJ+TeXGyreHeros-Regular /FontDescriptor 35 0 R /W 34 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+endobj
+15 0 obj
+<< /Type /Pages /Count 1 /Kids [ 9 0 R ] >>
+endobj
+40 0 obj
+<< /Type /Catalog /Pages 15 0 R /Lang (en-US)/Metadata 7 0 R >>
+endobj
+41 0 obj
+<< /Producer (LuaTeX)/Creator (TeX)/CreationDate (D:20160520090000Z)/ModDate (D:20160520090000Z) /Trapped /False >>
+endobj
+xref
+0 42
+0000000003 65535 f
+0000013248 00000 n
+0000013295 00000 n
+0000000004 00000 f
+0000000000 00000 f
+0000000020 00000 n
+0000000104 00000 n
+0000000172 00000 n
+0000013109 00000 n
+0000013001 00000 n
+0000011635 00000 n
+0000022694 00000 n
+0000020238 00000 n
+0000017676 00000 n
+0000015079 00000 n
+0000023054 00000 n
+0000013331 00000 n
+0000014091 00000 n
+0000013362 00000 n
+0000013433 00000 n
+0000014327 00000 n
+0000015233 00000 n
+0000015433 00000 n
+0000016623 00000 n
+0000015491 00000 n
+0000015565 00000 n
+0000016862 00000 n
+0000017834 00000 n
+0000018038 00000 n
+0000019184 00000 n
+0000018096 00000 n
+0000018170 00000 n
+0000019424 00000 n
+0000020396 00000 n
+0000020600 00000 n
+0000021646 00000 n
+0000020658 00000 n
+0000020732 00000 n
+0000021885 00000 n
+0000022851 00000 n
+0000023115 00000 n
+0000023195 00000 n
+trailer
+<< /Size 42 /Root 40 0 R /Info 41 0 R /ID [ <2350CAD05F8A7AF0AA4058486855344F> <2350CAD05F8A7AF0AA4058486855344F> ] >>
+startxref
+23327
+%%EOF
diff --git a/testfiles-luatex/fontspec-color-opacity.lvt b/testfiles-luatex/fontspec-color-opacity.lvt
new file mode 100644
index 0000000..28954f2
--- /dev/null
+++ b/testfiles-luatex/fontspec-color-opacity.lvt
@@ -0,0 +1,35 @@
+\DocumentMetadata{}
+\input{regression-test}
+\documentclass{article}
+\usepackage{fontspec}
+\usepackage{xcolor}
+\makeatletter
+\newcommand\CURRNFSS{%
+ \TIMO
+ \typeout{\curr at fontshape:^^J\space\space\fontname\font}%
+ \OMIT
+}
+
+\begin{document}
+\START\OMIT
+
+\fontspec[Color=red]{texgyreheros-regular.otf} Test \CURRNFSS
+
+\fontspec[
+ Color=red,Opacity=0.5
+ ]{texgyreheros-regular.otf}
+Test
+\CURRNFSS
+
+\fontspec[
+ Color=00FF00,Opacity=0.8
+ ]{texgyreheros-regular.otf}
+Test
+\CURRNFSS
+
+\fontspec[
+ Color=00FF0044,Opacity=0.8
+ ]{texgyreheros-regular.otf}
+Test \CURRNFSS
+
+\end{document}
diff --git a/testfiles-luatex/fontspec-color-opacity.tlg b/testfiles-luatex/fontspec-color-opacity.tlg
new file mode 100644
index 0000000..1e4ba0a
--- /dev/null
+++ b/testfiles-luatex/fontspec-color-opacity.tlg
@@ -0,0 +1,10 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+TU/texgyreheros-regular.otf(0)/m/n:
+ [texgyreheros-regular.otf]:mode=node;script=latn;language=dflt;color={red};
+TU/texgyreheros-regular.otf(1)/m/n:
+ [texgyreheros-regular.otf]:mode=node;script=latn;language=dflt;color={red,7f};
+TU/texgyreheros-regular.otf(2)/m/n:
+ [texgyreheros-regular.otf]:mode=node;script=latn;language=dflt;color={00FF00,cc};
+TU/texgyreheros-regular.otf(3)/m/n:
+ [texgyreheros-regular.otf]:mode=node;script=latn;language=dflt;color={00FF00,cc};
diff --git a/testfiles-luatex/fontspec-spotcolor.pvt b/testfiles-luatex/fontspec-spotcolor.pvt
index 32f7860..aa20550 100644
--- a/testfiles-luatex/fontspec-spotcolor.pvt
+++ b/testfiles-luatex/fontspec-spotcolor.pvt
@@ -21,4 +21,6 @@
\begin{document}
TTT \sffamily MMM \rmfamily xxx \ttfamily abc
+
+
\end{document}
More information about the latex3-commits
mailing list.