
我正在編寫一個文檔,其中需要描述當參數處於給定範圍內(例如 1 <= x < 100)時給定係統的行為。該文件不包含方程式或任何數學內容。我正在使用 Adobe 的 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 的相同寬度。
- 尋找
SourceSansPro-Regular-lf-t1--base.tfm
(在字體/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}