summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/luacolor
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-02-24 03:01:26 +0000
committerNorbert Preining <norbert@preining.info>2020-02-24 03:01:26 +0000
commit33f4ae660b866731387e4c21e528aaa283009d6c (patch)
treec1f1449987542917a209c7e108a1a48f81fc70e3 /macros/latex/contrib/luacolor
parent0908ef0004729f1b45b8d9687656f2f92fc122ae (diff)
CTAN sync 202002240301
Diffstat (limited to 'macros/latex/contrib/luacolor')
-rw-r--r--macros/latex/contrib/luacolor/luacolor.dtx318
-rw-r--r--macros/latex/contrib/luacolor/luacolor.pdfbin322335 -> 316983 bytes
2 files changed, 63 insertions, 255 deletions
diff --git a/macros/latex/contrib/luacolor/luacolor.dtx b/macros/latex/contrib/luacolor/luacolor.dtx
index 7ce99e5322..3073f2be03 100644
--- a/macros/latex/contrib/luacolor/luacolor.dtx
+++ b/macros/latex/contrib/luacolor/luacolor.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: luacolor.dtx
-% Version: 2019/11/29 v1.13
+% Version: 2020-02-22 v1.14
% Info: Color support via LuaTeX's attributes
%
% Copyright (C)
% 2007, 2009-2011 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
+% 2016-2020 Oberdiek Package Support Group
% https://github.com/ho-tex/luacolor/issues
%
% This work may be distributed and/or modified under the
@@ -80,7 +80,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: luacolor 2019/11/29 v1.13 Color support via LuaTeX's attributes (HO)}
+\Msg{* Package: luacolor 2020-02-22 v1.14 Color support via LuaTeX's attributes (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -92,11 +92,11 @@
This is a generated file.
Project: luacolor
-Version: 2019/11/29 v1.13
+Version: 2020-02-22 v1.14
Copyright (C)
2007, 2009-2011 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2020 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -118,7 +118,6 @@ https://github.com/ho-tex/luacolor/issues
This work consists of the main source file luacolor.dtx
and the derived files
luacolor.sty, luacolor.pdf, luacolor.ins, luacolor.drv,
- luacolor-test1.tex, luacolor-test2.tex, luacolor-test3.tex,
luacolor.lua,
\endpreamble
@@ -129,14 +128,6 @@ and the derived files
\file{luacolor.drv}{\from{luacolor.dtx}{driver}}%
\usedir{tex/latex/luacolor}%
\file{luacolor.sty}{\from{luacolor.dtx}{package}}%
-% \usedir{doc/latex/luacolor/test}%
-% \file{luacolor-test1.tex}{\from{luacolor.dtx}{test1}}%
-% \file{luacolor-test2.tex}{\from{luacolor.dtx}{test2}}%
-% \file{luacolor-test3.tex}{\from{luacolor.dtx}{test3}}%
- \nopreamble
- \nopostamble
-% \usedir{source/latex/luacolor/catalogue}%
-% \file{luacolor.xml}{\from{luacolor.dtx}{catalogue}}%
}
\def\MetaPrefix{-- }
\def\defaultpostamble{%
@@ -178,7 +169,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{luacolor.drv}%
- [2019/11/29 v1.13 Color support via LuaTeX's attributes (HO)]%
+ [2020-02-22 v1.14 Color support via LuaTeX's attributes (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\usepackage{paralist}
@@ -194,26 +185,11 @@ and the derived files
% \fi
%
%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
%
% \GetFileInfo{luacolor.drv}
%
% \title{The \xpackage{luacolor} package}
-% \date{2019/11/29 v1.13}
+% \date{2020-02-22 v1.14}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/luacolor/issues}}}
%
@@ -356,44 +332,31 @@ and the derived files
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{luacolor}%
- [2019/11/29 v1.13 Color support via LuaTeX's attributes (HO)]
+ [2020-02-22 v1.14 Color support via LuaTeX's attributes (HO)]
% \end{macrocode}
%
% \subsection{Check for \LuaTeX}
%
% Without \LuaTeX\ there is no point in using this package.
% \begin{macrocode}
-\RequirePackage{infwarerr}[2010/04/08]%
-\RequirePackage{iftex}[2019/11/07]%
-\RequirePackage{ltxcmds}[2011/04/18]%
\RequirePackage{color}
% \end{macrocode}
-% require ltluatex rather than luatex package support for \LuaTeX\ allocations.
+%
% \begin{macrocode}
-\ifluatex
- \ifx\newattribute\@undefined
- \RequirePackage{ltluatex}%
- \fi
-\else
- \@PackageError{luacolor}{%
+\ifx\directlua\@undefined
+ \PackageError{luacolor}{%
This package may only be run using LuaTeX%
}\@ehc
\expandafter\LuaCol@AtEnd
\fi%
% \end{macrocode}
%
-% \begin{macro}{\LuaCol@directlua}
-% \begin{macrocode}
- \let\LuaCol@directlua\directlua
-% \end{macrocode}
-% \end{macro}
-%
% \subsection{Check for disabled colors}
%
% \begin{macrocode}
\ifcolors@
\else
- \@PackageWarningNoLine{luacolor}{%
+ \PackageWarningNoLine{luacolor}{%
Colors are disabled by option `monochrome'%
}%
\def\set@color{}%
@@ -407,15 +370,15 @@ and the derived files
% \subsection{Load module and check version}
%
% \begin{macrocode}
-\LuaCol@directlua{%
+\directlua{%
require("luacolor")%
}
% \end{macrocode}
% \begin{macrocode}
\begingroup
- \edef\x{\LuaCol@directlua{tex.write("2019/11/29 v1.13")}}%
+ \edef\x{\directlua{tex.write("2020-02-22 v1.14")}}%
\edef\y{%
- \LuaCol@directlua{%
+ \directlua{%
if oberdiek.luacolor.getversion then %
oberdiek.luacolor.getversion()%
end%
@@ -423,7 +386,7 @@ and the derived files
}%
\ifx\x\y
\else
- \@PackageError{luacolor}{%
+ \PackageError{luacolor}{%
Wrong version of lua module.\MessageBreak
Package version: \x\MessageBreak
Lua module: \y
@@ -435,7 +398,7 @@ and the derived files
% \subsection{Find driver}
%
% \begin{macrocode}
-\ifpdf
+\ifnum\outputmode=\@ne
\else
\begingroup
\def\current@color{}%
@@ -446,21 +409,21 @@ and the derived files
\endgroup
}%
\edef\reserved@a{%
- \LuaCol@directlua{%
+ \directlua{%
oberdiek.luacolor.dvidetect()%
}%
}%
\ifx\reserved@a\@empty
- \@PackageError{luacolor}{%
+ \PackageError{luacolor}{%
DVI driver detection failed because of\MessageBreak
unrecognized color \string\special
}\@ehc
\endgroup
\expandafter\expandafter\expandafter\LuaCol@AtEnd
\else
- \@PackageInfoNoLine{luacolor}{%
+ \PackageInfo{luacolor}{%
Type of color \string\special: \reserved@a
- }%
+ \@gobble}%
\fi%
\endgroup
\fi
@@ -470,17 +433,9 @@ and the derived files
%
% \begin{macro}{\LuaCol@Attribute}
% \begin{macrocode}
-\ltx@IfUndefined{newluatexattribute}{%
- \newattribute\LuaCol@Attribute
-}{%
- \newluatexattribute\LuaCol@Attribute
-}
-\ltx@IfUndefined{setluatexattribute}{%
- \let\LuaCol@setattribute\setattribute
-}{%
- \let\LuaCol@setattribute\setluatexattribute
-}
-\LuaCol@directlua{%
+\newattribute\LuaCol@Attribute
+\let\LuaCol@setattribute\setattribute
+\directlua{%
oberdiek.luacolor.setattribute(\number\allocationnumber)%
}
% \end{macrocode}
@@ -490,7 +445,7 @@ and the derived files
% \begin{macrocode}
\protected\def\set@color{%
\LuaCol@setattribute\LuaCol@Attribute{%
- \LuaCol@directlua{%
+ \directlua{%
oberdiek.luacolor.get("\luaescapestring{\current@color}")%
}%
}%
@@ -508,7 +463,7 @@ and the derived files
% \begin{macro}{\luacolorProcessBox}
% \begin{macrocode}
\def\luacolorProcessBox#1{%
- \LuaCol@directlua{%
+ \directlua{%
oberdiek.luacolor.process(\number#1)%
}%
}
@@ -527,44 +482,26 @@ and the derived files
\set@color
% \end{macrocode}
%
-% \subsection{\cs{pdfxform} support}
+% \subsection{\cs{pdfxform}/\cs{saveboxresource} support}
%
% \begin{macrocode}
-\ifpdf
- \ifx\pdfxform\@undefined
- \let\pdfxform\saveboxresource
- \fi
- \ltx@IfUndefined{pdfxform}{%
- \directlua{%
- tex.enableprimitives('',{%
- 'pdfxform','pdflastxform','pdfrefxform'%
- })%
+\ifnum\outputmode=\@ne
+ \let\LuaCol@org@pdfxform\saveboxresource
+% \end{macrocode}
+% This is written in Lua so the integer setting is expandable and does not interfere with
+% a preceding \verb|\immediate|.
+% \begin{macrocode}
+ \protected\def\saveboxresource{%
+ \directlua{
+ local c = token.scan_int()
+ oberdiek.luacolor.process(c)
+ token.put_next(token.create'LuaCol@org@pdfxform', token.new(c, token.command_id'char_given'))
}%
- }{}%
- \ltx@IfUndefined{protected}{%
- \directlua{tex.enableprimitives('',{'protected'})}%
- }{}%
- \ltx@IfUndefined{pdfxform}{%
- \@PackageWarning{luacolor}{\string\pdfxform\space not found}%
- }{%
- \let\LuaCol@org@pdfxform\pdfxform
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname protected\endcsname\relax
- \@PackageWarning{luacolor}{\string\protected\space not found}%
- \else
- \expandafter\protected
- \fi
- \def\pdfxform{%
- \begingroup
- \afterassignment\LuaCol@pdfxform
- \count@=%
}%
- \def\LuaCol@pdfxform{%
- \luacolorProcessBox\count@
- \LuaCol@org@pdfxform\count@
- \endgroup
- }%
- }%
+% \end{macrocode}
+% Legacy alias.
+% \begin{macrocode}
+ \let\pdfxform\saveboxresource
\fi
% \end{macrocode}
%
@@ -589,7 +526,7 @@ oberdiek.luacolor = luacolor
% \begin{macro}{getversion()}
% \begin{macrocode}
function luacolor.getversion()
- tex.write("2019/11/29 v1.13")
+ tex.write("2020-02-22 v1.14")
end
% \end{macrocode}
% \end{macro}
@@ -784,8 +721,10 @@ local function traverse(list, color, dry)
traverse(n.leader, color, DRY_FALSE or dry)
else
traverse(n.leader, '', DRY_FALSE or dry)
+% \end{macrocode}
% The color status is unknown here, because the leader box
% will or will not be set.
+% \begin{macrocode}
color = ''
end
elseif t == COLOR then
@@ -829,160 +768,21 @@ function luacolor.process(box)
end
% \end{macrocode}
% \end{macro}
-%
-% \begin{macrocode}
-%</lua>
-% \end{macrocode}
-%
-% \section{Test}
-%
-% \begin{macrocode}
-%<*test1>
-\documentclass{article}
-\usepackage{color}
-%</test1>
-% \end{macrocode}
-% \subsection{Catcode checks for loading}
-%
-% \begin{macrocode}
-%<*test1>
-% \end{macrocode}
+% For recent versions of luaotfload, we can register a callback to
+% control how coloring glyph is handled for the color feature.
% \begin{macrocode}
-\catcode`\{=1 %
-\catcode`\}=2 %
-\catcode`\#=6 %
-\catcode`\@=11 %
-\expandafter\ifx\csname count@\endcsname\relax
- \countdef\count@=255 %
-\fi
-\expandafter\ifx\csname @gobble\endcsname\relax
- \long\def\@gobble#1{}%
-\fi
-\expandafter\ifx\csname @firstofone\endcsname\relax
- \long\def\@firstofone#1{#1}%
-\fi
-\expandafter\ifx\csname loop\endcsname\relax
- \expandafter\@firstofone
-\else
- \expandafter\@gobble
-\fi
-{%
- \def\loop#1\repeat{%
- \def\body{#1}%
- \iterate
- }%
- \def\iterate{%
- \body
- \let\next\iterate
- \else
- \let\next\relax
- \fi
- \next
- }%
- \let\repeat=\fi
-}%
-\def\RestoreCatcodes{}
-\count@=0 %
-\loop
- \edef\RestoreCatcodes{%
- \RestoreCatcodes
- \catcode\the\count@=\the\catcode\count@\relax
- }%
-\ifnum\count@<255 %
- \advance\count@ 1 %
-\repeat
-
-\def\RangeCatcodeInvalid#1#2{%
- \count@=#1\relax
- \loop
- \catcode\count@=15 %
- \ifnum\count@<#2\relax
- \advance\count@ 1 %
- \repeat
-}
-\def\RangeCatcodeCheck#1#2#3{%
- \count@=#1\relax
- \loop
- \ifnum#3=\catcode\count@
- \else
- \errmessage{%
- Character \the\count@\space
- with wrong catcode \the\catcode\count@\space
- instead of \number#3%
- }%
- \fi
- \ifnum\count@<#2\relax
- \advance\count@ 1 %
- \repeat
-}
-\def\space{ }
-\expandafter\ifx\csname LoadCommand\endcsname\relax
- \def\LoadCommand{\input luacolor.sty\relax}%
-\fi
-\def\Test{%
- \RangeCatcodeInvalid{0}{47}%
- \RangeCatcodeInvalid{58}{64}%
- \RangeCatcodeInvalid{91}{96}%
- \RangeCatcodeInvalid{123}{255}%
- \catcode`\@=12 %
- \catcode`\\=0 %
- \catcode`\%=14 %
- \LoadCommand
- \RangeCatcodeCheck{0}{36}{15}%
- \RangeCatcodeCheck{37}{37}{14}%
- \RangeCatcodeCheck{38}{47}{15}%
- \RangeCatcodeCheck{48}{57}{12}%
- \RangeCatcodeCheck{58}{63}{15}%
- \RangeCatcodeCheck{64}{64}{12}%
- \RangeCatcodeCheck{65}{90}{11}%
- \RangeCatcodeCheck{91}{91}{15}%
- \RangeCatcodeCheck{92}{92}{0}%
- \RangeCatcodeCheck{93}{96}{15}%
- \RangeCatcodeCheck{97}{122}{11}%
- \RangeCatcodeCheck{123}{255}{15}%
- \RestoreCatcodes
-}
-\Test
-\csname @@end\endcsname
-\end
-% \end{macrocode}
-% \begin{macrocode}
-%</test1>
-% \end{macrocode}
-%
-% \subsection{Driver detection}
-%
-% \begin{macrocode}
-%<*test2>
-\NeedsTeXFormat{LaTeX2e}
-\ifcsname driver\endcsname
- \expandafter\PassOptionsToPackage\expandafter{\driver}{color}%
- \pdfoutput=0 %
-\fi
-\documentclass{minimal}
-\usepackage{luacolor}[2018/11/01]
-\csname @@end\endcsname
-\end
-%</test2>
+if luaotfload.set_colorhandler then
+ local set_attribute = node.direct.set_attribute
+ luaotfload.set_colorhandler(function(head, n, color)
+ set_attribute(n, attribute, luacolor.getvalue(color))
+ return head, n
+ end)
+end
% \end{macrocode}
%
% \begin{macrocode}
-%<*test3>
-\NeedsTeXFormat{LaTeX2e}
-% \end{macrocode}
-% \begin{macrocode}
-\documentclass{minimal}
-\usepackage{luacolor}[2018/11/01]
-\usepackage{qstest}
-\IncludeTests{*}
-\LogTests{log}{*}{*}
-\makeatletter
-% \end{macrocode}
-% \begin{macrocode}
-\@@end
-%</test3>
+%</lua>
% \end{macrocode}
-%
% \section{Installation}
%
% \subsection{Download}
@@ -1236,6 +1036,14 @@ end
% Documentation updates.
% \item Use \xpackage{iftex} directly.
% \end{Version}
+% \begin{Version}{2020-02-22 v1.14}
+% \item Drop use of \textsf{iftex} \textsf{ltxcmds} and \textsf{infwarerr}.
+% \item Assume \textsf{ltluatex} preloaded into format (true since 2015).
+% \item Patch \verb|\saveboxresource| rather than \verb|\pdfxform| (keep old name as alias).
+% \item Grab the number via Lua so that a \verb|\immediate| prefix still works with
+% \verb|\saveboxresource|\slash \verb|\pdfxform|.
+% \item Added handler for the color feature of luaotfload
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/luacolor/luacolor.pdf b/macros/latex/contrib/luacolor/luacolor.pdf
index a3bcae1cf2..edcf74c136 100644
--- a/macros/latex/contrib/luacolor/luacolor.pdf
+++ b/macros/latex/contrib/luacolor/luacolor.pdf
Binary files differ