(Overleaf und LuaLaTeX) ы mit akuter Betonung funktioniert nur manchmal richtig (bei Verwendung von Times New Roman und STIX Two Text)

(Overleaf und LuaLaTeX) ы mit akuter Betonung funktioniert nur manchmal richtig (bei Verwendung von Times New Roman und STIX Two Text)

Ich habe vor einiger Zeit eine ähnliche Frage gestellt, in der ich gefragt habe, warum das Zeichen ы nicht richtig angezeigt wirdüberhauptauf TNR mit dem Akut bei Verwendung von \'ы. Ich habe ein Chromebook und habe die (scheinbar) neueste Version (7.05) von Times New Roman heruntergeladen, die auch der gleichen Version zu entsprechen scheint, die Windows 11 verwendet, da die Version, die ich jetzt habe, Kapitälchen und weitere Glyphen unterstützt, die bei mir vorher nicht funktioniert haben.

Bei TNR 7.05 wird der Akzent manchmal an der richtigen Stelle gesetzt, wenn man ihn aber in einem Satz verwendet, scheint es nicht zu funktionieren. Im ersten Teil meines Beispiels steht er an der richtigen Stelle, aber ich bin mir nicht sicher, warum das so inkonsistent ist. Das gilt nicht nur für TNR, da in meinem Beispiel auch STIX Two Text betroffen ist.

\documentclass[letterpaper,12pt]{article}

\usepackage{microtype}
\usepackage{unicode-math} % loads fontspec
    \setmainfont[BoldFont=Timesbd.ttf, ItalicFont=Timesi.ttf, BoldItalicFont=Timesbi.ttf]{Times.ttf}
    \newfontfamily\secondfont[Ligatures=TeX]{STIX Two Text}
\usepackage[main=english,russian]{babel} 

\begin{document}

\foreignlanguage{russian}{
\'ы ы́ 
}

When the unstressed vowels come at the end (\foreignlanguage{russian}{Б\'ыло}), they sound like A.

When the unstressed vowels come at the end (\foreignlanguage{russian}{{\secondfont Б\'ыло}}), they sound like A.

\foreignlanguage{russian}{
ф\'ыф
}

\end{document}

Bildbeschreibung hier eingeben

Ich bin der Meinung, dass mein Code funktionieren sollte, wenn Sie Windows haben, \setmainfontunabhängig davon, ob Sie die Dateien für die TNR-Varianten über das Internet oder woanders heruntergeladen haben.

Es ist komisch, dass es je nach Platzierung anders aussieht. Kann mir bitte jemand dabei helfen? Ich wäre sehr dankbar.

Antwort1

Es gibt einen alternativen Ansatz, der den Vorteil hat, dass Trennstellen nicht verloren gehen (leider HarfBuzzfunktioniert das in Sprachen mit Trennstrichen nicht immer wie erwartet). Er basiert auf einer Transformation:

\documentclass[letterpaper,12pt]{article}

\usepackage{microtype}
\usepackage{unicode-math} % loads fontspec
    \setmainfont
     [BoldFont=Timesbd.ttf, ItalicFont=Timesi.ttf, BoldItalicFont=Timesbi.ttf]{Times.ttf}
    \newfontfamily\secondfont[Ligatures=TeX]{STIX Two Text}
\usepackage[main=english,russian]{babel} 

% Add this transform, which removes discretionaries
% before combining characters:
\babelposthyphenation{russian}{ |[{0300}-{036F}] }{ remove, {} }

\begin{document}

\foreignlanguage{russian}{
\'ы ы́ 
}

When the unstressed vowels come at the end (\foreignlanguage{russian}{Б\'ыло}), they sound like A.

When the unstressed vowels come at the end (\foreignlanguage{russian}{{\secondfont Б\'ыло}}), they sound like A.

\foreignlanguage{russian}{
ф\'ыф
}

\end{document}

Natürlich ist das nur ein Workaround. Es bietet: Bildbeschreibung hier eingeben

Antwort2

Das Problem ist die Silbentrennung, siehe auchhttps://tex.stackexchange.com/a/340164/2388 Undhttps://github.com/latex3/luaotfload/issues/267.

Das Problem sollte eigentlich generell behoben sein. Bis dahin verschwindet das Problem, wenn Sie den harfbuzz-Renderer verwenden:

\documentclass[letterpaper,12pt]{article}

\usepackage{microtype}
\usepackage{unicode-math} % loads fontspec
    \setmainfont
     [Renderer=Harfbuzz,BoldFont=Timesbd.ttf, ItalicFont=Timesi.ttf, BoldItalicFont=Timesbi.ttf]{Times.ttf}
    \newfontfamily\secondfont[Ligatures=TeX]{STIX Two Text}
\usepackage[main=english,russian]{babel} 

\begin{document}

\foreignlanguage{russian}{
\'ы ы́ 
}

When the unstressed vowels come at the end (\foreignlanguage{russian}{Б\'ыло}), they sound like A.

When the unstressed vowels come at the end (\foreignlanguage{russian}{{\secondfont Б\'ыло}}), they sound like A.

\foreignlanguage{russian}{
ф\'ыф
}

\end{document}

gibt

Bildbeschreibung hier eingeben

Antwort3

Bildbeschreibung hier eingeben

Sie können ein Muster hinzufügen, um die Silbentrennung vor dem verbindenden Zeichen zu verhindern, wie in diesem Beispiel unter der Regel gezeigt

Eine bessere Babel-Schnittstelle, die in der Präambel verwendet werden könnte, wäre

\babelpatterns[russian]{8^^^^0301}

Aber hier, nur im Testbeispiel, verwende ich ein \patternsFormular auf niedrigerer Ebene, damit ich das Wechseln mit und ohne dieses Muster mitten im Dokument demonstrieren kann.

\documentclass[letterpaper,12pt]{article}

\usepackage{microtype}
\usepackage{unicode-math} % loads fontspec
    \setmainfont
     [BoldFont=Timesbd.ttf, ItalicFont=Timesi.ttf, BoldItalicFont=Timesbi.ttf]{Times.ttf}
    \newfontfamily\secondfont[Ligatures=TeX]{STIX Two Text}
\usepackage[main=english,russian]{babel} 

% Add this transform, which removes discretionaries
% before combining characters:
%\babelposthyphenation{russian}{ |[{0300}-{036F}] }{ remove, {} }

\begin{document}

\foreignlanguage{russian}{
\'ы ы́ 
}

When the unstressed vowels come at the end (\foreignlanguage{russian}{Б\'ыло}), they sound like A.

When the unstressed vowels come at the end (\foreignlanguage{russian}{{\secondfont Б\'ыло}}), they sound like A.

\foreignlanguage{russian}{
ф\'ыф
}

\bigskip
\hrule
\bigskip

\foreignlanguage{russian}{
  \patterns{8^^^^0301}
}


\foreignlanguage{russian}{
\'ы ы́ 
}

When the unstressed vowels come at the end (\foreignlanguage{russian}{Б\'ыло}), they sound like A.

When the unstressed vowels come at the end (\foreignlanguage{russian}{{\secondfont Б\'ыло}}), they sound like A.

\foreignlanguage{russian}{
ф\'ыф
}

\end{document}

verwandte Informationen