Набор символов

Набор символов

Я пишу документ, в котором мне нужно описать поведение заданной системы, когда параметр находится в заданном диапазоне (например, 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 сложнее. Вот это вотвзломчтобы избежать необходимости делать много работы. Он предполагает, что меньшее равно такой же ширине, как меньшее.

  1. Найти SourceSansPro-Regular-lf-t1--base.tfm(в fonts/tfm)
  2. Скопируйте его, например, в текущую папку.
  3. Переименуйте копию вXSourceSansPro-Regular-lf-t1--base.tfm
  4. Найти a_ggs4wk.enc(в шрифтах/enc)
  5. Скопируйте это.
  6. Переименуйте копию вXa_ggs4wk.enc
  7. ОткрытьXa_ggs4wk.enc
  8. Измените строку /AutoEnc_ggs4wkuzes44fkerkgtyzffacb [на/XAutoEnc_ggs4wkuzes44fkerkgtyzffacb [
  9. Найдите в файле /lessи измените его на/lessequal
  10. Сохраните файл.
  11. Проверьте, работает ли это с этим документом:

     \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}

решение3

Это исправляет базовую линию так, как мне было нужно:

1 $\leq$ abs(x) \raisebox{1pt}{$<$} 100

Результат:

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

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