unicode-math(XeLaTeX)를 사용하여 수학 모드에서 Linux Libertine 사용

unicode-math(XeLaTeX)를 사용하여 수학 모드에서 Linux Libertine 사용

논문에 Linux Libertine 글꼴을 사용하려고 합니다. 실제로 Libertine에는 수학 기호가 있지만 유니코드 수학에서는 이를 적절하게 사용하지 못했습니다. 다음 예에서는 글꼴에서 기호를 점진적으로 추가하려는 시도를 요약하고 실패를 강조합니다. OTF 글꼴이 수학을 완전히 지원하지 않기 때문에 일부 문제를 해결할 수 없다는 것을 알고 있지만 일부 문제는 고급 TeX 속임수를 사용하여 해결할 수 있습니다. 두 가지 주요 문제는 악센트와 괄호입니다. 다른 글꼴에서 다른 기호를 가져오는 것을 허용할 수 있습니다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\setlength{\parindent}{0pt}
\usepackage{fontspec}
\usepackage[partial=upright,nabla=upright]{unicode-math}

\newcommand{\sample}{\[ \underbrace{\frac{\partial y}{\partial x}R(x)^2}_{\text{Foo}} = \left[ \sum_{i=0}^\infty \tilde{f}_i \arcsin\left( \alpha_i^3 x \right) \right]^{-1} \sqrt[6]{\int \nabla y\times\mathbf{\theta}(y) \mathrm{d}\phi} \geq \mathring{\Omega}_\ell [d]\]}

\begin{document}
\sample
This is a correct rendering using Latin Modern. Let's try to add some Libertine\ldots

