使用默认文档字体排版

使用默认文档字体排版

我正在编写一份文档,其中需要描述当参数在给定范围内时给定系统的行为(例如 1 <= x < 100)。该文档不包含方程式或任何数学内容。我正在使用 Adob​​e 的 Source Sans Pro 字体,但在使用 <= 和 < 符号时遇到了麻烦。

  • 如果我使用$\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 则更加困难。这是一个黑客以避免必须做太多工作。它假设 less 等于 less 的宽度。

  1. 查找SourceSansPro-Regular-lf-t1--base.tfm(在 fonts/tfm 中)
  2. 将其复制到例如当前文件夹。
  3. 将副本重命名为XSourceSansPro-Regular-lf-t1--base.tfm
  4. 查找a_ggs4wk.enc(在 fonts/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

结果:

在此处输入图片描述

相关内容