我正在使用这个mathastext
包排版一些历史文献。出于节省纸张的考虑,我选择了 Latin Modern Typewriter Light Condensed 字体作为默认字体。以下是 MWE:
\documentclass{article}
\usepackage[no-math]{fontspec}
\setmainfont{Latin Modern Mono Light Cond}
\usepackage{amsmath}
\usepackage[basic]{mathastext}
\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero,
nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
\begin{gather*}
1+\frac{1}{4}+\frac{1}{9}+\cdots =\frac{\pi}{6}\\
\frac{\ln x}{\ln\alpha}=\log_{\alpha}x\\
f(x)=\frac{1}{\sigma\sqrt{2\pi}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)
\end{gather*}
\end{document}
您可以看到希腊字母太大了。顺便说一下,我通过 XeLaTeX 编译了代码文件。
答案1
使用数学规范要从 OpenType 字体中选择希腊字形,请使用以下命令DejaVu Serif Condensed
:
对比
(右边我添加了使用的结果数学文本没有basic
选项;我认为这更好:看看=
符号和(小)括号)
我没有做太多实验,因为我使用 Mac 上的 CharacterViewer 尝试识别候选字体,但系统无法识别 TexLive 2013 库中的字体,所以我只有系统字体和一些我安装的字体。另请注意,出于某种原因,在使用xelatex
TexLive 安装的 OpenType 字体时,我必须指定字体文件名。
\documentclass{article}
\usepackage{amsmath}
\usepackage[no-math]{fontspec}
\setmainfont[ExternalLocation]{lmmonoltcond10-regular}
% je ne peux pas faire ici sur TL2010:
% \setmainfont{Latin Modern Mono Light Cond}
% et ça ne marche pas non plus sur le Mac avec TL2013.
\usepackage{mathspec}
%\setmathsfont(Greek)[Lowercase=Regular,Scale=0.92]{FreeMono}
%\setmathsfont(Greek)[Lowercase=Regular,Scale=0.92]{Courier New}
%\setmathsfont(Greek)[Lowercase=Regular,Scale=0.76]{DejaVu Sans ExtraLight}
\setmathsfont(Greek)[Lowercase=Regular,Scale=0.76]{DejaVu Serif Condensed}
% previous tries
% \usepackage[style=French,scale=0.88]{libgreek}
% \usepackage[basic,eulergreek]{mathastext}
% \MTEulerScale{0.9}
\usepackage[basic]{mathastext}
%\MTgreekfont{cmr}\Mathastext
%\MTgreekfont{cmtt}\Mathastext
\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
Nam arcu libero,
nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue
eu neque.
\begin{gather*}
1+\frac{1}{4}+\frac{1}{9}+\cdots =\frac{\pi}{6}\\
\frac{\ln x}{\ln\alpha}=\log_{\alpha}x\\
f(x)=\frac{1}{\sigma\sqrt{2\pi}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)
\end{gather*}
\[ abcdefghijklmnopqrstuvwxyz \]
\[ αβγδεζηθικλμνξοπρςστυφχψω \]
\end{document}
答案2
我无法重现您的确切情况,因为我没有可用的压缩字体。但是,如果其他答案中没有基于字体的解决方案,这可能是一种替代方法(如果不太受欢迎)。
本质上,我使用该scalerel
包将希腊字母重新定义为压缩版本,方法是横向压缩它们(在本例中为原始宽度设置的 70%)。我使用宏来执行此操作,\condense
该宏以压缩形式重新定义其(宏)参数。
下面,我先展示未改变的字符,然后展示改变的字符;然后展示结果。显然,如果您采用这种方法,您会将调用放在\condense{}
序言中。
\documentclass{article}
%\usepackage[no-math]{fontspec}
%\setmainfont{Latin Modern Mono Light Cond}
\usepackage{amsmath}
\usepackage[basic]{mathastext}
\usepackage{scalerel}
\makeatletter
% Following 3 lines thanks to Prof. Enrico Gregorio, from:
% http://tex.stackexchange.com/questions/42318/
% removing-a-backslash-from-a-character-sequence
\begingroup\lccode`\|=`\\
\lowercase{\endgroup\def\removebs#1{\if#1|\else#1\fi}}
\newcommand{\@macro@name}[1]{\expandafter\removebs\string#1}
\newcommand*\condense[1]{%
\expandafter\let\csname sv\@macro@name{#1}\endcsname#1%
\def#1{\hstretch{.7}{\csname sv\@macro@name{#1}\endcsname}}%
}
\makeatother
\begin{document}
ORIGINAL: \(\alpha\mu\sigma\pi\)
\condense{\alpha}\condense{\mu}\condense{\sigma}\condense{\pi}
REVISED: \(\alpha\mu\sigma\pi\)
\begin{equation}
1+\frac{1}{4}+\frac{1}{9}+\cdots =\frac{\pi}{6}\\
\end{equation}
\begin{equation}
\frac{\ln x}{\ln\alpha}=\log_{\alpha}x\\
\end{equation}
\begin{equation}
f(x)=\frac{1}{\sigma\sqrt{2\pi}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)
\end{equation}
\end{document}