유니코드 수학 및 다양한 글꼴이 수식에서 적당한 간격을 제공하지 못합니다.

유니코드 수학 및 다양한 글꼴이 수식에서 적당한 간격을 제공하지 못합니다.

이 문제가 내 구성으로 인한 것인지, 아니면 일종의 버그인지 확인하고 싶습니다.

이것은 내가 로드한 패키지와 그에 대한 구성입니다(문제를 테스트하기 위해 모두 매우 최소한입니다). 저는 XeTeX 0.9998을 사용하고 있습니다.

\documentclass[12pt,a4paper]{scrbook}
\usepackage{polyglossia}
\setmainlanguage{italian}
\usepackage{amsmath,amsthm,mathtools} 
\usepackage{mathcomp,mathrsfs,xfrac,bbm}
\usepackage{unicode-math}
\usepackage{xunicode}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setsansfont[Scale=MatchLowercase]{Myriad Pro}
\setmonofont{Inconsolata}
\setmathfont{XITS Math}

글을 쓰면서 수학 공식의 공백에 뭔가 이상한 점이 있다는 것을 알아차렸고, 이 글을 쓴 XITS 수학 것은 꽤 끔찍했습니다. 간격이 전혀 좋지 않고 충돌이 많이 발생합니다. 그런 다음 unicode-math에서 지원하는 글꼴 중에서 선택하여 다른 글꼴을 사용해 보았습니다(README에서 목록을 찾았습니다). 보시다시피 STIX Math와 Latin Modern Math에서도 동일한 효과가 있는 것으로 나타났습니다. 라틴 현대 수학

여기서 문제는 덜 분명합니다. 왜냐하면 글꼴이 더 가벼우나 라틴 현대의 표준 버전(오픈타입 글꼴 및 유니코드 수학을 사용하지 않음)에 직면하기 때문입니다.

라틴 모던 정답 이게 맞아서 unicode-math와 관련된거인줄 알았는데 Neo Euler와 Asana Math를 사용하면 괜찮아 보이네요

네오 오일러 아사나 수학

이 문제의 원인이 무엇인지 아는 사람이 있습니까? 아마도 글꼴? XITS나 STIX를 꼭 사용하고 싶기 때문이 아니길 바랍니다... 문제를 재현할 수 있습니까?

답변1

주요 문제는 XeTeX가 수학 기울임꼴 교정을 적용하지 않는다는 것입니다.

  • XITS에는 기울임꼴 수정 기능이 있으며 적절한 간격을 유지하려면 이 기능이 필요합니다.
  • Latin Modern의 경우 글꼴은 기울임꼴 수정 기능을 전혀 제공하지 않습니다.
  • Asana 수학에는 이탤릭체 수정도 부족하지만 글리프는 이탤릭체 수정의 필요성을 완화하는 방식으로 간격을 두고 있습니다.
  • 오일러에는 이탤릭체 수정 기능이 있지만 수직 디자인으로 인해 이탤릭체 수정 사항이 눈에 잘 띄지 않습니다(예제가 잘못되었더라도 math-style=upright오일러 알파벳을 사용하려면 옵션을 전달해야 합니다).

XeTeX가 기울임꼴 교정 적용을 중단한 이유는 불분명합니다. 코드의 해당 부분은 오랫동안 건드리지 않았지만 어쨌든 코드에 결함이 있었기 때문에 실수로 작동했고 최근 수학 정리 중 일부가 중단된 것 같습니다.

그러나 해결 방법이 있습니다. 글꼴 편집기(FontForge 권장)에서 XITS 글꼴을 열고 공백 문자 너비를 다음으로 설정합니다.0, 이로 인해 엔진이 기울임꼴 수정을 다시 적용하게 됩니다.

궁금한 점은 이탤릭체 수정 적용 여부는 코드의 OpenType 수학 분기에서도 글꼴의 공간 요소가 0인지 여부에 따라 달라지며 이는 TFM 수학 글꼴의 경우에는 해당되지만 본질적으로 그렇지는 않습니다. 오픈타입 글꼴.

또한 OpenType 수학 사양은 이탤릭체 교정을 적용해야 하는 시점에 대해 TeX 알고리즘과 다르지만 매우 모호하며 MS 구현이 실제로 문서화된 것과 다른 것처럼 보이므로 아직 XeTeX 및 LuaTeX에서는 잘 지원되지 않습니다.

업데이트: XeTeX의 마스터 브랜치는 이탤릭체 수정에 대한 보다 강력한 처리가 고안될 때까지 이를 더 잘 처리합니다.

관련 정보