3
1

Hallo zusammen.

Ich versuche ein Dokument in LuaTex zu erzeugen, was grundsätzlich auch funktioniert (TexWorks/Ubuntu).

Meine Quelldatei ist UTF-8-codiert und enthält deutsche Umlaute. Diese werden im Ergebnis aber nicht angezeigt, sie werden ignoriert. Umlaute als z.B. \"o codiert funktionieren. Ich dachte immer, LuaTex als modernes Tex könnte schon von sich aus die (utf-8-codierten) Umlaute darstellen. Ist nicht so?

Weiterhin weiß ich nicht, wie ich deutsche Silbentrennung verwenden kann.

Das Suchen nach Infos im Web wird erschwert dadurch, dass überwiegend (Lua)Latex behandelt wird und dass Latex vielfach als Synonym für Tex verwendet wird. Übliche Lösungen mit usepackage(...) kann ich in LuaTex nicht anwenden (z.B. mit polyglossia, babel). Für reines LuaTex finde ich bisher keine Lösung.

Viele Grüße Peter

gefragt 17 Feb '21, 17:51

altesCoon's gravatar image

altesCoon
8137
Akzeptiert-Rate: 100%

bearbeitet 17 Feb '21, 19:52

saputello's gravatar image

saputello
11.1k174365

Auch bei Fragen zu plainTeX ist es immer sinnvoll, wenn man seine Frage mit einem VM versieht. Nur so können wir sehen, was genau du machst. Außerdem erleichtert es, Tests von Ideen der Helfer.

Außerdem sollte man auch (oder gerade) bei Fragen, die sich nicht auf LaTeX, sondern auf ein anderes Format beziehen, immer nur eine Frage auf einmal stellen. Das erleichtert nicht nur, Antworten zu bekommen (nicht jeder Helfer kann alle Fragen beantworten), es ist auch für die Ordnung im Frage/Antwort-System von Vorteil.

