[luatex] a question about the names \Umathcharnumdef etc

jfbu jfbu at free.fr
Thu Oct 15 20:20:58 CEST 2015


Le 15 oct. 2015 à 19:58, jfbu <jfbu at free.fr> a écrit :

> 
> Le 15 oct. 2015 à 19:43, jfbu <jfbu at free.fr> a écrit :
> 
>> 
>> Le 15 oct. 2015 à 19:37, David Carlisle <d.p.carlisle at gmail.com> a écrit :
>> 
>>> On 15 October 2015 at 18:35, jfbu <jfbu at free.fr> wrote:
>>>> Hi Joseph
>>>> 
>>>> Le 15 oct. 2015 à 19:29, Joseph Wright <joseph.wright at morningstar2.co.uk> a écrit :
>>>> 
>>>>>> 
>>>>> 
>>>>> Hello Jean-François,
>>>>> 
>>>>> The 'real' names of the primitives have always been just \Umath... For
>>>>> some time they've been enabled with the "luatex" prefix.. The LaTeX team
>>>>> have recently taken a more 'active' interest in directly supporting
>>>>> LuaTeX (and XeTeX) by modifying latex.ltx to 'know' about these engines.
>>>>> As part of that process, we've revised the approach to the newer
>>>>> primitives and dropped the prefix 'out of the box'.
>>>>> 
>>>>> For code that needs to work both with older (pre 2015/10/01) and newer
>>>>> (2015/10/01 onward) kernel releases, adding
>>>>> 
>>>>> \directlua{
>>>>>   tex.enableprimitives("luatex", tex.extraprimitives("Umath"))
>>>>> }
>>>>> 
>>>>> (for just the Umath set) will do the job. Alternatively, if the code in
>>>>> your package gets modified to drop the prefix then
>>>>> 
>>>>> \directlua{
>>>>>   tex.enableprimitives("", tex.extraprimitives("Umath"))
>>>>> }
>>>>> 
>>>>> will ensure that the 'natural' names are available with older kernel
>>>>> releases.
>>>> 
>>>> 
>>>> OK, let's see if I get you right: I remove from mathastext.sty
>>>> all "luatex" prefixes, but also I need to add
>>>> 
>>>> \directlua{
>>>>   tex.enableprimitives("", tex.extraprimitives("Umath"))
>>>> }
>>>> 
>>>> to mathastext.sty if it detects luatex,
>>>> 
>>>> so as to be sure the new version of the package will work also
>>>> with older LaTeX releases ?
>>>> 
>>>> is that right ?
>>>> 
>>>> best,
>>>> 
>>>> Jean-François
>>> 
>>> 
>>> That works in general for primitives that were previously prefixed
>>> \luatex... but the \Umath... names are special in that they were
>>> previously available both prefixed and not prefixed, so you can just
>>> use the unprefixed ones.
>>> 
>> 
>> Hi David,
>> 
>> ok, this is very clear, thanks, sorry if I have one last question does
>> "previously available" mean "all the way back to 2011" ? 
>> 
>> I can't test it on my laptop which only has TeXLive 2012 and later,
>> and I would like not to break installations as far back as 2011,
>> 
>> best
>> 
>> Jean-François
> 
> Hi David/Joseph,
> 
> [ I apologize to the list, perhaps I should move this discussion to 
> a LaTeX list ]
> 
> sorry again, but texdoc ltnews did not give me the following info:
> 
> should I also remove the "xetex" prefixes and use "\Umathchardef" 
> also under XeLaTeX ? from texdoc xetex, the primitives are there
> only with "U" prefix.
> 
> best,
> 
> Jean-François
> 

Hi all,

sorry for all the fuss. I will do

  \let\mst at Umathcharnumdef\Umathcharnumdef
  \let\mst at Umathcodenum\Umathcodenum
  \let\mst at Umathcode\Umathcode
  \let\mst at Umathchardef\Umathchardef

then test if \mst at Umathcode is \undefined
and in the latter case use either "luatexU" or "XeTeX"
prefix depending on the engine,

besides I am sorry about the TL2011 thing, because
regarding LuaLaTeX the doc of mathastext says 
already TL2013 or later is needed.

mathastext.sty will be leaner as I can not
treat identically both unicode engines

best wishes

Jean-François


More information about the luatex mailing list