diff options
author | Karl Berry <karl@freefriends.org> | 2016-03-14 21:24:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-03-14 21:24:36 +0000 |
commit | ecc285a4a14716fefbfab61485038eb34dd32a5e (patch) | |
tree | 0881119a51b498096daf569bee134f53315394c8 /Master/texmf-dist/source/lualatex | |
parent | a067ac95d311257396b00e472c84f8c8d069db02 (diff) |
lualatex-math (14mar16)
git-svn-id: svn://tug.org/texlive/trunk@40023 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/lualatex')
-rw-r--r-- | Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.dtx | 1010 | ||||
-rw-r--r-- | Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.ins | 8 |
2 files changed, 79 insertions, 939 deletions
diff --git a/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.dtx b/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.dtx index 8ab515ed55b..a2a4bc3b868 100644 --- a/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.dtx +++ b/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2011–2015 by Philipp Stephani +% Copyright 2011–2016 by Philipp Stephani % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -21,23 +21,17 @@ \usepackage{lualatex-math} \newcommand*{\thispackage}{\textsf{lualatex-math}\xspace} -%<!english>\excludecomment{english} -%<!german>\excludecomment{german} -%<!english>\OnlyDescription - \begin{document} -%<german>\selectlanguage{ngerman} - \DocInput{lualatex-math.dtx} \PrintChanges -%<english>\PrintIndex +\PrintIndex \end{document} %</driver> % \fi % -% \CheckSum{868} +% \CheckSum{316} % % \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 @@ -56,28 +50,14 @@ % Right brace \} Tilde \~} % % -% \begin{english} -% \changes{v0.1}{2011/04/22}{Initial version} -% \changes{v0.3a}{2011/09/13}{Updated for changes in \pkg{l3kernel}} -% \changes{v1.0}{2012/08/27}{Switched to \pkg{l3docstrip}} -% \end{english} -% -% \begin{german} -% \changes{v0.1}{2011/04/22}{Erste Version} -% \changes{v0.3a}{2011/09/13}{Aktualisierung nach inkompatiblen Änderungen in \pkg{l3kernel}} -% \changes{v1.0}{2012/08/27}{Umstellung auf \pkg{l3docstrip}} -% \end{german} +% \changes{v0.1}{2011/04/22}{Initial version} +% \changes{v0.3a}{2011/09/13}{Updated for changes in \pkg{l3kernel}} +% \changes{v1.0}{2012/08/27}{Switched to \pkg{l3docstrip}} % % \GetFileInfo{lualatex-math.sty} % -% \begin{english} -% \title{The \thispackage package\thanks{This document corresponds to -% \thispackage{}~\fileversion, dated~\filedate.}} -% \end{english} -% \begin{german} -% \title{Das Paket \thispackage\thanks{Dieses Dokument beschreibt -% \thispackage{}~\fileversion vom~\filedate.}} -% \end{german} +% \title{The \thispackage package\thanks{This document corresponds to +% \thispackage{}~\fileversion, dated~\filedate.}} % % \author{Philipp Stephani \\ \texttt{p.stephani2@gmail.com}} % \date{\filedate} @@ -87,150 +67,70 @@ % \tableofcontents % % -% \begin{english} -% \section{Introduction} -% -% \Hologo{LuaTeX} brings major improvements to all areas of \hologo{TeX} -% typesetting and programming. They are made available through new primitives -% or the embedded Lua interpreter, and combining them with existing -% \hologo{LaTeX2e} packages is not a task the average \hologo{LaTeX} user -% should have to care about. Therefore a multitude of \hologo{LaTeX2e} -% packages have been written to bridge the gap between documents and the new -% features. The \thispackage package focuses on the additional possibilities -% for mathematical typesetting. The most eminent of the new features is the -% ability to use Unicode and OpenType fonts, as provided by \Robertson’s -% \pkg{unicode-math} package. However, there is a smaller group of changes -% unrelated to Unicode: these are to be dealt with in this package. While in -% principle most \hologo{TeX} documents written for traditional engines should -% work just fine with \hologo{LuaTeX}, there is a small number of breaking -% changes that require the attention of package authors. The \thispackage -% package tries to fix some of the issues encountered while porting traditional -% macro packages to \hologo{LuaLaTeX}. -% -% The decision to write patches for existing macro packages should not be -% made lightly: monkey patching done by somebody different from the original -% package author ties the patching package to the implementation details of -% the patched functionality and breaks all rules of encapsulation. However, -% due to the lack of alternatives, it has become an accepted way of providing -% new functionality in \hologo{LaTeX}. To keep the negative impact as small -% as possible, the \thispackage package patches only the \hologo{LaTeX2e} -% kernel and a small number of popular packages. In general, this package -% should be regarded as a temporary kludge that should be removed once the -% math-related packages are updated to be usable with \hologo{LuaTeX}. By -% its very nature, the package is likely to cause problems; in such cases, -% please refer to the issue -% tracker\footnote{\url{https://github.com/phst/lualatex-math/issues}}. -% \end{english} -% -% \begin{german} -% \section{Einführung} -% -% \Hologo{LuaTeX} bringt zahlreiche Verbesserungen für alle Gebiete des -% Satzes und der Programmierung mit \hologo{TeX} mit sich. Diese -% Verbesserungen werden in Form von neuen primitiven Befehlen oder durch den -% eingebetteten Lua-Interpreter zur Verfügung gestellt, und normale -% \hologo{LaTeX}-Benutzer sollten sich nicht damit beschäftigen müssen, sie -% in \hologo{LaTeX2e} zu integrieren. Aus diesem Grund ist eine Vielzahl von -% \hologo{LaTeX2e}-Paketen entstanden, um die Lücke zwischen existierenden -% Dokumenten und den neuen Möglichkeiten zu schließen. Das Paket -% \thispackage beschäftigt sich mit den zusätzlichen Möglichkeiten für den -% Mathematiksatz. Die wichtigste davon ist die Möglichkeit, Unicode und -% OpenType-Schriften zu benutzen, was durch \Robertson{}s -% \pkg{unicode-math}-Paket ermöglicht wird. Allerdings gibt es ein paar -% Änderungen, die nicht in Bezug zu Unicode stehen: um diese kümmert sich das -% vorliegende Paket. Während prinzipiell die meisten \hologo{TeX}-Dokumente, -% die zur Verwendung mit den althergebrachten Engines verfasst wurden, ohne -% Probleme auch mit \hologo{LuaTeX} funktionieren sollten, gibt es ein paar -% wenige inkompatible Änderungen, die die Aufmerksamkeit von Paketautoren -% einfordern. Das \thispackage-Paket versucht, einige der Probleme zu lösen, -% die bei der Übertragung einiger vorhandener Makropakete nach -% \hologo{LuaLaTeX} festgestellt wurden. -% -% Im Allgemeinen sollte man nur nach sorgfältiger Abwägung Patches für -% vorhandene Makropakete verfassen: das Patchen von Code durch jemand anderen -% als den ursprünglichen Autor macht den neuen Code von der Implementation -% der gepatchten Funktionalität abhänging, was dem Kapselungsprinzip -% widerspricht. Dennoch ist diese Art der Programmierung mangels -% Alternativen zu einer akzeptierten Herangehensweise beim Implementieren -% neuer Funktionalität für \hologo{LaTeX} geworden. Um die negativen -% Auswirkungen so gering wie möglich zu halten, verändert das -% \thispackage-Paket nur den \hologo{LaTeX2e}-Kern und einige wenige bekannte -% Pakete. Generell sollte das vorliegende Paket als eine Zwischenlösung -% angesehen werden, die zu entfernen ist, sobald die mathematiksatzbezogenen -% Pakete aktualisiert wurden und korrekt unter \hologo{LuaTeX} funktionieren. -% Aufgrund seiner Natur ist es wahrscheinlich, dass dieses Paket Probleme -% verursacht; in diesen Fall benutze bitte den -% Bugtracker\footnote{\url{https://github.com/phst/lualatex-math/issues}}. -% \end{german} -% -% -% \begin{english} -% \section{Interface} -% -% The \thispackage package can be loaded with \cmd{\usepackage} or -% \cmd{\RequirePackage}, as usual. It has no options and no public -% interface; the patching is always done when the package is loaded and -% cannot be controlled. As a matter of course, the \thispackage package -% needs \hologo{LuaLaTeX} to function; it will produce error messages and -% refuse to load under other engines and formats. The package depends on the -% \pkg{expl3} bundle, the \pkg{etoolbox} package and the -% \pkg{filehook} package. The \thispackage package is independent of -% the \pkg{unicode-math} package; the fixes provided here are valid for both -% Unicode and legacy math typesetting. -% -% Currently patches for the \hologo{LaTeX2e} kernel and the \pkg{amsmath}, -% \pkg{amsopn}, \pkg{mathtools} and \pkg{icomma} packages are provided. It -% is not relevant whether you load these packages before or after -% \thispackage. They should work as expected (and ideally you shouldn’t -% notice anything), but if you load other packages that by themselves -% overwrite commands patched by this package, bad things may happen, as it is -% usual with \hologo{LaTeX}. -% -% One user-visible change is that the new -% \DescribeMacros{\mathstyle}\cmd{\mathstyle} primitive -% should work in -% all cases after the \thispackage package has been loaded, provided you use -% the high-level macros \DescribeMacros{\frac\binom\genfrac}\cmd{\frac}, -% \cmd{\binom}, and \cmd{\genfrac}. The fraction-like \hologo{TeX} -% primitives like \cmd{\over} or \cmd{\atopwithdelims} and the -% \hologo{plainTeX} leftovers like \cmd{\brack} or \cmd{\choose} cannot be -% patched, and you shouldn’t use them. -% \end{english} -% -% \begin{german} -% \section{Schnittstelle} -% -% Das \thispackage-Paket kann wie üblich mit Hilfe von |\usepackage| oder -% |\RequirePackage| geladen werden. Es besitzt weder Optionen noch eine -% öffentliche Schnittstelle; der Patchprozess wird automatisch durchgeführt, -% sobald das Paket geladen wird. Selbstverständlich funktioniert das -% \thispackage-Paket nur unter \hologo{LuaLaTeX}; für andere Engines oder -% Formate bricht das Laden mit einer Fehlermeldung ab. Das Paket hängt von -% der \pkg{expl3}-Sammlung, dem \pkg{etoolbox}-Paket -% und dem \pkg{filehook}-Paket ab. Das -% \thispackage-Paket ist unabhängig vom \pkg{unicode-math}-Paket; die hier -% zur Verfügung gestellten Korrekturen sind sowohl für Unicode"~ als auch für -% herkömmlichen Mathematiksatz gültig. -% -% Aktuell werden Patches für den \hologo{LaTeX2e}-Kern sowie für die Pakete -% \pkg{amsmath}, \pkg{amsopn}, \pkg{mathtools} und \pkg{icomma} angeboten. -% Es spielt keine Rolle, ob diese Pakete vor oder nach \thispackage geladen -% werden. Sie sollten funktionieren wie erwartet (und idealerweise sollte -% überhaupt keine Änderung bemerkbar sein), aber falls du andere Pakete, die -% selbst Befehle überschreiben, die von dem vorliegenden Paket gepatcht -% werden, lädst, können Probleme auftreten, wie bei \hologo{LaTeX} üblich. -% -% Eine für den Benutzer sichtbare Änderung besteht darin, dass der neue -% primitive Befehl \DescribeMacros{\mathstyle}|\mathstyle| -% in allen -% Fällen funktionieren sollte, nachdem \thispackage geladen wurde, unter der -% Bedingung, dass die High-Level-Makros -% \DescribeMacros{\frac\binom\genfrac}|\frac|, |\binom| und |\genfrac| -% benutzt werden. Die bruchartigen primitiven \hologo{TeX}-Befehle wie -% |\over| oder |\atopwithdelims| und die Makros aus dem -% \hologo{plainTeX}-Format wie |\brack| oder |\choose| können nicht gepatcht -% werden und sollten allgemein vermieden werden. -% \end{german} +% \section{Introduction} +% +% \Hologo{LuaTeX} brings major improvements to all areas of \hologo{TeX} +% typesetting and programming. They are made available through new primitives +% or the embedded Lua interpreter, and combining them with existing +% \hologo{LaTeX2e} packages is not a task the average \hologo{LaTeX} user +% should have to care about. Therefore a multitude of \hologo{LaTeX2e} +% packages have been written to bridge the gap between documents and the new +% features. The \thispackage package focuses on the additional possibilities +% for mathematical typesetting. The most eminent of the new features is the +% ability to use Unicode and OpenType fonts, as provided by \Robertson’s +% \pkg{unicode-math} package. However, there is a smaller group of changes +% unrelated to Unicode: these are to be dealt with in this package. While in +% principle most \hologo{TeX} documents written for traditional engines should +% work just fine with \hologo{LuaTeX}, there is a small number of breaking +% changes that require the attention of package authors. The \thispackage +% package tries to fix some of the issues encountered while porting traditional +% macro packages to \hologo{LuaLaTeX}. +% +% The decision to write patches for existing macro packages should not be +% made lightly: monkey patching done by somebody different from the original +% package author ties the patching package to the implementation details of +% the patched functionality and breaks all rules of encapsulation. However, +% due to the lack of alternatives, it has become an accepted way of providing +% new functionality in \hologo{LaTeX}. To keep the negative impact as small +% as possible, the \thispackage package patches only the \hologo{LaTeX2e} +% kernel and a small number of popular packages. In general, this package +% should be regarded as a temporary kludge that should be removed once the +% math-related packages are updated to be usable with \hologo{LuaTeX}. By +% its very nature, the package is likely to cause problems; in such cases, +% please refer to the issue +% tracker\footnote{\url{https://github.com/phst/lualatex-math/issues}}. +% +% +% \section{Interface} +% +% The \thispackage package can be loaded with \cmd{\usepackage} or +% \cmd{\RequirePackage}, as usual. It has no options and no public +% interface; the patching is always done when the package is loaded and +% cannot be controlled. As a matter of course, the \thispackage package +% needs \hologo{LuaLaTeX} to function; it will produce error messages and +% refuse to load under other engines and formats. The package depends on the +% \pkg{expl3} bundle, the \pkg{etoolbox} package and the +% \pkg{filehook} package. The \thispackage package is independent of +% the \pkg{unicode-math} package; the fixes provided here are valid for both +% Unicode and legacy math typesetting. +% +% Currently patches for the \hologo{LaTeX2e} kernel and the \pkg{amsmath}, +% \pkg{amsopn}, \pkg{mathtools} and \pkg{icomma} packages are provided. It +% is not relevant whether you load these packages before or after +% \thispackage. They should work as expected (and ideally you shouldn’t +% notice anything), but if you load other packages that by themselves +% overwrite commands patched by this package, bad things may happen, as it is +% usual with \hologo{LaTeX}. +% +% One user-visible change is that the new +% \DescribeMacros{\mathstyle}\cmd{\mathstyle} primitive +% should work in +% all cases after the \thispackage package has been loaded, provided you use +% the high-level macros \DescribeMacros{\frac\binom\genfrac}\cmd{\frac}, +% \cmd{\binom}, and \cmd{\genfrac}. The fraction-like \hologo{TeX} +% primitives like \cmd{\over} or \cmd{\atopwithdelims} and the +% \hologo{plainTeX} leftovers like \cmd{\brack} or \cmd{\choose} cannot be +% patched, and you shouldn’t use them. % % \StopEventually{} % @@ -249,7 +149,7 @@ %<@@=lltxmath> \NeedsTeXFormat{LaTeX2e}[2009/09/24] \RequirePackage{expl3}[2015/09/07] -\ProvidesExplPackage{lualatex-math}{2015/09/22}{1.4a}% +\ProvidesExplPackage{lualatex-math}{2015/09/22}{1.5}% {Patches for mathematics typesetting with LuaLaTeX} \RequirePackage { etoolbox } [ 2007/10/08 ] \cs_if_exist:NF \newluabytecode @@ -479,26 +379,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_char_dim:NN} -% The macro \cmd{\@@_char_dim:NN}\meta{primitive}\meta{token} expands to a -% \meta{dimen} whose value is the metric of the mathematical character -% corresponding to the character \texttt{\textasciigrave}\meta{token} -% specified by \meta{primitive}, which must be one of \cmd{\fontcharwd}, -% \cmd{\fontcharht} or \cmd{\fontchardp}, in the currently selected text -% style font. -% \changes{v0.3c}{2012/08/23}{\pkg{l3kernel} renamed \cs{lua_now:x} to -% \cs{lua_now_x:n}} -% \changes{v1.3a}{2014/06/18}{\pkg{l3kernel} has (currently) dropped -% \cs{lua_now_x:n}} -% \begin{macrocode} -\cs_new_nopar:Npn \@@_char_dim:NN #1 #2 { - #1 \textfont - \lua_now_x:n { - lualatex.math.print_fam_slot( \int_eval:n { `#2 } ) - } -} -% \end{macrocode} -% \end{macro} +% \changes{v1.5}{2016/03/07}{Removed unused helper macro \cs{@@_char_dim:NN}} % % \begin{macro}{\l_@@_minus_mathchar} % \begin{macro}{\l_@@_equal_mathchar} @@ -562,35 +443,8 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\resetMathstrut@} -% \pkg{amsmath} uses the box \cmd{\Mathstrutbox@} for struts in mathematical -% mode. This box is defined to have the height and depth of the opening -% parenthesis taken from the current text font. The command -% \cmd{\resetMathstrut@} is executed whenever the mathematical fonts are -% changed and has to restore the correct dimensions. The original definition -% uses a temporary mathematical character shorthand definition whose meaning -% is queried to extract the family and slot. We can do this in Lua; -% furthermore we can avoid a temporary box because \hologo{eTeX} allows us to -% query glyph metrics directly. -% \begin{macrocode} - \@@_patch:NNnnn \resetMathstrut@ \cs_set_nopar:Npn { } { - \setbox \z@ \hbox { - \mathchardef \@tempa \mathcode `\( \relax % \) - \def \@tempb ##1 "##2 ##3 { \the \textfont "##3 \char" } - \expandafter \@tempb \meaning \@tempa \relax - } - \ht \Mathstrutbox@ \ht \z@ - \dp \Mathstrutbox@ \dp \z@ - } { - \box_set_ht:Nn \Mathstrutbox@ { - \@@_char_dim:NN \fontcharht \( % \) - } - \box_set_dp:Nn \Mathstrutbox@ { - \@@_char_dim:NN \fontchardp \) - } - } -% \end{macrocode} -% \end{macro} +% \changes{v1.5}{2016/03/07}{Removed patch for \cs{Mathstrutbox@}; +% \pkg{amsmath} now has a definition usable in \Hologo{LuaLaTeX}} % % \begin{environment}{subarray} % The \env{subarray} environment uses legacy font dimensions. We simply @@ -845,28 +699,14 @@ luatexbase.provides_module({ local unpack = unpack or table.unpack % \end{macrocode} % \end{function} -% \changes{v1.4a}{2015/08/24}{Pcik up new name for string catcode table +% \changes{v1.4a}{2015/08/24}{Pick up new name for string catcode table % where available} % \begin{macrocode} local cctb = luatexbase.catcodetables or {string = luatexbase.registernumber("catcodetable@string")} % \end{macrocode} % -% \begin{function}{print_fam_slot} -% The function \func{print_fam_slot} takes one argument which must be a -% number. It interprets the argument as a Unicode code point whose -% mathematical code is printed in the form -% \meta{family}\texttt{\textvisiblespace}\meta{slot}, suitable for the -% right-hand side of \eg \verb|\fontcharht\textfont|. -% \begin{macrocode} -function lualatex.math.print_fam_slot(char) - local code = tex.getmathcode(char) - local class, family, slot = unpack(code) - local result = string.format("%i %i ", family, slot) - tex.sprint(cctb.string, result) -end -% \end{macrocode} -% \end{function} +% \changes{v1.5}{2016/03/07}{Removed unused Lua function \func{print_fam_slot}} % % \begin{function}{print_class_fam_slot} % The function \func{print_class_fam_slot} takes one argument which must be a @@ -888,700 +728,6 @@ return lualatex.math %</lua> % \end{macrocode} % -% -% \section{Test files} -% -% Finally a few small test files—but not a real test suite. -% -% -% \subsection{Common definitions} -% -% \begin{macrocode} -%<*test> -%<@@=test> -\documentclass[pagesize=auto]{scrartcl} -% \end{macrocode} -% Only \pkg{xparse} starting with 2008/08/03 has \cmd{\NewDocumentCommand}. -% \begin{macrocode} -\usepackage{xparse}[2008/08/03] -\usepackage{luacode} -\ExplSyntaxOn -\AtBeginDocument { \errorcontextlines = \c_fifteen } -% \end{macrocode} -% -% \begin{l3message}{pass} -% This message is issued when a test passed. -% \begin{macrocode} -\msg_new:nnn { test } { pass } { #1 } -% \end{macrocode} -% \end{l3message} -% -% \begin{macro}{\@@_pass:x} -% The macro \cmd{\@@_pass:x}\marg{text} issues the \msg{pass} message with -% description \meta{text}. -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_pass:x #1 { - \msg_info:nnx { test } { pass } { #1 } -} -% \end{macrocode} -% \end{macro} -% -% \begin{l3message}{fail} -% This message is issued when a test failed. -% \begin{macrocode} -\msg_new:nnn { test } { fail } { #1 } -% \end{macrocode} -% \end{l3message} -% -% \begin{macro}{\@@_fail:x} -% The macro \cmd{\@@_fail:x}\marg{text} issues the \msg{fail} message with -% description \meta{text}. -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_fail:x #1 { - \msg_error:nnx { test } { fail } { #1 } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tl_const:Nx} -% We need expanding constants. -% \begin{macrocode} -\cs_generate_variant:Nn \tl_const:Nn { Nx } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\c_@@_equal_tl} -% \begin{macro}{\c_@@_not_equal_tl} -% Two shorthands for pretty-printing test results. -% \begin{macrocode} -\tl_const:Nx \c_@@_equal_tl { \c_space_tl == \c_space_tl } -\tl_const:Nx \c_@@_not_equal_tl { \c_space_tl != \c_space_tl } -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@@_equal_pass:nxnx} -% The macro \cmd{\@@_equal_pass:nxnx}\marg{first expression}\marg{first -% value}\marg{second expression}\marg{second value} is called when the two -% values arising from the two expressions are equal. -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_equal_pass:nxnx #1 #2 #3 #4 { - \@@_pass:x { - \exp_not:n { #1 } - \c_@@_equal_tl - #2 - \c_@@_equal_tl - #4 - \c_@@_equal_tl - \exp_not:n { #3 } - } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@@_equal_fail:nxnx} -% The macro \cmd{\@@_equal_pass:nxnx}\marg{first expression}\marg{first -% value}\marg{second expression}\marg{second value} is called when the two -% values arising from the two expressions are not equal. -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_equal_fail:nxnx #1 #2 #3 #4 { - \@@_fail:x { - \exp_not:n { #1 } - \c_@@_equal_tl - #2 - \c_@@_not_equal_tl - #4 - \c_@@_equal_tl - \exp_not:n { #3 } - } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@@_assert_equal:NNNNNnn} -% \begin{macro}{\@@_assert_equal:cccccnn} -% The macro \cmd{\@@_assert_equal:NNNNNnn}\meta{set command}\meta{use -% command}\meta{compare command}\meta{first temporary command}\meta{second -% temporary command}\marg{first expression}\marg{second expression} asserts -% that the two expressions are equal. The \meta{set command} must have the -% argument specification \texttt{Nn}, the \meta{use command} \texttt{N}, and -% the \meta{compare command} \texttt{nNnTF}. -% \begin{macrocode} -\cs_new_protected_nopar:Npn -\@@_assert_equal:NNNNNnn #1 #2 #3 #4 #5 #6 #7 { - #1 #4 { #6 } - #1 #5 { #7 } - #3 { #4 } = { #5 } { - \@@_equal_pass:nxnx { #6 } { #2 #4 } { #7 } { #2 #5 } - } { - \@@_equal_fail:nxnx { #6 } { #2 #4 } { #7 } { #2 #5 } - } -} -\cs_generate_variant:Nn \@@_assert_equal:NNNNNnn { ccccc } -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@@_assert_equal:nnn} -% The macro \cmd{\@@_assert_equal:nnn}\marg{data type}\marg{first -% expression}\marg{second expression} is a simplified version of -% \cmd{\@@_assert_equal:NNNNNnn} for data types following the \hologo{LaTeX3} -% naming conventions; \meta{data type} must be \texttt{int}, \texttt{dim}, -% \etc -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_assert_equal:nnn #1 #2 #3 { - \@@_assert_equal:cccccnn - { #1 _set:Nn } { #1 _use:N } { #1 _compare:nNnTF } - { l_@@_tmpa_ #1 } { l_@@_tmpb_ #1 } { #2 } { #3 } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\l_@@_tmpa_int} -% \begin{macro}{\l_@@_tmpb_int} -% Scratch registers for numbers. -% \begin{macrocode} -\int_new:N \l_@@_tmpa_int -\int_new:N \l_@@_tmpb_int -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\AssertIntEqual} -% The command \cmd{\AssertIntEqual}\marg{first expression}\marg{second -% expression} asserts that the two integral expressions are equal. -% \begin{macrocode} -\NewDocumentCommand \AssertIntEqual { m m } { - \@@_assert_equal:nnn { int } { #1 } { #2 } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\l_@@_tmpa_int} -% \begin{macro}{\l_@@_tmpb_int} -% Scratch registers for dimensions. -% \begin{macrocode} -\dim_new:N \l_@@_tmpa_dim -\dim_new:N \l_@@_tmpb_dim -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\AssertDimEqual} -% The command \cmd{\AssertDimEqual}\marg{first expression}\marg{second -% expression} asserts that the two dimension expressions are equal. -% \begin{macrocode} -\NewDocumentCommand \AssertDimEqual { m m } { - \@@_assert_equal:nnn { dim } { #1 } { #2 } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\AssertMathStyle} -% The command \cmd{\AssertMathStyle}\marg{expression} asserts that the -% current mathematical style is equal to the value of the integral -% \meta{expression}. -% \begin{macrocode} -\NewDocumentCommand \AssertMathStyle { m } { - \AssertIntEqual { \luatex_mathstyle:D } { #1 } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@@_assert_cramped:Nx} -% The macro \cmd{\@@_assert_cramped:Nn}\meta{predicate}\marg{name} asserts -% that we are in math mode and that the current style fulfills the -% \meta{predicate} (identified by the \meta{name}) which must have the -% argument specification \texttt{n}. -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_assert_cramped:Nx #1 #2 { - \int_set:Nn \l_@@_tmpa_int { \luatex_mathstyle:D } - \bool_if:nTF { - \int_compare_p:nNn { \l_@@_tmpa_int } > { \c_minus_one } - && - #1 { \l_@@_tmpa_int } - } { - \@@_pass:x { - \exp_not:N \luatex_mathstyle:D - \c_@@_equal_tl - \int_use:N \l_@@_tmpa_int - \c_space_tl - is~ a~ #2~ style - } - } { - \@@_fail:x { - \exp_not:N \luatex_mathstyle:D - \c_@@_equal_tl - \int_use:N \l_@@_tmpa_int - \c_space_tl - is~ not~ a~ #2~ style - } - } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\AssertNoncrampedStyle} -% The command \cmd{\AssertNoncrampedStyle} asserts that the current -% mathematical style is one of the non-cramped styles. -% \begin{macrocode} -\NewDocumentCommand \AssertNoncrampedStyle { } { - \@@_assert_cramped:Nx \int_if_even_p:n { non-cramped } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\AssertCrampedStyle} -% The command \cmd{\AssertCrampedStyle} asserts that the current mathematical -% style is one of the cramped styles. -% \begin{macrocode} -\NewDocumentCommand \AssertCrampedStyle { } { - \@@_assert_cramped:Nx \int_if_odd_p:n { cramped } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\l_@@_tmpa_box} -% \begin{macro}{\l_@@_tmpb_box} -% Scratch registers for box constructions. -% \begin{macrocode} -\box_new:N \l_@@_tmpa_box -\box_new:N \l_@@_tmpb_box -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{function}{contains_space} -% The function \func{contains_space}|(head, width)| returns |true| if the -% node list starting at |head| or any of its sublists contain a glue or kern -% node of width |width|. If |width| is |nil|, returns |true| if there is any -% glue or kern node. If |width| is the string |"nonzero"|, returns |true| if -% there is any glue node or kern node of nonzero with. -% \changes{v1.1}{2012/10/13}{Allow testing for nonzero kern nodes} -% \begin{macrocode} -\begin{luacode*} -function contains_space(head, width) - for n in node.traverse(head) do - local id = n.id - if id == 10 then -- glue node - if width then - if width == "nonzero" or n.spec.width == width then - return true - end - end - elseif id == 11 then -- kern node - if width then - if width == "nonzero" then - if n.kern ~= 0 then - return true - end - elseif n.kern == width then - return true - end - end - elseif id == 0 or id == 1 then -- sublist - if contains_space(n.head, width) then - return true - end - end - end - return false -end -\end{luacode*} -% \end{macrocode} -% \end{function} -% -% \begin{macro}{\AssertNoSpace} -% The command \cmd{\AssertNoSpace}\marg{text} asserts that the node list that -% is the result of typesetting \meta{text} contains no glue or kern nodes. -% When called with a star, the command ignores zero-width kerns. -% \changes{v0.3c}{2012/08/23}{\pkg{l3kernel} renamed \cs{lua_now:x} to -% \cs{lua_now_x:n}} -% \changes{v1.1}{2012/10/13}{Allow testing for nonzero kern nodes} -% \changes{v1.3a}{2014/06/18}{\pkg{l3kernel} has (currently) dropped -% \cs{lua_now_x:n}} -% \begin{macrocode} -\NewDocumentCommand \AssertNoSpace { s m } { - \hbox_set:Nn \l_@@_tmpa_box { #2 } - \int_if_odd:nTF { - \lua_now_x:n { - local~ b = tex.getbox(\int_use:N \l_@@_tmpa_box) - if~ contains_space(b.head, - \IfBooleanTF { #1 } { "nonzero" } { nil }) then~ - tex.sprint("0") - else~ - tex.sprint("1") - end - } - } { - \@@_pass:x { - \tl_to_str:n { #2 } ~ - contains~ no~ skip~ or~ kern~ node - } - } { - \@@_fail:x { - \tl_to_str:n { #2 } ~ - contains~ a~ skip~ or~ kern~ node - } - } -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\AssertMuSpace} -% The command \cmd{\AssertMuSpace}\marg{text}\marg{muskip} asserts that the -% node list that is the result of typesetting \meta{text} contains at least -% one glue or kern node of with \meta{muskip}. -% \changes{v0.3c}{2012/08/23}{\pkg{l3kernel} renamed \cs{lua_now:x} to -% \cs{lua_now_x:n}} -% \changes{v1.3a}{2014/06/18}{\pkg{l3kernel} has (currently) dropped -% \cs{lua_now_x:n}} -% \begin{macrocode} -\makeatletter -\NewDocumentCommand \AssertMuSpace { m m } { - \hbox_set:Nn \l_@@_tmpa_box { #1 } - \hbox_set:Nn \l_@@_tmpb_box { $ \mskip #2 \m@th $ } - \int_if_odd:nTF { - \lua_now_x:n { - local~ b = tex.getbox(\int_use:N \l_@@_tmpa_box) - local~ s = tex.getbox(\int_use:N \l_@@_tmpb_box) - if~ contains_space(b.head, s.width) then~ - tex.sprint("1") - else~ - tex.sprint("0") - end - } - } { - \@@_pass:x { - \tl_to_str:n { #1 } ~ - contains~ a~ skip~ or~ kern~ node~ of~ width~ - \tl_to_str:n { #2 } - } - } { - \@@_fail:x { - \tl_to_str:n { #1 } ~ - contains~ no~ skip~ or~ kern~ node~ of~ width~ - \tl_to_str:n { #2 } - } - } -} -\makeatother -\ExplSyntaxOff -%</test> -% \end{macrocode} -% \end{macro} -% -% -% \changes{v0.3}{2011/08/07}{Added test file for modified family allocation -% scheme} -% \changes{v1.4}{2015/04/04}{Removed test file for modified family allocation -% scheme} -% \changes{v1.2}{2013/01/13}{Replace removed macro \cs{chk_if_free_cs:N}} -% \changes{v1.2}{2013/01/13}{Track renaming of \cs{int_step_inline:nnnn}} -% -% -% \subsection{\Hologo{LaTeX2e} kernel, \cs{mathstyle} primitive} -% -% Here we only check whether different fractions and other style-changing -% commands result in the correct mathematical style. -% \begin{macrocode} -%<*test-kernel-style> -\usepackage{lualatex-math} -\directlua{tex.enableprimitives("luatex",tex.extraprimitives("luatex"))} -\begin{document} -\begin{displaymath} - \AssertMathStyle{0} \sqrt{\AssertMathStyle{1}} - \frac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - a^{\frac{\AssertMathStyle{6}}{\AssertMathStyle{7}}} - \sqrt{\frac{\AssertMathStyle{3}}{\AssertMathStyle{3}}} - \displaystyle - \frac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \luatexcrampeddisplaystyle - \frac{\AssertMathStyle{3}}{\AssertMathStyle{3}} - \textstyle - \frac{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \luatexcrampedtextstyle - \frac{\AssertMathStyle{5}}{\AssertMathStyle{5}} - \scriptstyle - \frac{\AssertMathStyle{6}}{\AssertMathStyle{7}} - \luatexcrampedscriptstyle - \frac{\AssertMathStyle{7}}{\AssertMathStyle{7}} -\end{displaymath} -\begin{math} - \AssertMathStyle{2} \sqrt{\AssertMathStyle{3}} - \frac{\AssertMathStyle{4}}{\AssertMathStyle{5}} - a^{\frac{\AssertMathStyle{6}}{\AssertMathStyle{7}}} - \sqrt{\frac{\AssertMathStyle{5}}{\AssertMathStyle{5}}} - \displaystyle - \frac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \luatexcrampeddisplaystyle - \frac{\AssertMathStyle{3}}{\AssertMathStyle{3}} - \textstyle - \frac{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \luatexcrampedtextstyle - \frac{\AssertMathStyle{5}}{\AssertMathStyle{5}} - \scriptstyle - \frac{\AssertMathStyle{6}}{\AssertMathStyle{7}} - \luatexcrampedscriptstyle - \frac{\AssertMathStyle{7}}{\AssertMathStyle{7}} -\end{math} -\end{document} -%</test-kernel-style> -% \end{macrocode} -% -% -% \subsection{\pkg{amsmath}, \pkg{amsopn}, and \pkg{mathtools}} -% -% \changes{v1.1}{2012/10/13}{Add fix and unit test for \pkg{amsopn}} -% Since \pkg{mathtools} loads \pkg{amsmath} and \pkg{amsopn} anyway, we test -% all three in one file. -% \begin{macro}{\testbox} -% First a scratch box register. -% \begin{macrocode} -%<*test-amsmath> -\usepackage{lualatex-math} -\directlua{tex.enableprimitives("luatex",tex.extraprimitives("luatex"))} -\newsavebox{\testbox} -% \end{macrocode} -% \end{macro} -% We set the mathematical code for the minus sign to some arbitrary Unicode -% value to test whether the load-time patch works. -% \begin{macrocode} -\luatexUmathcode`\-="2 "33 "44444 \relax -\usepackage{amsmath} -\AssertIntEqual{\luatexUmathcode`\-}{"33444444} -\makeatletter -\AssertIntEqual{\std@minus}{"33444444} -\makeatother -% \end{macrocode} -% Check that we can still declare operators. -% \begin{macrocode} -\DeclareMathOperator{\Operator}{*-/'a-b} -\DeclareMathOperator*{\OperatorWithLimits}{01'*-/} -\DeclareMathOperator{\OperatorWithPunctuation}{a:b*/'-.} -\usepackage{mathtools} -% \end{macrocode} -% The same for the document begin hook. -% \begin{macrocode} -\luatexUmathcode`\="5 "66 "77777 \relax -\begin{document} -\AssertIntEqual{\luatexUmathcode`\=}{"66A77777} -\makeatletter -\AssertIntEqual{\std@equal}{"66A77777} -\makeatother -% \end{macrocode} -% Here we test whether the strut box has the correct height and depth. -% \begin{macrocode} -\sbox{\testbox}{$($} % ) -\makeatletter -\AssertDimEqual{\ht\Mathstrutbox@}{\ht\testbox} -\AssertDimEqual{\dp\Mathstrutbox@}{\dp\testbox} -\makeatother -% \end{macrocode} -% Here we test for the various \pkg{amsmath} features that have to be patched: -% sub-arrays and various kind of fraction-like objects. The \cmd{\substack} -% command and \env{subarray} environment aren’t really tested since it is hard -% to check whether the outcome looks right in an automated way. All tests are -% done in both inline and display mode. -% \begin{macrocode} -\begin{equation*} - \AssertMathStyle{0} \sqrt{\AssertMathStyle{1}} - \sum_{ - \substack{\frac12 \\ \frac34 \\ \frac56} - } - \sum_{ - \begin{subarray}{l} \frac12 \\ \frac34 \\ \frac56 \end{subarray} - } - \frac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - a^{\frac{\AssertMathStyle{6}}{\AssertMathStyle{7}}} - \dfrac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \tfrac{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \binom{\AssertMathStyle{2}}{\AssertMathStyle{3}} - a^{\binom{\AssertMathStyle{6}}{\AssertMathStyle{7}}} - \dbinom{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \tbinom{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \genfrac{}{}{}{}{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \genfrac{<}{/}{0pt}{0}{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \genfrac{}{}{}{1}{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \genfrac{|}{]}{4pt}{2}{\AssertMathStyle{6}}{\AssertMathStyle{7}} - \genfrac{}{}{}{3}{\AssertMathStyle{6}}{\AssertMathStyle{7}} -\end{equation*} -\begin{math} - \AssertMathStyle{2} \sqrt{\AssertMathStyle{3}} - \sum_{ - \substack{\frac12 \\ \frac34 \\ \frac56} - } - \sum_{ - \begin{subarray}{l} \frac12 \\ \frac34 \\ \frac56 \end{subarray} - } - \frac{\AssertMathStyle{4}}{\AssertMathStyle{5}} - a^{\frac{\AssertMathStyle{6}}{\AssertMathStyle{7}}} - \dfrac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \tfrac{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \binom{\AssertMathStyle{4}}{\AssertMathStyle{5}} - a^{\binom{\AssertMathStyle{6}}{\AssertMathStyle{7}}} - \dbinom{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \tbinom{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \genfrac{}{}{}{}{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \genfrac{<}{/}{0pt}{0}{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \genfrac{}{}{}{1}{\AssertMathStyle{4}}{\AssertMathStyle{5}} - \genfrac{|}{]}{4pt}{2}{\AssertMathStyle{6}}{\AssertMathStyle{7}} - \genfrac{}{}{}{3}{\AssertMathStyle{6}}{\AssertMathStyle{7}} -\end{math} -% \end{macrocode} -% Since \pkg{mathtools}’ \cmd{\cramped} command uses \cmd{\mathchoice}, we -% cannot test for a single mathematical style since all of them are executed; -% instead, we just verify that all styles encountered are cramped. -% \begin{macrocode} -\begin{equation*} - \AssertMathStyle{0} - a^{\AssertMathStyle{4} a} - \cramped{\AssertCrampedStyle a^{\AssertCrampedStyle a}} - a^{ - \AssertMathStyle{4} - a^a - \cramped{\AssertCrampedStyle a^{\AssertCrampedStyle a}} - a^a - \AssertMathStyle{4} - } - a^{ - a^{ - \AssertMathStyle{6} - a^a - \cramped{\AssertCrampedStyle a^{\AssertCrampedStyle a}} - a^a - \AssertMathStyle{6} - } - } - a^{\AssertMathStyle{4} a} - \AssertMathStyle{0} -\end{equation*} -\begin{math} - \AssertMathStyle{2} - a^{\AssertMathStyle{4} a} - \cramped{\AssertCrampedStyle a^{\AssertCrampedStyle a}} - a^{ - \AssertMathStyle{4} - a^a - \cramped{\AssertCrampedStyle a^{\AssertCrampedStyle a}} - a^a - \AssertMathStyle{4} - } - a^{ - a^{ - \AssertMathStyle{6} - a^a - \cramped{\AssertCrampedStyle a^{\AssertCrampedStyle a}} - a^a - \AssertMathStyle{6} - } - } - a^{\AssertMathStyle{4} a} - \AssertMathStyle{2} -\end{math} -% \end{macrocode} -% \changes{v1.4}{2014/08/18}{Add test for \cs{smashoperator}} -% \pkg{mathtools}’ |\smashoperator| command requires |\MT_cramped_internal:Nn| -% to work in text as well as math mode (see -% \href{https://github.com/phst/lualatex-math/issues/11}{issue~11}). -% \begin{macrocode} -\begin{math} - \smashoperator{\sum_i} -\end{math} -% \end{macrocode} -% The \pkg{amsopn} package uses |\mathcode| when executing a user-defined -% operator command. Test that this was patched out. -% \begin{macrocode} -\AssertNoSpace*{$\Operator$} -\AssertNoSpace*{$\OperatorWithLimits$} -\AssertMuSpace{$\OperatorWithPunctuation$}{\thinmuskip} -\mathcode`\-=45 \relax -\AssertNoSpace*{$\Operator$} -\AssertNoSpace*{$\OperatorWithLimits$} -\AssertMuSpace{$\OperatorWithPunctuation$}{\thinmuskip} -\end{document} -%</test-amsmath> -% \end{macrocode} -% -% -% \subsection{\pkg{unicode-math}} -% -% This test file loads both \pkg{amsmath} and \pkg{unicode-math}. The latter -% package contains fixes that somewhat overlap with ours. We have to take care -% in all packages that no attempt is made to patch a single macro twice. -% Therefore we treat warnings (that occur when trying to patch a macro with an -% unknown meaning) as errors here. However, the auxiliary package -% \pkg{fontspec-patches} uses \cmd{\RenewDocumentCommand} from the \pkg{xparse} -% package, which generates a warning that we don't want to turn into an error. -% Therefore we treat the offending message \msg{redefine-command} specially. -% \changes{v0.3c}{2012/08/23}{Added special treatment for -% \msg{redefine-command} warning} -% -% \begin{macrocode} -%<*test-unicode> -\ExplSyntaxOn -\msg_redirect_class:nn { warning } { error } -\msg_redirect_name:nnn { LaTeX } { xparse / redefine-command } { info } -\ExplSyntaxOff -\usepackage{amsmath} -\usepackage{unicode-math}[2011/05/05] -\setmathfont{XITS Math} -\usepackage{lualatex-math} -\begin{document} -\begin{equation*} - \AssertMathStyle{0} \sqrt{\AssertMathStyle{1}} - \frac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - a^{\frac{\AssertMathStyle{6}}{\AssertMathStyle{7}}} - \dfrac{\AssertMathStyle{2}}{\AssertMathStyle{3}} - \tfrac{\AssertMathStyle{4}}{\AssertMathStyle{5}} -\end{equation*} -\end{document} -%</test-unicode> -% \end{macrocode} -% -% -% \subsection{\pkg{icomma} without \pkg{unicode-math}} -% -% \changes{v0.2}{2011/07/03}{Added test file for \pkg{icomma} without -% \pkg{unicode-math}} -% This test file loads only \pkg{icomma} to test whether our patch works for -% Computer Modern. -% -% \begin{macrocode} -%<*test-icomma> -\usepackage{lualatex-math} -\usepackage{icomma} -\begin{document} -$1,234 \; (x, y)$ -\AssertNoSpace{$1,234$} -\AssertMuSpace{$(x, y)$}{\thinmuskip} -\AssertIntEqual{\mathcomma}{"1C0003B} -\end{document} -%</test-icomma> -% \end{macrocode} -% -% -% \subsection{\pkg{icomma} with \pkg{unicode-math}} -% -% \changes{v0.2}{2011/07/03}{Added test file for \pkg{icomma} with -% \pkg{unicode-math}} -% This test file loads both \pkg{icomma} and \pkg{unicode-math} to test whether -% they interact well. -% -% \begin{macrocode} -%<*test-icomma-unicode> -\usepackage{unicode-math}[2011/05/05] -\setmathfont{XITS Math} -\usepackage{lualatex-math} -\usepackage{icomma} -\begin{document} -$1,234 \; (x, y)$ -\AssertNoSpace{$1,234$} -\AssertMuSpace{$(x, y)$}{\thinmuskip} -\AssertIntEqual{\mathcomma}{"0C0002C} -\end{document} -%</test-icomma-unicode> -% \end{macrocode} -% % \Finale \endinput diff --git a/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.ins b/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.ins index 5f477d21390..871bbff5f9f 100644 --- a/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.ins +++ b/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.ins @@ -42,13 +42,7 @@ LaTeX version 2009/09/24 or later. \generate{ \file{lualatex-math.sty}{\from{lualatex-math.dtx}{package}} - \file{test-kernel-style.tex}{\from{lualatex-math.dtx}{test,test-kernel-style}} - \file{test-amsmath.tex}{\from{lualatex-math.dtx}{test,test-amsmath}} - \file{test-unicode.tex}{\from{lualatex-math.dtx}{test,test-unicode}} - \file{test-icomma.tex}{\from{lualatex-math.dtx}{test,test-icomma}} - \file{test-icomma-unicode.tex}{\from{lualatex-math.dtx}{test,test-icomma-unicode}} - \file{lualatex-math.drv}{\from{lualatex-math.dtx}{driver,english}} - \file{lualatex-math-de.drv}{\from{lualatex-math.dtx}{driver,german}} + \file{lualatex-math.drv}{\from{lualatex-math.dtx}{driver}} } \def\MetaPrefix{--} |