
Я пишу документ, в котором мне нужно описать поведение заданной системы, когда параметр находится в заданном диапазоне (например, 1 <= x < 100). Документ не содержит никаких уравнений или какой-либо математической информации. Я использую шрифт Source Sans Pro от Adobe и у меня возникают проблемы с символами <= и <.
- Если я использую
$\leq$
символ <=, он выглядит иначе, чем остальной текст, но, если говорить точнее, совсем иначе, чем символ < - Если я использую
$\leq$
и$<$
, то они выглядят «похожими», но базовые линии не выровнены (и в любом случае они выглядят иначе, чем остальной текст)
Вот изображение, демонстрирующее оба варианта:
Есть ли способ набрать символ <= тем же шрифтом, что и остальной документ? Если это невозможно, есть ли способ выровнять базовые линии символов <= и <?
Обновление: Я использую pdflatex. Вот MWE:
\documentclass{book}
\usepackage[default]{sourcesanspro}
\begin{document}
1 $\leq$ abs(x) < 100
1 $\leq$ abs(x) $<$ 100
\end{document}
решение1
С lualatex/xelatex использовать глиф из SourceSansPro легко:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{SourceSansPro}
\DeclareTextSymbol{\textlessthanequal} \UnicodeEncodingName{"2264}
\begin{document}
1 ^^^^2264 x < 2
1 ≤ x < 2
1 \textlessthanequal{} x < 2
\end{document}
С pdflatex сложнее. Вот это вотвзломчтобы избежать необходимости делать много работы. Он предполагает, что меньшее равно такой же ширине, как меньшее.
- Найти
SourceSansPro-Regular-lf-t1--base.tfm
(в fonts/tfm) - Скопируйте его, например, в текущую папку.
- Переименуйте копию в
XSourceSansPro-Regular-lf-t1--base.tfm
- Найти
a_ggs4wk.enc
(в шрифтах/enc) - Скопируйте это.
- Переименуйте копию в
Xa_ggs4wk.enc
- Открыть
Xa_ggs4wk.enc
- Измените строку
/AutoEnc_ggs4wkuzes44fkerkgtyzffacb [
на/XAutoEnc_ggs4wkuzes44fkerkgtyzffacb [
- Найдите в файле
/less
и измените его на/lessequal
- Сохраните файл.
Проверьте, работает ли это с этим документом:
\documentclass{book} \usepackage[default]{sourcesanspro} \pdfmapline{=XSourceSansPro-Regular-lf-t1--base XSourceSansPro-Regular "XAutoEnc_ggs4wkuzes44fkerkgtyzffacb ReEncodeFont" <[Xa_ggs4wk.enc <SourceSansPro-Regular.pfb} \makeatletter \DeclareFontEncoding{U}{}{} \DeclareFontFamily{U}{xsourcesans}{} \DeclareFontShape{U}{xsourcesans}{m}{n} { <-> XSourceSansPro-Regular-lf-t1--base }{} \newcommand\textlessequal{{\fontencoding{U}\fontfamily{xsourcesans}\selectfont <}} \begin{document} 1 \textlessequal{} abs(x) < 100 \end{document}
В обоих случаях знак "меньше" не выровнен по базовой линии знака "меньше" или "равно". Вы можете сделать это с помощью команды raisebox, но, на мой взгляд, это будет выглядеть странно.
решение2
Или вы можете загрузить MnSymbol
опцию с помощью mathspec
. Это не даст вам тот же символ, но выглядит лучше.
Результат
МВЭ
% !TeX program = xelatex
\documentclass{article}
\usepackage[MnSymbol]{mathspec}
\usepackage[default]{sourcesanspro}
\defaultfontfeatures
{ Ligatures = TeX ,
Numbers = Proportional ,
Extension = .otf ,
UprightFont = *-Regular ,
ItalicFont = *-RegularIt ,
BoldFont = *-Bold ,
BoldItalicFont = *-BoldIt }
\setmathfont(Digits,Latin){SourceSansPro}
\begin{document}
1 $\leq$ abs(x) < 100
1 $\leq$ abs(x) $<$ 100
$x=12$
\end{document}