From 240300000e086212731e8d3698d2503a69179681 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 11 Mar 2013 23:24:28 +0000 Subject: lualatex-math (11mar13) git-svn-id: svn://tug.org/texlive/trunk@29346 c570f23f-e606-0410-a88d-b1316a301751 --- .../lualatex/lualatex-math/lualatex-math.dtx | 262 +++++++++++++++------ .../lualatex/lualatex-math/lualatex-math.ins | 2 + 2 files changed, 186 insertions(+), 78 deletions(-) (limited to 'Master/texmf-dist/source/lualatex/lualatex-math') 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 a4d2ea921f8..aad394b9896 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, 2012 by Philipp Stephani +% Copyright 2011–2013 by Philipp Stephani % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -16,16 +16,22 @@ % % \iffalse %<*driver> -\documentclass[a4paper, 10pt]{phst-doc} +\documentclass[a4paper, 10pt, ngerman, american]{phst-doc} \usepackage{lualatex-math} \newcommand*{\thispackage}{\textsf{lualatex-math}\xspace} +%\excludecomment{english} +%\excludecomment{german} +%\OnlyDescription + \begin{document} +%\selectlanguage{ngerman} + \DocInput{lualatex-math.dtx} \PrintChanges -\PrintIndex +%\PrintIndex \end{document} % @@ -50,14 +56,29 @@ % Right brace \} Tilde \~} % % -% \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}} +% \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} % % \GetFileInfo{lualatex-math.sty} % -% \title{The \thispackage package\thanks{This document corresponds to -% \thispackage{}~\fileversion, dated~\filedate.}} +% \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} +% % \author{Philipp Stephani \\ \texttt{p.stephani2@gmail.com}} % \date{\filedate} % @@ -66,68 +87,150 @@ % \tableofcontents % % -% \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, the \pkg{luatexbase} bundle 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\luatexmathstyle}\cmd{\mathstyle} primitive -% (usually called \cmd{\luatexmathstyle} in \hologo{LuaLaTeX}) 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. +% \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, the \pkg{luatexbase} bundle +% 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\luatexmathstyle}\cmd{\mathstyle} primitive +% (usually called \cmd{\luatexmathstyle} in \hologo{LuaLaTeX}) 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, der +% \pkg{luatexbase}-Sammlung 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\luatexmathstyle}|\mathstyle| +% (in \hologo{LuaLaTeX} allgemein als |\luatexmathstyle| bekannt) 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} % % \StopEventually{} % @@ -141,7 +244,7 @@ %<@@=lltxmath> \NeedsTeXFormat{LaTeX2e}[2009/09/24] \RequirePackage{expl3}[2012/08/14] -\ProvidesExplPackage{lualatex-math}{2012/10/13}{1.1}% +\ProvidesExplPackage{lualatex-math}{2013/01/13}{1.2}% {Patches for mathematics typesetting with LuaLaTeX} \RequirePackage { etoolbox } [ 2007/10/08 ] \RequirePackage { luatexbase } [ 2010/05/27 ] @@ -212,7 +315,7 @@ % \begin{l3message}{wrong-meaning} % Issued when trying to patch a macro with an unexpected meaning. The first % argument must be the detokenized macro name; the second argument must be -% the actual detokenized meaning; and the thied argument must be the expected +% the actual detokenized meaning; and the third argument must be the expected % detokenized meaning. % \begin{macrocode} \msg_new:nnn { lualatex-math } { wrong-meaning } { @@ -509,9 +612,10 @@ % will fail. If \pkg{amsmath} has already been loaded, there is nothing we % can do, therefore we use the non-starred version of % \cmd{\AtBeginOfPackageFile}. +% \changes{v1.2}{2013/01/13}{Replace removed macro \cs{chk_if_free_cs:N}} % \begin{macrocode} -\chk_if_free_cs:N \l_@@_minus_mathchar -\chk_if_free_cs:N \l_@@_equal_mathchar +\tl_new:N \l_@@_minus_mathchar +\tl_new:N \l_@@_equal_mathchar \AtBeginOfPackageFile { amsmath } { \@@_set_mathchar:NN \l_@@_minus_mathchar \- \@@_set_mathchar:NN \l_@@_equal_mathchar \= @@ -1272,23 +1376,25 @@ end % \enquote{math groups} in \hologo{LaTeX} parlance). Therefore we should still % be able to allocate 252 families. We do this alternately with \cmd{\newfam}, % \cmd{\new@mathgroup} and \cmd{\DeclareSymbolFont}. +% \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}} % \begin{macrocode} %<*test-kernel-alloc> \usepackage{lualatex-math} \makeatletter \ExplSyntaxOn -\prg_stepwise_inline:nnnn { \c_four } { \c_one } { +\int_step_inline:nnnn { \c_four } { \c_one } { \c_two_hundred_fifty_five - \c_one } { - \prg_case_int:nnn { \int_mod:nn { #1 } { \c_three } } { + \int_case:nnn { \int_mod:nn { #1 } { \c_three } } { { \c_zero } { - \chk_if_free_cs:N \g_@@_family_int + \int_new:N \g_@@_family_int \newfam \g_@@_family_int \AssertIntEqual { \g_@@_family_int } { #1 } \cs_undefine:N \g_@@_family_int } { \c_one } { - \chk_if_free_cs:N \g_@@_mathgroup_int + \int_new:N \g_@@_mathgroup_int \new@mathgroup \g_@@_mathgroup_int \AssertIntEqual { \g_@@_mathgroup_int } { #1 } \cs_undefine:N \g_@@_mathgroup_int 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 ffc3097af88..ddb6c0b28be 100644 --- a/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.ins +++ b/Master/texmf-dist/source/lualatex/lualatex-math/lualatex-math.ins @@ -48,6 +48,8 @@ LaTeX version 2009/09/24 or later. \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}} } \def\MetaPrefix{--} -- cgit v1.2.3