Как я могу получить символы Latin Modern / Computer Modern serif с двойным зачеркиванием / полужирным шрифтом, которые копируются / вставляются как unicode при использовании unicode-math?

Jan 05 2021

Я хочу, чтобы мои символы копировали и вставляли как Unicode, когда я копирую их из PDF. Я также хочу, чтобы они выглядели как традиционный латинский современный шрифт. По не связанным с этим причинам мне нужно использовать LuaLaTeX, а не pdflatex. В unicode-mathбольшинстве случаев пакет работает нормально, но выдает странные символы без засечек с двойным зачеркиванием. Как я могу это исправить?

Пример:

\documentclass{article}
\usepackage{amssymb}
\begin{document}
\[\alpha\beta\gamma\pi\sum\prod1+2+3+4+5+6+7+8+9+0/1!\]
\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\]
\[\mathbb{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}\]
\end{document}

в lualatexдает

в то время как

\documentclass{article}
\usepackage{amssymb}
\usepackage{unicode-math}
\begin{document}
\[\alpha\beta\gamma\pi\sum\prod1+2+3+4+5+6+7+8+9+0/1!\]
\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\]
\[\mathbb{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}\]
\end{document}

в lualatexдает

В то время как большинство персонажей идентичны, они почти идентичны, но заглавные символы с двойным начертанием явно не идентичны. У них даже нет засечек, в отличие от остальных символов. Здорово, что теперь я могу получать символы с двойным начертанием в нижнем регистре, но это не компенсирует резкие и стилистически очень разные символы с двойным начертанием в верхнем регистре. Ответ наhttps://tex.stackexchange.com/a/360609/2066дает правильные символы, но тогда символы не копируются как двойные. Как мне вернуть символы с двойным зачеркнутым шрифтом Latin Modern / Computer Modern без потери функции Unicode-copy-paste unicode-math?

(Мне также интересна история здесь; почему эти персонажи такие разные? https://tex.stackexchange.com/a/525235/2066 говорит: «Latin Modern Math является клоном Computer Modern Кнута, а unicode-math выдает почти идентичный вывод при настройках по умолчанию (с некоторыми оговорками: \ mathcal алфавит основан на каллиграфии Эйлера, а не на традиционном LaTeX)»).

Ответы

4 DavidCarlisle Jan 05 2021 at 07:51

Классический шрифт TeX с двойным начертанием, который вы показываете в первом блоке кода, вообще не является производным от Computer Modern, это шрифт символа AMS msbm10 (и первые две строки установлены в Computer Modern, а не Latin Modern)

Во втором блоке используется единый шрифт для всех трех строк: Latin Modern Math Opentype.

Есть и другие шрифты OpenType Math, вдохновленные Computer Modern, в частности NewComputerModernMath. Вы можете предпочесть математику с двойным зачеркиванием в этом шрифте:

\documentclass{article}
\usepackage{amssymb}
\usepackage{unicode-math}
\setmathfont{New Computer Modern Math}
\begin{document}
\[\alpha\beta\gamma\pi\sum\prod1+2+3+4+5+6+7+8+9+0/1!\]
\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\]
\[\mathbb{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}\]
\end{document}