Как подключить русский язык в шаблоне overleaf?
На сайте overleaf очень много классных шаблонов для статей, конкретно меня интересует вот этот: https://www.overleaf.com/latex/templates/template-for-blackwell-science-tellus-b-journal/tjtqqxsnhjwj
но он ломается (шрифт перестает выделяется жирным/курсивом и т.д.), когда я добавляю команду \usepackage[russian]{babel}
может быть, кто-то знает, что можно еще добавить, чтобы все заработало? или у кого-то есть классный похожий русский шаблон?
Ответы (1 шт):
В данном шаблоне (как и во многих других от зарубежных авторов/издателей) используется шрифт times (Adobe Times), и этот шаблон не был рассчитан для использования с языками, у которых алфавит отличается от латинского. То есть в этих шрифтах times просто нет кириллицы. И при компиляции latex использует для русских символов стандартный шрифт cmr (Computer Modern), при этом, убирая все модификации (курсив, жирность и т.п.). Поэтому "что-то добавить, чтобы все заработало" без изменения внешнего вида будет сложно. Но есть варианты.
Естественно, для всех дальнейших модификаций нужно добавить в преамбулу:
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc} % зависит от кодировки Вашего документа
\usepackage[english,russian]{babel} % если использовать вставки на английском не нужно, то можно в параметрах оставить только 'russian'
Самый простой способ - если Вам не важно сохранить текущий шрифт, то можно просто вернуть все настройки шрифтов к стандартному в latex Computer Modern:
\renewcommand{\sfdefault}{cmss} \renewcommand{\rmdefault}{cmr} \renewcommand{\ttdefault}{cmt}Если очень хочется добиться полного совпадения по шрифту, то... Можно попробовать включить шрифты от Paratype
\usepackage{paratype}. В нем шрифт с засечками напоминает times. Но, если я верно понял, у этого набора шрифтов для кириллицы нет капители (small caps).Еще можно отдельно установить пакет pscyr и использовать шрифты из его набора (буквы из рубленых и моноширинных шрифтов в этом пакете выглядят слишком широкими, поэтому лучше оставить эти шрифты стандартными, из набора CM-Super):
\usepackage{pscyr} \renewcommand{\sfdefault}{cmss} \renewcommand{\rmdefault}{ftm} \renewcommand{\ttdefault}{cmt}В принципе, вместо шрифта TimesNewRomanPSMT (ftm) можно использовать гарнитуру AntiquaPSCyr (faq) - это аналог гарнитуры Литературная, и она может смотреться лучше, чем Times New Roman. Для использования Antiqua, можно не переопределять явно команду
\rmdefault, так как эта гарнитура включается в пакете pscyr по умолчанию:\usepackage{pscyr} \renewcommand{\sfdefault}{cmss} \renewcommand{\ttdefault}{cmt}Остальные две команды нужно переопределять, т.к. они задаются пакетом times (который подгружает класс документа).
Со шрифтами PSCyr есть только одна проблема: их не включают в дистрибутивы из-за каких-то лицензионных конфликтов с отдельными гарнитурами (при том, что автор пакета все буквы рисовал сам и ничего не заимствовал), поэтому, этот пакет нужно устанавливать руками. И да, если далее у документа будет какое-то коммерческое использование, то эти лицензионные проблемы могут дотянуться и до автора документа. Я предупредил :-).
Еще можно использовать вместо times пакет literat: пакет есть на CTAN, но не включается в дистрибутивы tex-а из-за несоответствия лицензий, кажется. В общем, его тоже нужно устанавливать вручную (в TeXLive он устанавливается с другими "несвободными шрифтами" с помощью скрипта
install-getnonfreefonts(искать на сайте texlive)).Также как и с пакетом pscyr, нужно будет переопределеить пару команд:
\usepackage{literat} \renewcommand{\sfdefault}{cmss} \renewcommand{\ttdefault}{cmt}Этот вариант был подсмотрен на английском SE по TeX (и его можно использовать в сочетании со шрифтами, например, от Paratype). Если можно в изображении кириллицы немного отойти от стиля Times до "что-то похожее на Times", то можно использовать еще и такой вариант: есть пакет, который делает подстановку шрифтов для отсутствующих символов, и тогда для латинских букв можно использовать times, а для кириллицы можно взять шрифт Tempora-TLF (похожий на times). У него нет капители для кириллицы, но это можно обойти.
\usepackage{substitutefont} \substitutefont{T2A}{\familydefault}{Tempora-TLF} \makeatletter \input{t2atempora-tlf.fd} \DeclareFontShape{T2A}{Tempora-TLF}{m}{sc}{ <-> ssub * Tempora-TLF/m/n }{} \makeatotherЭтот шрифт включен в оба дистрибутива latex (MikTeX и TeXLive).