
Я пытаюсь создать рисунок на Python, текст которого соответствует (по крайней мере, близко) шрифту математического режима Latex. Однако я не нахожу в сети никакой информации, которая дала бы результаты, близкие к желаемому шрифту, особенно по греческим символам. Например, Latex выдает следующее:
\documentclass{article}
\usepackage{textgreek}
\begin{document}
\textit{testθτμ}
$test\theta\tau\mu$
\end{document}
Я пытаюсь воспроизвести вторую строку текста. Основываясь на других ответах на SE и информации, которую я нашел в сети, я попробовал следующие шрифты и столкнулся со следующими проблемами:
Современный компьютер: слишком завитой/курсивный
Computer Modern Sans: другой стиль, наиболее заметен на tau
New Computer Modern 10: слишком завитой/курсивный
Новая компьютерная современная математика: не курсив
Латинская современная математика: не курсив
Я что-то упускаю? Я просто не нахожу курсивные варианты математических шрифтов или математический режим использует совершенно другой шрифт? Буду признателен за любые подсказки; любые ссылки на загрузку будут очень признательны.
решение1
Классический TeX не используеташрифт math. Шрифты имеют только 127 символов, и поэтому используется много (до 16) шрифтов на одно математическое выражение. (Система допускает 256 символов на шрифт, но использование 8 бит считалось слишком радикальным в 1980 году, поэтому используется только нижняя половина каждого шрифта)
так
\documentclass{article}
\showoutput
\begin{document}
$test\theta\tau\mu+1$
\end{document}
использует cmmi10.pfb
для test
(с буквами в стандартных позициях ascii). Он использует тот же шрифт, но позиции для Ctrl-R
, Ctrl-\
, и Ctrl-V
для греческого и он использует cmr10.pfb
для +
и 1
.
Это значительно затрудняет использование математических шрифтов TeX из других систем, даже если они могут использовать шрифты Type 1.
Математический шрифт Unicode содержит все эти символы в одном шрифте, в стандартных позициях, что значительно упрощает его использование в других системах.
Обработка с помощью LuaLaTeX
\documentclass{article}
\usepackage{unicode-math}
\showoutput
\begin{document}
$test\theta\tau\mu+1$
\end{document}
Все символы взяты из латинской современной математики ( latinmodern-math.otf
) в стандартных слотах Unicode, обратите внимание на математический курсив.отдельныйперсонажи.
Полученная строка будет работать с любым математическим шрифтом Unicode, а не только с Latin Modern.
Например, на этом сайте он подхватит любой шрифт, установленный локально (здесь используется шрифт Windows Segoe UI Symbol).
решение2
(слишком длинно для комментария, поэтому опубликовано как ответ)
В этом ответе я в основном рассматриваю утверждение OP, что Latin Modern Math (LMM) "кажется, не имеет [математического] курсива". Я озадачен этим утверждением. Действительно, следующий пример, который нужно скомпилировать с помощью XeLaTeX или LuaLaTeX, демонстрирует, что LMM имеет математический курсив латинских и греческих букв.
Конечно, если вы хотите написать что-то курсивом в текстовом режиме, вам следует использовать текстовые курсивные глифы, а не математические курсивные глифы.
Пакет unicode-math
предоставляет команду \symup
для записи символов в прямом режиме.
\documentclass{article}
\usepackage{unicode-math} % for '\setmathfont' macro; load 'fontspec' package automatically
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}
\begin{document}
\textit{abcxyz} $abcxzy$ $\theta\tau\mu$ abcxyz $\symup{\theta\tau\mu}$
\end{document}
решение3
Этот пост показывает еще один инструмент в дополнение к другим хорошим ответам. Следующее основано на вашем MWE
\documentclass{article}
\usepackage{textgreek}
\begin{document}
\textit{testθτμ}%ϑ
$test\theta\tau\mu$
\end{document}
Вы могли бы использоватьpdfшрифтыв оболочке по вашему выбору для создания таблицы всех шрифтов PDF-файла (я заменил некоторые части на [...]):
$ pdflatex Example.SE.tex; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
[...]
Output written on Example.SE.pdf (1 page, 39405 bytes).
Transcript written on Example.SE.log.
Table for Ryan White:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
MSKRKD+CMTI10 Type 1 Builtin yes yes yes 4 0
TPJLSH+grmi1000 Type 1 Builtin yes yes yes 5 0
OIWUEJ+SFTI1000 Type 1 Custom yes yes yes 6 0
RYTSZC+CMMI10 Type 1 Builtin yes yes yes 7 0
SDXKYB+CMR10 Type 1 Builtin yes yes yes 8 0
Я получаю похожую таблицу $ latex Example.SE.tex; vipdfm Example.SE.dvi; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf
:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
BGNOPA+CMTI10 Type 1C Builtin yes yes yes 4 0
DOYMNM+grmi1000 Type 1C Builtin yes yes yes 5 0
VQMNVE+SFTI1000 Type 1C WinAnsi yes yes yes 6 0
SIZLWA+CMMI10 Type 1C Builtin yes yes yes 7 0
ZIUSPE+CMR10 Type 1C Builtin yes yes yes 8 0
Вы найдете описания таких сокращений, какCMTI10(Computer Modern Italic, «более сжатый и немного светлее», размер 10pt) наhttps://ctan.org/tex-archive/fonts/cm/mf. Другая информация доступна наhttps://eng.m.fontke.com/font/10030505/detail/.СФТИ1000указан в SFTI1000 как «Postscript-имя» Computer Modern.grmi1000кажется, это курсив один изКлаудио Беккари греческийшрифты, см.
https://ctan.org/tex-archive/fonts/greek/cbfonts/fonts/tfm/cbgreekиhttps://ctan.org/pkg/cbgreek-complete. Если удалить \usepackage{textgreek}
и \textit{testθτμ}
из файла и скомпилировать снова, то останутся только CMMI10 (Computer Modern Italic, «не сжатый и не совсем такой легкий», 10pt) и CMR10 (Computer Modern Italic, «базовый», 10pt).
Таким образом, точный ответ ботаника на ваш вопрос (до редактирования) «Какой шрифт в математическом режиме Latex?»:CMMI10 (Computer Modern Italic, «не сжатый и не такой светлый», 10pt)относительно установки, упомянутой выше.
Обратите внимание на различияLuaTeX:
$ lualatex Example.SE.tex; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
[...]
Output written on Example.SE.pdf (1 page, 12154 bytes).
Transcript written on Example.SE.log.
Table for Ryan White:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
EJJTSY+LMRoman10-Italic CID Type 0C Identity-H yes yes yes 4 0
RYTSZC+CMMI10 Type 1 Builtin yes yes no 5 0
JFRMQG+LMRoman10-Regular CID Type 0C Identity-H yes yes yes 6 0
LMРоманэто латинский модерн.
Компиляция
\documentclass{article}
\usepackage{textgreek}
\usepackage{unicode-math} % ADDED
\begin{document}
\textit{testθτμ}
$test\theta\tau\mu$
\end{document}
дает
$ lualatex Example.SE.tex; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
[...]
Output written on Example.SE.pdf (1 page, 6180 bytes).
Transcript written on Example.SE.log.
Table for Ryan White:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
EJJTSY+LMRoman10-Italic CID Type 0C Identity-H yes yes yes 4 0
WLUBUQ+LatinModernMath-Regular CID Type 0C Identity-H yes yes yes 5 0
JFRMQG+LMRoman10-Regular CID Type 0C Identity-H yes yes yes 6 0