수학 모드 내부와 외부의 다양한 글꼴

수학 모드 내부와 외부의 다양한 글꼴

단순 파일을 처리하는 경우:

\documentclass{report}

\begin{document}
1234567890

$1234567890$
\end{document}

하나를 사용하면 pdflatex하나의 글꼴만 있는 PDF(CMR10)를 얻을 수 있지만, 생성된 PDF 중 하나를 사용하여 처리할 때 xelatex수학 lualatex모드 외부에서는 라틴 현대 로마자 10을 사용하고 내부에서는 CMR10을 사용합니다.

그 이유는 무엇입니까?

답변1

TeX Live 2018부터 LaTeX는 이제 기본적으로 UTF-8입니다. "유니코드 혁명"이 완료되었기 때문입니다 1 . 따라서 \usepackage[utf8]{inputenc}pdfLaTeX를 사용할 때 추가하는 것이 불필요해집니다 .

그러나 pdfLaTeX의 UTF-8 지원은 가짜이며 기본 pdfTeX 엔진이 본질적으로 8비트 인코딩으로 제한되어 있기 때문에 임의의 UTF-8 문자를 입력에 붙여넣을 때 의미 있는 출력을 얻을 수 없습니다.

이는 Xe/LuaTeX와 상당히 다릅니다. 이러한 엔진은 기본적으로 UTF-8을 지원합니다 2 . 전통적인 TeX 글꼴은 제공하는 문자 모양이 매우 제한되어 있습니다 3 . 이것은 확실히 UTF-8을 설명하기에 충분하지 않으므로 글꼴도 전체 UTF-8 범위를 포괄해야 합니다 4 . 이를 위해 TU 인코딩이 도입되었습니다.

기본적으로 LaTeX는 CM(Computer Modern) 글꼴 계열을 로드합니다. CMR10 글꼴은 TU 인코딩에서 사용할 수 없으며 앞으로도 사용할 수 없으므로 가장 가까운 라틴 현대 로마 10이 대신 로드됩니다.

이제 질문이 남습니다. 라틴 현대가 수학 모드에서 사용되지 않는 이유는 무엇입니까? 수학 모드에서는 상황이 좀 더 까다롭기 때문입니다. 전통적인 설정에서는 \mathbf, \mathcal등과 같은 다른 계열과 명령을 다른 계열로 전환하는 것이었습니다. 모든 기호가 단일 글꼴에서 나오므로 유니코드에서는 더 이상 불가능합니다. 따라서 패밀리 전환 방식은 더 이상 작동하지 않으며 수학 코드를 앞뒤로 바꾸는 훨씬 더 복잡한 시스템으로 대체되어야 합니다. 이는 unicode-math패키지에서 구현됩니다. 또한 unicode-mathTeX 패키지를 사용하면 항상 수천 개의 수학 코드를 다시 할당해야 하기 때문에 갑자기 훨씬 느려지기 때문에 이것이 문제가 되는 이유를 알게 될 것입니다 . 이것이 현재 표준 OML/OMS 인코딩이 유지되는 이유입니다.


1 요즘에는 모든 사람이 파일을 UTF-8로 저장하며 대부분의 소프트웨어는 UTF-8을 이해합니다. 이모티콘을 생각해 보세요(어디에나 있습니다). 이모티콘은 UTF-8의 일부이므로 이모티콘을 표시할 수 있는 모든 항목은 UTF-8을 지원해야 합니다.
2 실제로 UTF-8이 아닌 경우 LuaTeX는 파일을 거부합니다.
3 T1 인코딩은 256개의 문자만 인코딩할 수 있습니다.
4 글꼴에 필요한 문자가 있는지 여부는 또 다른 질문입니다.

답변2

텍스트와 수학에 대한 글꼴 설정은 TeX에서 상당히 분리된 작업입니다. 텍스트 글꼴은 강조된 문자와 하이픈 넣기, 많은 기호에 대한 수학 글꼴, 위 첨자와 위 첨자의 올바른 배치 등에 관심을 기울여야 합니다.

귀하의 예제에서는 pdftex에서 동일한 글꼴에서 가져올 수 있는 몇 가지 글리프만 사용합니다. 그러나 예를 들어 빼기(-) 또는 문자(abc)를 추가하면 사용되는 글꼴이 수학 내부와 외부에서 달라집니다. 그리고 텍스트에 대해 권장되는 T1 인코딩으로 전환하면 \usepackage[T1]{fontenc}숫자에도 차이가 있습니다.

유니코드 엔진의 경우 기본 설정에도 차이가 있습니다. 텍스트 글꼴로 유니코드 글꼴을 사용하는 것은 악센트가 있는 문자와 하이픈을 올바르게 사용하는 데 어느 정도 필수이기 때문입니다(예를 들어 참조).https://tex.stackexchange.com/a/470987/2388). 따라서 2017년 초에 LaTeX 커널은 사용자가 더 이상 글꼴 사양을 로드하지 않아도 되도록 이 엔진의 기본값을 변경했습니다.

수학에서 하이픈 넣기와 강조 문자는 실제로 관련이 없으므로 레거시 수학 설정 작업은 유니코드 엔진에서 찾습니다. 그러나 수학 설정이 유니코드 글꼴을 사용하도록 변경된 경우에도 텍스트 글꼴과 동일하지 않지만 예를 들어 라틴 현대 수학과 같습니다.

관련 정보