Смелые бейсболки с люалатексом

Aug 15 2020

Ссылаясь на этот протектор: Как использовать fontspec, а также иметь маленькие полужирные заглавные буквы с LuaLaTeX? , У меня есть шрифт с настоящими маленькими заглавными буквами, но такая же проблема. Пожалуйста, скомпилируйте этот простой код:

\documentclass{article}
\usepackage{fontspec}
\usepackage[italian]{babel}
\babelfont[italian]{rm}{EB Garamond}
 %   \setmainfont{EB Garamond}

\begin{document}

Quel \textbf{ramo del \textsc{lago} di Como}, che volge a \textbf{\textsc{mezzogiorno}}

\end{document}

Итак, решение не

Вам необходимо выбрать семейство шрифтов с полужирными капителями.

потому что у него ... Неужели так сложно иметь смелые маленькие заглавные буквы? Он работает, добавляя \setmainfont{EB Garamond}, но я думаю, что делать фруктовый салат с кселатексом и луалатексом - не лучшая идея ... Спасибо

Ответы

11 UlrikeFischer Aug 15 2020 at 15:31

\ setmainfont - это не команда, предназначенная только для xelatex. Это команда из fontspec для обоих движков.

В babel есть собственная команда для установки шрифтов (которая также может использоваться с обоими движками). В вашем случае необязательный аргумент [итальянский] отключает маленькие заглавные буквы по двум причинам:

Сначала с необязательным аргументом babel не загружает шрифт напрямую, а только подготавливает его для языка. А во-вторых, потому что babel не устанавливает, как fontspec, полужирный шрифт по умолчанию, bкоторому он должен imho, поэтому я сообщу об этом. Поскольку серия bx, она запускает замену, и поэтому вы теряете маленькие заглавные буквы (чего, возможно, тоже не должно происходить ...). Я предлагаю удалить язык, это не имеет особого смысла, поскольку шрифт все равно его не знает, а пока добавить объявления серии (для этого требуется текущий латекс).

\documentclass{article}
\usepackage{fontspec}
\DeclareFontSeriesDefault[rm]{bf}{b}
\usepackage[italian]{babel}
\babelfont{rm}{EB Garamond}

\begin{document}

Quel \textbf{ramo del \textsc{lago} di Como}, che volge a \textbf{\textsc{mezzogiorno}}

\end{document}