使用預設文檔字型排版

使用預設文檔字型排版

我正在編寫一個文檔,其中需要描述當參數處於給定範圍內(例如 1 <= x < 100)時給定係統的行為。該文件不包含方程式或任何數學內容。我正在使用 Adob​​e 的 Source Sans Pro 字體,但在使用 <= 和 < 符號時遇到問題。

  • 如果我使用$\leq$<= 符號,它看起來與文本的其餘部分不同,但更具體地說,與 < 符號完全不同
  • 如果我使用$\leq$and $<$,那麼它們看起來“相似”,但基線似乎沒有對齊(無論如何它們看起來與文本的其餘部分不同)

這是顯示這兩個選項的圖像:

在此輸入影像描述

有沒有辦法使用與文件其餘部分相同的字型來排版 <= 符號?如果做不到這一點,有沒有辦法讓 <= 和 < 符號的基線對齊?

更新:我正在使用 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(在字體/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

結果:

在此輸入影像描述

相關內容