(17 Feb '21, 19:44) saputello

Danke für die Hinweise! Ich gebe Dir in Allem recht und versuche, mich in Zukunft daran zu halten ...

(17 Feb '21, 20:15) altesCoon

Mit »reinem LuaTeX«, meinst du vermutlich plainTeX mit LuaTeX. plainTeX verwendet (auch mit LuaTeX) immer Computer Modern als Grundschrift. Und das hat nun einmal nur einen sehr begrenzten Zeichenvorrat und ist auch nicht Unicode codiert. Bei plainTeX ist aber kein Zwischenlayer vorhanden, so dass Eingabecodierung gleich Fontcodierung ist. Du musst also erst einmal einen passenden OpenType-Font laden. Das wiederum ist eigentlich nur per luaotfload möglich. In diesem Fall ist es tatsächlich möglich luaotfload.sty auch zusammen mit luatex, der LuaTeX-Variate von plainTeX zu verwenden:

% !TEX luatex
\input luaotfload.sty
\font\tenrm "name:LatinModernRoman" at 10pt
\tenrm Test äöüß éĉ €µ
\bye

Der Aufruf mit luatex test.tex ergibt dann:

This is LuaTeX, Version 1.12.0 (TeX Live 2020) 
 restricted system commands enabled.
(./test.tex
(/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload.sty
(/usr/local/texlive/2020/texmf-dist/tex/latex/base/ltluatex.tex)) [1{/usr/local
/texlive/2020/texmf-var/fonts/map/pdftex/updmap/pdftex.map}])</usr/local/texliv
e/2020/texmf-dist/fonts/opentype/public/lm/lmroman10-regular.otf>
Output written on test.pdf (1 page, 4155 bytes).
Transcript written on test.log.

und als PDF-Ausgabe:

Test äöüß éĉ €μ

Natürlich müsste man auch die anderen Fonts entsprechend mit einem Unicode-Font ersetzen. Das geht leider nicht so komfortabel wie bei LaTeX mit fontspec, das bei Angabe einer Font-Familie gleich versucht, auch die übrigen Schnitte passend zu laden.

Was deine zweite Frage, nämlich die nach der Trennung anbelangt: plainTeX hat normalerweise nur Trennmuster für Englisch eingebaut. Prinzipiell ist es bei plainTeX für andere Sprachen üblich, dass man ein eigenes Format erzeugt. Dazu definiert man sich eine ini-Datei, in der man vor dem \dump zusätzlich die gewünschte Sprache anlegt und die zugehörigen Trennmuster lädt und auch die \lefthyphenmin und \righthyphenmin entsprechend einstellt.

Bei LuaTeX hat man nun allerdings den Vorteil, dass man Trennmuster nicht zwingend ins Format einbauen muss, also \pattern nur in iniTeX erlaubt ist. Stattdessen kann man Trennmuster auch noch zur Laufzeit laden. Daher kann man etwas wie:

% !TEX luatex
\showhyphens{Geheimdienst}
\newlanguage\languagengerman
\language\languagengerman
\input dehyphn
\showhyphens{Geheimdienst}
text
\bye

verwenden. Die Temrinalausgabe zeigt, dass dabei tatsächlich die gewünschten Trennmuster geladen und verwendet werden:

This is LuaTeX, Version 1.12.0 (TeX Live 2020) 
 restricted system commands enabled.
(./test.tex
Underfull \hbox (badness 10000) in paragraph at lines 2--2
[] \tenrm Geheim-di-enst
(/usr/local/texlive/2020/texmf-dist/tex/generic/dehyph/dehyphn.tex
New German Hyphenation Patterns `dehyphn' Rev.31 <2001-05-07> (WaS))
Underfull \hbox (badness 10000) in paragraph at lines 6--6
[] \tenrm Ge-heim-dienst
)
(see the transcript file for additional information)
warning  (pdf backend): no pages of output.
Transcript written on test.log.

Die Zeile 5

[] \tenrm Geheim-di-enst

zeigt die möglichen Trennstellen von »Geheimdienst« mit den voreingestellten englischen Trennmustern, wohingegen Zeile 9

[] \tenrm Ge-heim-dienst

die möglichen Trennstellen mit den deutschen Trennmustern aus dehyphn.tex zeigt.

Beide Lösungen sind natürlich kombinierbar.

Übrigens haben wir bereits eine Frage zum Thema Sprachunterstützung mit plainTeX. Der Teil der Frage ist also eigentlich ein Dulikat.

Es sei darauf hingewiesen, dass je mehr Komfort man haben will, desto mehr nähert man sich der Verwendung eines leistungsfähigeren Formats wie LaTeX oder ConTeXt an. Spätestens, wenn man Entspechungen für unicode-math o. ä. haben will, lohnt es sich dann einfach nicht mehr, sich auf auf die Verwendung von plainTeX zu versteifen. In jedem Fall sollte man als plainTeX-Anwender sowohl »The TeXbook« als auch das LuaTeX-Manual verstanden haben. Und bei Dingen wie der Verwendbarkeit von luaotfload.sty sollte man auch in der Lage sein, Pakete und Lua-Dateien zu lesen.

Abschließend sei auch noch darauf hingewiesen, dass es neben luatex inzwischen auch noch luahbtex, also plainTeX mit LuaTeX und HarfBuzz gibt. Für bestimmte Sprachen/Fonts ist das ggf. von Vorteil.

Permanenter link

beantwortet 17 Feb '21, 19:38

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 17 Mär '21, 20:04

stefan's gravatar image

stefan ♦♦
18.3k163148

Wow! Danke für diesen ausführlichen Input und die Erläuterungen, die das "Warum" verständlich machen. Morgen werde ich die von Dir genannten Punkte bearbeiten und sehen, was herauskommt :-) Ich habe in der Vergangenheit schon recht viele Latex-Dokumente erzeugt, bis hin zu ganzen Büchern. Ich wollte mich jetzt mal ein wenig vom "La" von Latex lösen, um das grundlegende Tex besser zu verstehen (mit dem ich eigentlich in den 90ern mal angefangen habe). Ob ich das dann produktiv einsetzen werde, wird sich erst noch zeigen. Mir ist bewusst, dass ich auf viel Komfort verzichten würde ...

(17 Feb '21, 20:14) altesCoon

Noch einmal danke! Die ausführlichen Angaben haben alle meine Probleme gelöst. Also diesbezüglich ;-)

(22 Feb '21, 10:56) altesCoon
(22 Feb '21, 11:19) fritz

Das Laden der Trennmuster kann man sich mit dem Befehl \uselanguage erheblich vereinfachen: \showhyphens{Geheimdienst} \uselanguage{ngerman} \showhyphens{Geheimdienst} \bye

(01 Mär '21, 15:41) Cletus
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×28
×16
×14
×5

gestellte Frage: 17 Feb '21, 17:51

Frage wurde gesehen: 3,246 Mal

zuletzt geändert: 17 Mär '21, 20:04