我正在编写一份文档,其中需要描述当参数在给定范围内时给定系统的行为(例如 1 <= x < 100)。该文档不包含方程式或任何数学内容。我正在使用 Adobe 的 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 的宽度。
- 查找
SourceSansPro-Regular-lf-t1--base.tfm
(在 fonts/tfm 中) - 将其复制到例如当前文件夹。
- 将副本重命名为
XSourceSansPro-Regular-lf-t1--base.tfm
- 查找
a_ggs4wk.enc
(在 fonts/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}