仅更改文档中电传打字机系列的字体大小?

仅更改文档中电传打字机系列的字体大小?

我见过更改整个文档的 \ttfamily 字体,这是对此的后续。

我想使用类似“palatino”的字体(tgpagella) - 但我也想使用{lmodern}'slmtt作为电传打字机字体。考虑这个 MWE:

\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{lmodern}            % have lmtt loaded; but...
\usepackage{tgpagella}          % use "palatino" as main font, ...
\renewcommand{\ttdefault}{lmtt} % and use lmtt for teletype family

\begin{document}
testing %
\makeatletter % must be wrapping outside the \texttt; not just the \typeout inside the \texttt !
\texttt{testing %
  \typeout{ttdefault is \ttdefault, \f@size ; \meaning\f@size} %
}
\makeatother %
t\texttt{t}e\texttt{e}s\texttt{s}t\texttt{t}i\texttt{i}n\texttt{n}g\texttt{g}
\end{document}

输出为:

测试.png

... 应该可以看到lmtt电传打字机比罗马字体略小tgpagella。相应地,我想增加电传打字机字体的大小;根据我的理解,它\typeout\f@size

ttdefault is lmtt, 10; macro:->10

...与 中设置的相同\documentclass

我的问题是:

  • 我是否\typeout正确读取(或者更确切地说,读取)了电传打字机字体的当前字体大小(即,只要\f@size里面的字体就\texttt足够了)?
  • 我怎样才能改变整个文档中电传打字字体的大小?

答案1

您可以放大 Latin Modern Mono 或缩小 TeX Gyre Pagella。后者更容易,因为tgpagella它接受一个scale选项。

\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[scale=0.95877]{tgpagella} % use "palatino" as main font, ...
\renewcommand{\ttdefault}{lmtt}       % and use lmtt for teletype family

\begin{document}
testing %
t\texttt{t}e\texttt{e}s\texttt{s}t\texttt{t}i\texttt{i}n\texttt{n}g\texttt{g}

\sbox0{e}\the\ht0

\sbox0{\ttfamily e}\the\ht0

\end{document}

如您所见,文本字体和单色字体的高度e相同。形状并不相同(Palatino 的突出部分相当宽),但您明白了。

在此处输入图片描述

我如何确定缩放因子?反复试验。

答案2

由于TeX Gyre PagellaLatin Modern字体系列均以 Opentype 格式提供(顺便说一下,它们是由同一家数字铸造厂生产的),因此您可能需要考虑切换到 XeLaTeX 或 LuaLaTeX 并使用该fontspec软件包加载字体。该fontspec软件包提供了自动缩放字体的选项Scale=MatchLowercase

在此处输入图片描述

\documentclass[10pt]{book}
\usepackage{fontspec,unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmonofont[Scale=MatchLowercase]{Latin Modern Mono}  % equate the x-heights of the fonts
\setmathfont{TeX Gyre Pagella Math}
\begin{document}
testing 
\texttt{testing}
t\texttt{t}e\texttt{e}s\texttt{s}t\texttt{t}i\texttt{i}n\texttt{n}g\texttt{g}
\end{document}

答案3

如果 @mico 建议您切换到 XeLaTeX,那么我也可以建议您切换到纯 TeX 和 OPmac。示例:

\input opmac
\input cs-pagella

normal: t{\tt t}e{\tt e}s{\tt s}t{\tt t}i{\tt i}n{\tt n}g{\tt g}

\def\tt{\tentt\thefontscale[1050]} % correction of \tt font

corrected: t{\tt t}e{\tt e}s{\tt s}t{\tt t}i{\tt i}n{\tt n}g{\tt g}

\typosize[12/14] % the correction is valid for all sizes

corrected: t{\tt t}e{\tt e}s{\tt s}t{\tt t}i{\tt i}n{\tt n}g{\tt g}

\bye!

ttcorr

相关内容