如何获得 Libertine + 数学模式中的 Libertine + 历史连字符 + 法语风格?

如何获得 Libertine + 数学模式中的 Libertine + 历史连字符 + 法语风格?

我想使用以下内容编写一份文档:

  • 浪荡子;
  • 以正确的数学模式放荡不羁;
  • 历史连字符;
  • 法语数学风格(直立希腊字母和大写字母)。

我知道我应该为此使用 XeLaTeX、newtxmath 和 unicode-math,但我的所有尝试都失败了。

完成此操作的正确代码是什么?

答案1

这是一个尝试;小写和大写希腊字母是直立的,就像数学中的大写拉丁字母一样。到处都使用 Libertine 字体,在某些情况下可能会产生不良效果,因为它的侧边距对数学来说并不好。

\documentclass{article}
\usepackage[libertine]{newtxmath}
\usepackage{libertine}
\AtBeginDocument{\addfontfeatures{Ligatures=Historic}}

%%% Set up French style math
\makeatletter
\count@=`A
\advance\count@\m@ne
\loop\ifnum\count@<`Z
  \advance\count@\@ne
  \begingroup\lccode`x=\count@
  \lowercase{\endgroup\DeclareMathSymbol{x}{\mathalpha}{operators}{`x}}
\repeat

% the next is for compatibility with LuaLaTeX
\providecommand{\Umathchardef}{\XeTeXmathchardef}

\AtBeginDocument{
  \Umathchardef\Gamma   = "7 "0 "0393
  \Umathchardef\Delta   = "7 "0 "0394
  \Umathchardef\Theta   = "7 "0 "0398
  \Umathchardef\Lambda  = "7 "0 "039B
  \Umathchardef\Xi      = "7 "0 "039E
  \Umathchardef\Pi      = "7 "0 "03A0
  \Umathchardef\Sigma   = "7 "0 "03A3
  \Umathchardef\Upsilon = "7 "0 "03A5
  \Umathchardef\Phi     = "7 "0 "03A6
  \Umathchardef\Psi     = "7 "0 "03A8
  \Umathchardef\Omega   = "7 "0 "03A9
}
\@for\next:={alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,
             mu,nu,xi,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,varepsilon,
             vartheta,varrho,varsigma,varphi}\do
  {\expandafter\let\csname\next\expandafter\endcsname\csname\next up\endcsname}

\makeatother


\begin{document}

The story is about
$\alpha A \Gamma$ (αAΓ)

Math: $ABCDEFGHIJKLMNOPQRSTUVWXYZ$

Text: ABCDEFGHIJKLMNOPQRSTUVWXYZ

$\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega$

$I_{n}=J_{n}$

$\displaystyle\int_{\alpha}^{\beta}\Gamma(x)\,dx$
\end{document}

在此处输入图片描述

答案2

\documentclass[a4paper]{scrartcl}
\usepackage{blindtext}
\usepackage{unicode-math}
\usepackage{libertine}
\setmathfont[range={\mathrm,\mathit,\mathup}]{Linux Libertine O}
\setmathfont[range=\mathsf]{Linux Biolinum O}

\begin{document}
\blindtext

\begin{equation}
     a^2 + b^2 = c^2 \qquad 1234567890
\end{equation}

\end{document}

答案3

您可以将 fontspec 与选项一起使用[no-math]。在这种情况下,XeLaTeX 和 LuaLaTeX 将恢复使用旧式数学字体,因此您可以newtxmath使用[libertine]选项加载

\documentclass[a4paper]{scrartcl}
\usepackage{blindtext}
\usepackage[no-math]{fontspec}
\setmainfont[
            Ligatures=Historic, % ligatures for st, ct
            Ligatures=Rare, % ligatures for tz
            ]
             {Linux Libertine O}
\setsansfont{Linux Biolinum O}
\usepackage[libertine]{newtxmath}

\begin{document}
\blindtext

\begin{equation}
     a^2 + b^2 = c^2 \qquad 1234567890
\end{equation}

\end{document}

对于法式数学字体,你可以看看 CTAN:http://www.ctan.org/tex-archive/macros/latex/contrib/smflatex

相关内容