寻找具有浅色浓缩希腊字母的字体(匹配“lmttlc”)

寻找具有浅色浓缩希腊字母的字体(匹配“lmttlc”)

我正在使用这个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

DejaVu Serif 压缩希腊文 似曾相识的特写对比DejaVu 特写不是基本数学文本

(右边我添加了使用的结果数学文本没有basic选项;我认为这更好:看看=符号和(小)括号)

我没有做太多实验,因为我使用 Mac 上的 CharacterViewer 尝试识别候选字体,但系统无法识别 TexLive 2013 库中的字体,所以我只有系统字体和一些我安装的字体。另请注意,出于某种原因,在使用xelatexTexLive 安装的 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}

在此处输入图片描述

相关内容