如何使用拉丁现代语进行文本表达以及拉丁现代数学进行数学表达

如何使用拉丁现代语进行文本表达以及拉丁现代数学进行数学表达

如何从默认的文本和数学计算机现代语言切换到文本拉丁现代语言和数学拉丁现代数学?

在序言中,我把\usepackage{lmodern}文本改用拉丁现代数学。但我应该在序言中添加什么内容,以便文档使用拉丁现代数学进行数学运算?

拉丁现代数学下载页面似乎用于下载用于 MS Word 或 Adob​​e 或其他程序的字体。

答案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}

在此处输入图片描述

附录:

在此链接中您可以看到拉丁现代文本与数学的结合。

https://tug.org/FontCatalogue/latinmodernroman/

相关内容