Проблемное взаимодействие шрифтов

Проблемное взаимодействие шрифтов

В одном из моих (крупных) проектов несколько лет назад я использовал fourier в качестве основного шрифта и roboto condensed в качестве шрифта без засечек по умолчанию (в основном в заголовках (под)разделов). Это работало отлично.

Я попытался перекомпилировать проект сегодня и обнаружил, что, среди прочего, курсив и наклонный стили игнорируются. Похоже, это происходит из-за взаимодействия между roboto condensed и fourier.

Вот минимальный рабочий пример, демонстрирующий мою проблему:

\documentclass{memoir}

\usepackage{fourier}
\usepackage[condensed]{roboto}

\begin{document}
    Test \textit{Test} \textsl{Test} \textbf{Test} \(Test\) \textsf{Test}
\end{document}

Вот что получилось:

введите описание изображения здесь

Если я заменю \usepackage[condensed]{roboto}на \usepackage{roboto}, то вывод будет следующим:

введите описание изображения здесь

Как видите, последнее работает нормально, а первое нет. Что я делаю не так?

решение1

Это очень похоже наПроблемы с курсивом в других шрифтах при использовании roboto confededно требует еще несколько трюков, чтобы убрать раздражающие ложные предупреждения. Я также добавил масштабирование для Roboto, который в противном случае выше, чем Фурье (на самом деле Utopia).

\documentclass{memoir}
\usepackage[T1]{fontenc} % fourier does it, so it's best here

% avoid a spurious warning about cmr
\DeclareFontShape{T1}{cmr}{c}{n}{<->ssub*cmr/m/n}{} % avoid a spurious warning

% load roboto (but scaled because fourier is less tall)
\usepackage[scaled=0.9,condensed]{roboto}

% avoid a spurious warning about futs
\input{t1futs.fd}
\DeclareFontShape{T1}{futs}{c}{n}{<->ssub*futs/m/n}{} % avoid a spurious warning

% load fourier
\usepackage{fourier}

% fix the wrong setting by roboto
\renewcommand{\seriesdefault}{m}

\begin{document}

Test \textit{Test} \textsl{Test} \textbf{Test} \(Test\) \textsf{Test}

\end{document}

введите описание изображения здесь

решение2

Хотя вы упоминаете в комментариях, что используете PDFTeX, другое решение — загрузить OTF-версии шрифтов в LuaLaTeX (или XeLaTeX). Вы можете загрузить Erewhon Math в качестве замены Фурье через fourier-otfили unicode-math, а версию OpenType Roboto — через \setsansfont.

Я бы рекомендовал использовать современный набор инструментов, когда это возможно, и устаревшие 8-битные шрифты, когда это необходимо. Обновление сотрет большую часть технического долга перед старыми пакетами.

Связанный контент