
Я попытался использовать функцию FakeBold из fontspec в простом тексте, который смешивает латинские буквы с греческими внутри одного слова. Моя проблема в том, что вывод кажется Utf8, но на самом деле это не так! Я заметил, что когда я пытался скопировать и вставить вывод следующего кода в текстовый редактор (TeXworks), то 1) Некоторые символы находятся в ? 2) Нет пробела между первым словом Γεννaται (жирным) и вторым
(в моем случае вывод ΓεννaταιΓεννaται Γενν?ται)
Не могли бы вы объяснить мне это странное поведение?
\documentclass[letterpaper, 12pt]{article}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\setmainlanguage{greek}
\setmainfont{Arial}
\begin{document}
\addfontfeature{FakeBold=2}Γεννaται\addfontfeature{FakeBold=0} Γεννaται Γεννάται
\end{document}
Примечания: Каждая из приведенных выше строк написана в разных строках TeXworks. Я использовал движок MikTeX и XeLaTeX.
решение1
Команда \addfontfeatures{...}
поглощает пробелы, следующие за ней, что в целом хорошо; используйте
\addfontfeature{FakeBold=2}Γεννaται\addfontfeature{FakeBold=0}\ Γεννaται Γεννάται
если вы действительно хотите использовать этот неуклюжий стиль. В общем, его \addfontfeatures
следует использовать экономно и (почти) никогда не использовать в документе. Более того, поскольку он уважает группировку, делая
{\addfontfeature{FakeBold=2}Γεννaται} Γεννaται Γεννάται
было бы проще.
Однако, это должно быть лучше
\textbf{Γεννaται} Γεννaται Γεννάται
Все примеры набраны одинаково
Если ваш шрифт не имеет жирного начертания, определите его в настройках шрифта. Я сделаю пример с EB Garamond
\documentclass[letterpaper, 12pt]{article}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\setmainlanguage{greek}
\setmainfont{EB Garamond}[
BoldFont=*,
BoldFeatures={FakeBold=4},
]
\begin{document}
\textbf{Γεννaται} Γεννaται Γεννάται
\end{document}
Что касается ?
, я считаю, что это проблема копирования-вставки, зависящая от операционной системы.