如何从默认的文本和数学计算机现代语言切换到文本拉丁现代语言和数学拉丁现代数学?
在序言中,我把\usepackage{lmodern}
文本改用拉丁现代数学。但我应该在序言中添加什么内容,以便文档使用拉丁现代数学进行数学运算?
拉丁现代数学下载页面似乎用于下载用于 MS Word 或 Adobe 或其他程序的字体。
答案1
如果你使用pdflatex
,那么就
\usepackage{lmodern}
将要完全地将计算机现代替换为拉丁现代,用于文本和数学,因为它的代码是
\ProvidesPackage{lmodern}[2015/05/01 v1.6.1 Latin Modern Fonts]
\renewcommand{\rmdefault}{lmr}
\renewcommand{\sfdefault}{lmss}
\renewcommand{\ttdefault}{lmtt}
\DeclareOption{nomath}{\endinput}
\DeclareOption{variablett}{%
\renewcommand{\ttdefault}{lmvtt}
}
\DeclareOption{lighttt}{%
\let\lmtt@use@light@as@normal\@empty
}
\ProcessOptions\relax
\SetSymbolFont{operators} {normal}{OT1}{lmr} {m}{n}
\SetSymbolFont{letters} {normal}{OML}{lmm} {m}{it}
\SetSymbolFont{symbols} {normal}{OMS}{lmsy}{m}{n}
\SetSymbolFont{largesymbols}{normal}{OMX}{lmex}{m}{n}
\SetSymbolFont{operators} {bold} {OT1}{lmr} {bx}{n}
\SetSymbolFont{letters} {bold} {OML}{lmm} {b}{it}
\SetSymbolFont{symbols} {bold} {OMS}{lmsy}{b}{n}
\SetSymbolFont{largesymbols}{bold} {OMX}{lmex}{m}{n}
\SetMathAlphabet{\mathbf}{normal}{OT1}{lmr}{bx}{n}
\SetMathAlphabet{\mathsf}{normal}{OT1}{lmss}{m}{n}
\SetMathAlphabet{\mathit}{normal}{OT1}{lmr}{m}{it}
\SetMathAlphabet{\mathtt}{normal}{OT1}{lmtt}{m}{n}
\SetMathAlphabet{\mathbf}{bold} {OT1}{lmr}{bx}{n}
\SetMathAlphabet{\mathsf}{bold} {OT1}{lmss}{bx}{n}
\SetMathAlphabet{\mathit}{bold} {OT1}{lmr}{bx}{it}
\SetMathAlphabet{\mathtt}{bold} {OT1}{lmtt}{m}{n}
\def\mathsterling{\mathit{\mathchar"70BF}}
但是与它结合使用的时候amsmath
有一个问题:使用amsmath
(和没有字体包一样)时,largesymbols
字体是可缩放的,但与lmodern
它结合使用时就变成固定大小了。
最小示例:
\documentclass{article}
\usepackage{amsmath}
%\usepackage{lmodern}
\begin{document}
\[
X_{\sum_i a_i}
\]
\end{document}
如果你取消注释该\usepackage{lmodern}
行,你会得到
这是不可接受的。使用固定字体大小会largesymbols
产生其他不良后果,因此我建议添加\usepackage{fixcmex}
(正是为解决此问题而编写的)。它将字体恢复largesymbols
为 Computer Modern,精确地cmex10
和其他大小,但lmex10
如果是,则是直接复制cmex10
,因此基本上不会有区别。
\documentclass{article}
\usepackage{amsmath}
\usepackage{lmodern}
\usepackage{fixcmex}
\begin{document}
\[
X_{\sum_i a_i}
\]
\end{document}
不如果您使用的是 XeLaTeX 或 LuaLaTeX,则加载lmodern
。如果您使用这些引擎,即使您不加载,默认字体也是 Latin Modern(数学使用 Computer Modern)fontspec
;加载也unicode-math
将使用 Latin Modern Math。
答案2
如果您想使用名为 Latin Modern Math 的实际字体(这是一种 OpenType 字体),则需要 LuaLaTeX 或 XeLaTeX。添加
\usepackage{unicode-math}
您不需要任何其他命令或包。如果您愿意,您可以另外设置
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\setmonofont{Latin Modern Mono}
\setmathfont{Latin Modern Math}
不过,这些已经是默认的了unicode-math
。
您无需使用lmodern
或任何其他旧式 8 位字体包以及unicode-math
。它们只会浪费极少量的时间。
答案3
这里有一个最小的XeLaTeX
和工作示例LuaLaTeX
。您可以看到\mathcal
和\mathbb
与的默认不同CM
。
\documentclass[12pt]{article}
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setmathfont{Latin Modern Math}[version=lm]
\begin{document}
This is a short formula
\[abc\sum_{i=0}^Na_i=\mathcal{C}\mathbb{R}\]
\end{document}
附录:
在此链接中您可以看到拉丁现代文本与数学的结合。