![Объединение шрифтов Helvetica и Symbol с помощью mathspec](https://rvso.com/image/281490/%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%88%D1%80%D0%B8%D1%84%D1%82%D0%BE%D0%B2%20Helvetica%20%D0%B8%20Symbol%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20mathspec.png)
Я хочу объединить шрифты Helvetica и Symbol, чтобы Helvetica обрабатывал латинские буквы, а Symbol — греческие. Mathspec и XeLaTeX справляются с этой задачей довольно хорошо, но я не могу заставить скобки и символ процента (и, возможно, другие вещи) выглядеть правильно. Например, следующий код
\documentclass[10pt]{article}
\usepackage{mathspec}
\setmainfont{Helvetica}
\setmathsfont(Digits,Latin,Greek)[Uppercase=Italic,Lowercase=Italic]{Helvetica}
\begin{document}
\Huge This looks right: $L_e$ (\%)
\Huge This looks wrong: $L_e\,(\%)$
\end{document}
выдает следующий документ:
(Чтобы не усложнять задачу, я опустил эту \setmathsfont(Greek){Symbol}
команду, так как проблема проявляется и без нее.) Как заставить XeLaTeX использовать Helvetica для скобок и символа процента, когда я нахожусь в математическом режиме?
решение1
загрузка fontspec
без математики:
\documentclass[10pt]{article}
\usepackage[no-math]{fontspec}
\setmainfont{Helvetica}
\usepackage{mathastext}
%\setmathsfont(Digits,Latin,Greek)[Uppercase=Italic,Lowercase=Italic]{Helvetica}
\begin{document}
\Huge This looks right: $L_e$ (\%)
\Huge This looks wrong: $L_e\,(\%)$
\end{document}
решение2
С помощью Карлкёллера и Герберта я пришел к следующему решению:
\documentclass[10pt]{article}
\usepackage{mathspec}
\setmathsfont(Digits,Latin)[Uppercase=Italic,Lowercase=Italic]{Helvetica}
\setmathsfont(Greek)[Uppercase=Regular,Lowercase=Italic]{Symbol}
\setmainfont{Helvetica}
\usepackage[italic]{mathastext}
\begin{document}
\Huge This looks right: $\delta_e/L_e$ (\%)
\Huge This looks wrong: $\delta_e/L_e\,(\%)$
\end{document}
который производит,
Я почти уверен, что я попробовал это еще тогда, когда karlkoeller предложил mathastext
28 декабря, и столкнулся с кучей ошибок. В период с 28 декабря по 1 января я обновился с TexLive 2012 до TexLive 2013, и теперь это, похоже, работает. Пакет mathspec
не обновлялся между 2012 и 2013 годами, но mathastext
пакет обновлялся около 15 раз. Вероятно, одно из этих обновлений исправило ошибки, с которыми я сталкивался.
В интересах информирования других, я подумал, что также поделюсь альтернативным решением, которое, как мне кажется, мне нравится больше. Пакет XeLaTeX хорош, но он занимает почти в 3 раза больше времени, чтобы набрать короткий документ, как тот, что выше. Также я не уверен, что шрифты Symbol и Helvetica будут так же хорошо работать при наборе сложных математических формул. Вместо этого я остановился на пакете newtx
, который имеет полную поддержку математики и клон Helvetica для своего шрифта sans-serif. Следующий код
\documentclass[10pt]{article}
\usepackage{newtxtext}
\renewcommand*\familydefault{\sfdefault}
\usepackage[italic]{mathastext}
\usepackage{newtxmath}
\begin{document}
\Huge This looks right: $\delta_e/L_e$ (\%)
\Huge This looks wrong: $\delta_e/L_e\,(\%)$
\end{document}
производит,
Отличается \delta
в newtx
, но общий стиль похож, и я не был женат на шрифте Symbol. Я просто не хотел компьютерные современные (CM) шрифты. (IMHO, толщина линий шрифтов CM слишком тонкая.) К сожалению, при ближайшем рассмотрении видно, что скобки newtx
немного отличаются в математическом режиме по сравнению с текстовым режимом, но я могу с этим справиться.