\setmainfont[Mapping=tex-text]{Linux Libertine O}
\setmathfont[range=\mathit/{latin,Latin,num,Greek,greek}]{Linux Libertine O Italic}
\setmathfont[range=\mathup/{latin,Latin,num,Greek,greek}]{Linux Libertine O}
\setmathfont[range=\mathbfup/{latin,Latin,num,Greek,greek}]{Linux Libertine O Bold}
\setmathfont[range=\mathbfit/{latin,Latin,num,Greek,greek}]{Linux Libertine O Bold Italic}
\setmathfont[range={"0300-"036F}]{Linux Libertine O}% Accents - won't compile correctly without this line
\setmathfont[range={"003D,"00D7,"2202,"2207,"2212,"221E,"2265}]{Linux Libertine O} % some more symbols, they work properly
% U+003D    Equal sign
% U+00D7    Cross
% U+2202    Partial
% U+2207    Nabla
% U+2212    Minus
% U+221E    Infinity
% U+2265    Greater or equal

\sample

\textcolor{red}{Problem 1:} accents are off (ugly hack: use \texttt{\backslash skew})\\
\textcolor{red}{Problem 2:} brackets are still in LM; at least the normal sized brackets must match the text, so let's add parentheses \& square brackets:

\setmathfont[range={"0028,"0029,"005B,"005D}]{Linux Libertine O}

\sample

\textcolor{red}{Problem 3:} only the right parenthesis extends\\
\textcolor{red}{Problem 4:} the underbrace became gibberish\\
Possible fix to 3 \& 4: include the extending brackets from  `Miscellaneous Technical' unicode block (\texttt{U+239B}--\texttt{U+23AA}); unfortunately it doesn't change anything.
\medskip

Libertine has a summation and integral symbol, let's try to use them:

\setmathfont[range={"2211,"222B}]{Linux Libertine O}

\sample

\textcolor{red}{Problem 5:} the summation symbol is too small; Note that the integral symbol was broken to an top and bottom parts (both exist in the font), but there are no top and bottom parts of the summation symbol in this font.
\end{document}

Linux Libertine을 사용하여 복잡한 수학 공식을 렌더링하려고 합니다.

답변1

Linux Libertine과 같은 OpenType이 아닌 수학 글꼴의 영숫자 기호 외에는 사용하지 마세요. 괄호, 큰 연산자(합계, 적분 등), 넓은 악센트, 루트 등은 모두 전체 OpenType 수학 글꼴에서만 부러워할 만한 특별한 고려 사항이 필요합니다.

일반적으로 최고 품질의 수학 조판을 원한다면 전체 수학 글꼴만 사용하세요. 첫 번째 Libertine 예제에서도 악센트와 어근이 꺼져 있는 것을 볼 수 있습니다.

XITS Math는 더 가벼운 Latin Modern 글꼴보다 더 잘 어울릴 수 있습니다.

답변2

이 질문을 받은 이후로 상황이 달라졌을 수도 있고 일부만 다룬다고 생각합니다. 하지만 저도 비슷한 상황에 있었고(논문에서 Linux Libertine을 사용하고 싶었습니다) 패키지를 찾았을 때 큰 안도감을 느꼈습니다.newtx는 특히 Linux Libertine에 중점을 두고 다양한 글꼴 배열로 수학을 설정하기 위한 수많은 향상된 기능을 제공합니다.

나는 XeLaTeX를 사용하고 간단히 말해서(실제 문서의 서문은 이 시점에서 100줄 이상입니다...) 서문에 다음을 넣습니다.

\usepackage[libertine]{newtxmath}
\usepackage[no-math]{fontspec}
\setmainfont{Linux Libertine O}

갑자기 모든 커닝 문제와 수학 모드의 더 많은 문제가 기본적으로 해결되었습니다.

나는 Linux Libertine을 노력 없이는 수학을 포함한 문서에 실질적으로 사용할 수 없다고 말하고 싶습니다 newtx. 수동 건너뛰기, 공백 및 커른을 추가하는 데 몇 시간을 소비하거나 newtxmath.

나는 수학 모드에서 글꼴에 대한 메트릭을 정의하는 내부 기능을 알지 못하므로 기술적으로 실수할 수 있습니다. 그러나 메인라인에 이 외부 패키지의 커닝 기능을 포함할 수 있다면 Linux Libertine이 크게 향상될 것이라고 믿습니다. 폰트. 수학 모드의 거의 모든 문자 집합이 없으면 문제가 발생합니다.

이 질문을 발견한 사람들은 이 패키지를 철저하게 탐색해 보기를 바랍니다.

답변3

TL 2012의 일부인 새로운 TeX Gyre Pagella Math를 사용해 보세요:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\setlength{\parindent}{0pt}
\usepackage[partial=upright,nabla=upright]{unicode-math}
\setmainfont{Linux Libertine O}
\setmonofont{LinMonoO} 
\setmathfont{TG Pagella Math}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}

\def\Macro#1{\texttt{\textbackslash#1}}
\begin{document}

\[ \underbrace{\frac{\partial y}{\partial x}R(x)^2}_{\text{Foo}} = \left[ \sum_{i=0}^\infty \tilde{f}_i \arcsin\left( \alpha_i^3 x \right) \right]^{-1} \sqrt[6]{\int \nabla y\times\mathbf{\theta}(y) \mathrm{d}\phi} \geq \mathring{\Omega}_\ell [d]
\]

\Macro{mathscr}: $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Macro{mathscr}: $\mathscr{abcdefghijklmnopqrstuvwxyz}$\\
\Macro{mathbfscr}: $\mathbfscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Macro{mathbfscr}: $\mathbfscr{abcdefghijklmnopqrstuvwxyz}$

\bigskip
\Macro{mathcal} and \Macro{mathbfcal}

\texttt{StylisticSet=1}: $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\texttt{StylisticSet=1}: $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=2]{XITS Math}
\texttt{StylisticSet=2}: $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\texttt{StylisticSet=2}: $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

\end{document}

여기에 이미지 설명을 입력하세요

답변4

CTAN 패키지 의 관리자 libertine이자,사실상Libertine 글꼴 관리자는 사용을 권장합니다.

\usepackage{unicode-math}
\setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf}

XeTeX 또는 LuaTeX의 "호환 가능한 수학"을 위해. libertinusmath-regular.otf 글꼴은 다음에 속합니다.libertinus 글꼴CTAN 패키지. 내가 지금 고민하고 있는 문서의 글꼴 선택을 완전히 제어할 수 있다면 아마도 글꼴 선택으로 완전히 전환할 것입니다. Libertinus는 "많은 버그 수정"과 더욱 스타일리쉬한 기능을 갖춘 Libertine 제품군의 포크입니다.

관련 정보