LuaLatex: Font names DB - Segmentation Fault 11

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Bachwels hat geschrieben:
u_fischer hat geschrieben:Sollte nicht sein und kann ich auch nicht bestätigen. Vielleicht machst du was falsch (oder deine Schrift).
Da muss ich mal meine Schrift fragen. Aber wenn der Text in der einen Konfiguration sehr gut aussieht und in der anderen wie ein Schweizer Käse, kann es ja eigentlich nur an den Sachen liegen, die sich geändert haben, und nicht an denen die gleichgeblieben sind. Zu denen gehört die Schrift. Es ist also schwer vorstellbar, dass es an ihr liegt. Es handelt sich übrigens um Linux Libertins O.
Da pdflatex type1-Schriften, lualatex (bei korrekter Bedienung) opentype-Schriften benutzt, sind die nie gleich. Abgesehen davon kannst du ein normales pdflatex Dokument nicht ohne Änderungen mit lualatex benützen. Also: bist du dir sicher, dass dein lualatex-Dokument korrekt ist?
Ich finde jedenfalls, dass ein Text besser zu lesen, zu korrigieren und zu gestalten ist, wenn da z. B. dṛṣṭi steht und nicht d\d{r}\d{s}\d{t}i. Aber ob ich dafür nun wiederum in Kauf nehmen möchte, dass das Ergebnis typographisch unbefriedigend ist...
.
dṛṣṭi kannst du auch mit pdflatex benützen.
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{1E5B}{\d{r}}
\DeclareUnicodeCharacter{1E63}{\d{s}}
\DeclareUnicodeCharacter{1E6D}{\d{t}}
\begin{document}
dṛṣṭi
\end{document}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}						
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{1E5B}{\d{r}}
\DeclareUnicodeCharacter{1E63}{\d{s}}
\DeclareUnicodeCharacter{1E6D}{\d{t}}
\begin{document}
dṛṣṭi 
\end{document}

Bachwels
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Do 23. Jan 2014, 15:57
Wohnort: Bachwels

Beitrag von Bachwels »

u_fischer hat geschrieben:dṛṣṭi kannst du auch mit pdflatex benützen.
Aha. Das ist interessant. Muss ich mal ausprobieren. Dazu muss ich zwar erst mal die Codes der jeweiligen Zeichen herausbekommen, aber das wird sich ja vermutlich irgendwie machen lassen. Mal sehen. Danke für den Tip.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Standardmäßig werden nicht alle (es gibt sooo viele) codes festgelegt, eventuell muss man noch welche von Hand eintragen. Das reicht ja aber einmal pro Dokument (und Copy/paste für andere Dokumente).

http://www.utf8-zeichentabelle.de/unicode-utf8-table.pl

Einmal richtig machen ist hier die Devise.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Bachwels hat geschrieben:
u_fischer hat geschrieben:dṛṣṭi kannst du auch mit pdflatex benützen.
Aha. Das ist interessant. Muss ich mal ausprobieren. Dazu muss ich zwar erst mal die Codes der jeweiligen Zeichen herausbekommen [...]
Nicht unbedingt:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\newunicodechar{ṛ}{\d{r}}
\newunicodechar{ṣ}{\d{s}}
\newunicodechar{ṭ}{\d{t}}
\begin{document}
dṛṣṭi
\end{document}
Grüße
Clemens
Paketauthor

Bachwels
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Do 23. Jan 2014, 15:57
Wohnort: Bachwels

Beitrag von Bachwels »

Das ist natürlich die bequemste und übersichtlichste Methode. Vielen Dank für diesen Tip. Darauf wäre ich nie gekommen...

EDIT: In der Paketdokumentation fand ich gerade, dass es noch einfacher (also auch ohne das Paket geht), nämlich so:
\makeatletter
\@namedef{u8:\detokenize{ū}}{\={u}}
\@namedef{u8:\detokenize{Ū}}{\={U}}
[...]
\@namedef{u8:\detokenize{ḍ}}{\d{d}}
\@namedef{u8:\detokenize{Ḍ}}{\d{D}}
\@namedef{u8:\detokenize{ṛ}}{\d{r}}
\@namedef{u8:\detokenize{ṝ}}{\d{\={r}}}
\@namedef{u8:\detokenize{Ṛ}}{\d{R}}
\@namedef{u8:\detokenize{ṣ}}{\d{s}}
\@namedef{u8:\detokenize{Ṣ}}{\d{S}}
[...]
\makeatother
Ich habe keine Ahnung, was das bedeutet, aber es funktioniert... Nochmals besten Dank für den Tip!!!

Da hätte ich nun gleich noch eine weitere Frage: Ich kann nun eine Datei anlegen, in der ich alle diese Definitionen sammele, und diese dann per \input in das Projekt einbinden. Schöner wäre natürlich, ich müsste die Datei nicht jedem Projektverzeichnis gesondert hinzufügen, sondern könnte eine erstellen, die dann in alle Projekte eingebunden werden kann, so dass auch eventuelle Fehlerkorrekturen immer sofort bei allen vorhanden sind. Geht das, ohne dass ich in die Tiefen der Programmierung vordringen muss?

Bachwels
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Do 23. Jan 2014, 15:57
Wohnort: Bachwels

Beitrag von Bachwels »

Ja, naja. Ich sag’s ja: Wenn man auf der einen Seite einen Fortschritt erreicht, kracht auf der anderen wieder etwas zusammen. Diesmal ist es, dass der Befehl \hyphenation unbenutzbar wird, weil er diese Sonderzeichen nicht verträgt. Bei LuaLatex geht es problemlos, bei PdfLatex nicht. Verzichten kann ich auf den aber nicht, also muss ich mich wohl mit den typographisch schwächeren Ergebnissen abfinden. Oder gibt es eine Möglichkeit, den Befehl trotzdem wirksam werden zu lassen?

