[XeTeX] Localized XeLaTeX: was Greek XeLaTeX

Wolfgang Schuster schuster.wolfgang at googlemail.com
Sat Oct 16 16:24:44 CEST 2010


Am 14.10.2010 um 14:57 schrieb Mojca Miklavec:

> 2010/10/14 Ulrike Fischer wrote:
>> 
>> I don't have a context currently to try, but what would happen if
>> you use it e.g. this way:
>> 
>> \usemodule[translate]
>> \translateinput[im][mm]
>> 
>> \enableinputtranslation
>> 
>> \starttext\tt
>> \scratchdimen=2mm 2mm: \the\scratchdimen\crlf
>> \scratchdimen=1im 1im: \the\scratchdimen
>> immens
>> \stoptext
>> 
>> Would this replace every occurence of "im" in the input? Including
>> the "im" in \scratchdimen, the "im" in the second 1im and the "im"
>> in immens?
> 
> Yes. This is why I said that the solution cannot work out-of-the-box
> (it could work for a limited number of cases).

Another way is to use the string library from lua to replace μμ with mm:

\unprotected\def\interfaceddimension#1%
  {\ctxlua{commands.interfaceddimension(\!!bs\detokenize{#1}\!!es)}}

\startluacode
function commands.interfaceddimension(str)
    if string.match(str,"\\") then
        -- dimension or macro
    else
        str = string.gsub(str,"μμ","mm")
    end
    tex.print(str)
end
\stopluacode

\setupbodyfont[palatino]

\starttext

\def\foo{4mm}
\def\bar{\textwidth}

\scratchdimen\interfaceddimension{2mm} 2mm: \the\scratchdimen\crlf
\scratchdimen\interfaceddimension{1μμ} 1μμ: \the\scratchdimen\crlf
\scratchdimen\interfaceddimension\foo  foo: \the\scratchdimen\crlf
\scratchdimen\interfaceddimension\bar  bar: \the\scratchdimen

\stoptext

Wolfgang


More information about the XeTeX mailing list