%20%D1%8B%20con%20estr%C3%A9s%20agudo%20solo%20funciona%20correctamente%20a%20veces%20(usando%20Times%20New%20Roman%20y%20STIX%20Two%20Text)%20.png)
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}
Creo que si tienes Windows, mi \setmainfont
có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, HarfBuzz
en 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}
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
Respuesta3
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 \patterns
formulario 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}