#403: Uniinput LuaLaTeX-fähig machen
---------------------------------------+-----------------------
Reporter: anton.pirogov@… | Owner:
Type: Verbesserung | Status: new
Priority: normal | Milestone:
Component: sonstiges | Version: 2.0 Final
Keywords: uniinput, latex, lualatex |
---------------------------------------+-----------------------
Ich hatte http://the-user.org/post/switched-to-lualatex hier eine
konvertierte uniinput entdeckt (mit unicode-math bin ich unzufrieden),
fand es aber nicht schön, beide Versionen nebeneinander zu haben, wenn ich
es mit pdflatex und lualatex bauen können möchte. Habe mit viel Google und
Stackoverflow etwas zusammengebastelt, damit es ohne Duplikationen
funktioniert. Bin weder Lua noch LaTeX-Entwickel-Guru, also wenn jemand da
noch etwas verbessern kann (beim Escaping bin ich unsicher ob das ganz
sicher ist)..
Das folgende Schnipsel gehört dann direkt vor Beginn der Deklarationen der
Symbole:
{{{
\RequirePackage{iftex}
\ifLuaTeX
\RequirePackage{luacode}
\begin{luacode*}
-- As parameter pass hexadecimal unicode code point and replacement
string
function cmdutf(c, cmd)
local sym = unicode.utf8.char(tonumber(c,16))
local str = "\\providecommand\\" .. sym .. "{" .. cmd .. "}"
tex.print(str)
-- texio.write_nl(str)
tex.print("\\renewcommand\\" .. sym .. "{" .. cmd .. "}")
end
function letutf(c)
local sym = unicode.utf8.char(tonumber(c,16))
local str = "\\let" .. sym .. "\\" .. sym
-- texio.write_nl(str)
tex.print(str)
end
\end{luacode*}
\def\DeclareUnicodeCharacter#1#2{%
\catcode"#1=\active
\directlua{cmdutf("#1",[[\unexpanded{#2}]])}
\directlua{letutf("#1")}
}
\fi
}}}
Das Übersetzt quasi on-the-fly die \DeclareUnicodeCharacter Befehle in
gleichwertige Befehle in LuaLaTeX (wie in der Datei im verlinkten Blog-
Post) und funktioniert dadurch mit beiden Engines.
Wäre schön, wenn das jemand einpflegt.
--
Ticket URL: <https://wiki.neo-layout.org/ticket/403>
Neo-Layout <http://neo-layout.org/>
Das Neo-Tastaturlayout ist ein freies und ergonomisch optimiertes
Tastaturlayout für die deutsche Sprache, das auch sehr viele Sonderzeichen
direkt verfügbar macht.