(Al dorso y LuaLaTeX) ы con estrés agudo solo funciona correctamente a veces (usando Times New Roman y STIX Two Text)

(Al dorso y LuaLaTeX) ы con estrés agudo solo funciona correctamente a veces (usando Times New Roman y STIX Two Text)

Publiqué una pregunta semi similar hace un tiempo donde preguntaba por qué el carácter ы no aparecía correctamente.en absolutoen TNR con acento agudo al usar \'ы. Tengo una Chromebook y descargué la (aparentemente) última versión (7.05) de Times New Roman, que también parece ser la misma versión que usa Windows 11, ya que la versión que tengo ahora admite versalitas y más glifos que antes no funcionaban. para mí.

Con TNR 7.05, cuando se usa , a veces se pone el acento en el lugar correcto, pero cuando se usa en una oración, parece que no funciona. Tiene la posición correcta en la primera parte de mi ejemplo, pero no estoy seguro de por qué es tan inconsistente. Esto no sólo se aplica a TNR, ya que en mi ejemplo, STIX Two Text también se ve afectado.

\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}

ingrese la descripción de la imagen aquí

Creo que si tienes Windows, mi \setmainfontcódigo debería funcionar independientemente de si has descargado los archivos para las variantes de TNR a través de la web o de otro lugar.

Es extraño que se vea diferente dependiendo de dónde se coloque. ¿Puede alguien ayudarme con esto? Me sería de gran aprecio.

Respuesta1

Existe un enfoque alternativo, que tiene la ventaja de que los puntos de separación de palabras no se eliminan (lamentablemente, HarfBuzzen los idiomas con separación de palabras no siempre funciona como se esperaba). Se basa en una transformación:

\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}

Por supuesto, es sólo una solución. Da: ingrese la descripción de la imagen aquí

Respuesta2

El problema es la separación de palabras, ver tambiénhttps://tex.stackexchange.com/a/340164/2388 yhttps://github.com/latex3/luaotfload/issues/267.

En realidad, la cuestión debería resolverse en general. Hasta entonces, si usas harfbuzz-Renderer, el problema desaparece:

\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}

da

ingrese la descripción de la imagen aquí

Respuesta3

ingrese la descripción de la imagen aquí

Puede agregar un patrón para evitar la separación de palabras antes del carácter de combinación como se muestra debajo de la regla en este ejemplo.

Una mejor interfaz de Babel, para ser utilizada en el preámbulo, sería

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

Pero aquí, solo en el ejemplo de prueba, utilizo un \patternsformulario de nivel inferior para poder demostrar con y sin este cambio de patrón a mitad del documento.

\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}

información relacionada