Beispiele an denen man das sehen kann:
\documentclass{scrbook}

\usepackage[ngerman]{babel}
\usepackage{kpfonts}
\usepackage{fontspec}
\setmainfont[Numbers=OldStyle]{Baskerville}

\usepackage{geometry}
\usepackage{microtype}
\KOMAoptions{DIV=last}

\hyphenation{dṛṣ-ṭi
Ma-hā-praj-ñā-pā-ra-mi-tā-sū-tra}
\begin{document}

dṛṣṭi

\end{document}
Wird mit LuaLatex problemlos richtig kompiliert. Wohingegen
\documentclass{scrbook}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{kpfonts}

\usepackage{geometry}
\usepackage{microtype}
\KOMAoptions{DIV=last}
\usepackage{newunicodechar}

\newunicodechar{ā}{\={a}}
\newunicodechar{Ā}{\={A}}

%[einige weggelassen]

\newunicodechar{ṛ}{\d{r}}
\newunicodechar{ṝ}{\d{\={r}}}
\newunicodechar{Ṛ}{\d{R}}
\newunicodechar{ṣ}{\d{s}}
\newunicodechar{Ṣ}{\d{S}}
\newunicodechar{ś}{\'{s}}
\newunicodechar{Ś}{\'{S}}
\newunicodechar{ṭ}{\d{t}}
\newunicodechar{Ṭ}{\d{T}}

\hyphenation{dṛṣ-ṭi
Ma-hā-praj-ñā-pā-ra-mi-tā-sū-tra}

\begin{document}

dṛṣṭi

\end{document}
mit PdfLatex nicht zu kompilieren ist, weil es bei \hyphenation Schwierigkeiten mit den Unicode-Zeichen gibt. (Kein Problem tritt auf, wenn ich diesen Befehl weglassen, aber dann fällt wieder woanders etwas um und es gibt Probleme bei der Silbentrennung...) - Mich erinnert das ein bisschen an gewisse Slapstickszenen bei Chaplin ;)

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Ich bin mir ja nicht sicher, ob das Nicht-Verwenden des Pakets wirklich einfacher ist, als es zu verwenden...
Bachwels hat geschrieben:mit PdfLatex nicht zu kompilieren ist, weil es bei \hyphenation Schwierigkeiten mit den Unicode-Zeichen gibt. (Kein Problem tritt auf, wenn ich diesen Befehl weglassen, aber dann fällt wieder woanders etwas um und es gibt Probleme bei der Silbentrennung...) - Mich erinnert das ein bisschen an gewisse Slapstickszenen bei Chaplin ;)
pdfLaTeX kann nicht wirklich Unicode im Gegensatz zu LuaLaTeX oder XeLaTeX. Es kann Ascii-Zeichen. Die anderen sind aus Sicht von pdfLaTeX eigentlich zwei oder drei Zeichen, von denen das erste als Makro aktiv wird und je nachdem, was folgt, den entsprechenden LaTeX-Befehl einfügt. »ä« ist für pdfLaTeX nur eine komplizierte Weise »"{a}« zu schreiben.

Dass das in \hyphenation nicht funktioniert, wundert mich nicht. Wenn Du das willst, brauchst Du eine Engine, die echt mit Unicode-Input umgehen kann, wie eben LuaLaTeX.

Grüße
Clemens
Paketauthor

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

cgnieder hat geschrieben:
pdfLaTeX kann nicht wirklich Unicode im Gegensatz zu LuaLaTeX oder XeLaTeX. Es kann Ascii-Zeichen. Die anderen sind aus Sicht von pdfLaTeX eigentlich zwei oder drei Zeichen, von denen das erste als Makro aktiv wird und je nachdem, was folgt, den entsprechenden LaTeX-Befehl einfügt. »ä« ist für pdfLaTeX nur eine komplizierte Weise »"{a}« zu schreiben.

Dass das in \hyphenation nicht funktioniert, wundert mich nicht.
Aber nicht mit deiner Begründung: Auch ü oder ß sind kein ASCII, dennoch hat pdflatex keine Probleme mit \hyphenation{grü-ßen} - sofern \usepackage[T1]{fontenc} geladen ist, d.h. solange ü bei der Ausgabe ein echter Glyph ist und nicht ein Buchstabe u mit einem Akzent drüber.

Damit dṛṣṭi funktioniert, muss man eine Schriftkodierung benützen, in der die Buchstaben Glyphen sind, und nicht r, s, t mit einem Punkt darunter.
Bachwels hat geschrieben:Verzichten kann ich auf den aber nicht, also muss ich mich wohl mit den typographisch schwächeren Ergebnissen abfinden.
Die du immer noch nicht bewiesen hast, und die ich auch nicht glaube: lualatex basiert auf pdflatex und hat daher mindestens die gleichen Fähigkeiten.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

u_fischer hat geschrieben:Aber nicht mit deiner Begründung: Auch ü oder ß sind kein ASCII, dennoch hat pdflatex keine Probleme mit \hyphenation{grü-ßen} - sofern \usepackage[T1]{fontenc} geladen ist, d.h. solange ü bei der Ausgabe ein echter Glyph ist und nicht ein Buchstabe u mit einem Akzent drüber.

Damit dṛṣṭi funktioniert, muss man eine Schriftkodierung benützen, in der die Buchstaben Glyphen sind, und nicht r, s, t mit einem Punkt darunter.
Gut zu wissen. Danke für die Berichtigung :)

Grüße
Clemens
Paketauthor

Antworten