Я использую fontsetup
шрифты с засечками и без засечек по своему выбору для правильного набора различных частей моего документа, включая обширное использование математики. Кажется, где-то на заднем плане есть проблема с xcharter
конкретным. Вот мой минимальный пример, где следующие четыре команды должны всегда выглядеть одинаково в PDF:
\documentclass{scrartcl}
\usepackage{amssymb}
\usepackage[xcharter]{fontsetup}
\begin{document}
Teste Schriftartensetup für \emph{XCharter}
\begin{equation*}
\sin \mathrm{sin} \operatorname{sin} \text{sin}
\end{equation*}
\end{document}
Но LaTeX, похоже, по умолчанию возвращается к Computer Modern, когда я вызываю mathrm
:
Буду благодарен за любую помощь!
решение1
Пользователи egreg и samcarter_is_at_topanswers.xyz предположили, что fontsetup может вызывать множество проблем в фоновом режиме. Я перешел на использование unicode-math standalone, как они сказали, самостоятельно устанавливая основные и sans шрифты. Это все еще не решило всех моих проблем. Параметр mathrm=sym, похоже, справляется, так что теперь все работает так, как и задумано.
\documentclass[paper=A5]{scrartcl}
\usepackage{amssymb}
\usepackage[mathrm=sym]{unicode-math}
\setmainfont{XCharter}
\setmathfont{XCharter Math}
\setsansfont{Fira Sans Book}[Scale = .97]
\setmathfont[version=sans,Scale = .97]{Fira Math}
\usepackage{siunitx}
\sisetup{
mode = match,
propagate-math-font = true,
reset-math-version = false,
reset-text-family = false,
reset-text-series = false,
text-family-to-math = true,%test
text-series-to-math = true,%test
output-decimal-marker={,},
group-digits = all,
exponent-product = \cdot}
\begin{document}
Teste Schriftartensetup für \emph{XCharter}
\begin{equation*}
\sin \mathrm{sin} \operatorname{sin} \text{sin} \qty{1,4e-2}{\kilogram}
\end{equation*}
\sffamily
\mathversion{sans}
Teste Schriftartensetup für \emph{Fira}
\begin{equation*}
\sin \mathrm{sin} \operatorname{sin} \text{sin} \qty{1,4e-2}{\kilogram}
\end{equation*}
\end{document}
Забавно, что другой документ с похожей настройкой, использующий fontsetup
в преамбуле, из хорошо выглядящего превратился в полное уничтожение одного из шрифтов в течение 24 часов, при этом (насколько мне известно) не было никаких изменений в коде! Это также было решено с помощью метода выше.
решение2
Я бы xcharter-otf
вместо этого загрузил.
Я также добавляю настройки для шрифтов без засечек и моноширинных шрифтов, которые fontsetup
активируются при вызове с помощью этой xcharter
опции; можете свободно менять шрифты.
\documentclass{scrartcl}
\usepackage{xcharter-otf}
\setsansfont{CabinCondensed}[
Scale=MatchLowercase,
Extension=.otf,
UprightFont=*-RegularCondensed,
ItalicFont=*-ItalicCondensed,
BoldFont=*-SemiBoldCondensed,
BoldItalicFont=*-SemiboldItalicCondensed,
SlantedFont=*-RegularCondensed,
BoldSlantedFont=*-SemiBoldCondensed,
SlantedFeatures={FakeSlant=0.25},
BoldSlantedFeatures={FakeSlant=0.25},
SmallCapsFeatures={Numbers=OldStyle},
]
\setmonofont{Inconsolatazi4}[
Scale=MatchLowercase,
Extension=.otf,
UprightFont=*-Regular,
BoldFont=*-Bold,
SlantedFont=*-Regular,
BoldSlantedFont=*-Bold,
SlantedFeatures={FakeSlant=0.25},
BoldSlantedFeatures={FakeSlant=0.25},
]
\begin{document}
Teste Schriftartensetup für \emph{XCharter}
$\sin \mathrm{sin} \operatorname{sin}$ sin
math: $\mathrm{efficient}$
sym: $\symrm{efficient}$
Teste \textsf{Teste} \texttt{Teste} Teste
\textit{Teste \textsf{Teste} \texttt{Teste} Teste}
\textsl{Teste \textsf{Teste} \texttt{Teste} Teste}
\textbf{Teste \textsf{Teste} \texttt{Teste} Teste}
\end{document}
Как видите, для него не требуется никаких специальных настроек \mathrm
, поэтому он \symrm
остается отдельным, как показано в (надуманном) примере.