Я пытаюсь понять, как иметь точный контроль над набором моих документов. Я рассматривалэтот pdf-файлно я не могу понять, как сделать так, чтобы такие символы, как '(), +, -, =,...' сталинемноготяжелее остальной математики. Возможно ли это? Я также знаю, что математика unicode ломает множество опций с другими пакетами, но я использую ее для получения другого шрифта для латинских и греческих символов. Я открыт для возможности устранения зависимости от unicode, если я могу добиться того же самого без него, но я бы предпочел решение, которое учитывает этот пакет.
решение1
Здесь есть две проблемы: первая — найти шрифт, который действительно содержит нужные вам глифы, а вторая — разместить их там, где вам нужно.
Ниже представлены доступные в настоящее время математические шрифты OpenType, которые поддерживают несколько вариантов начертания:
- Lucida Bright Math предлагает Regular и Demibold
- Minion Math предлагает шрифты Regular, Medium, Semibold и Bold (каждый в пяти оптических размерах)
- XITS Math предлагает обычный и жирный шрифты
Итак, предположим, вы используете Minion Math Regular в качестве основного математического шрифта и решили, что Minion Math Semibold «немного» жирнее именно в том смысле, в котором вам нравится (светлее, чем полужирная математическая версия, я полагаю?). Затем, если вы хотите, чтобы заданный символ отображался полужирнымчерезВ вашем документе вы можете использовать range
ключ \setmathfont
в преамбуле, например, следующим образом:
% Ignoring optical sizes
\setmathfont{MinionMath-Regular.otf}
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 } % +-<>={}|()
]{MinionMath-Semibold.otf}
Коды дополнительных слотов или диапазонов Unicode можно найти в unimath-symbols.pdf
.
Если вы хотите применить эффекттолько в некоторых частяхдокумента, вам придется каждый раз переназначать символы. Вы можете сделать что-то вроде этого:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{MinionMath-Regular.otf}
\NewDocumentCommand\applysemi{}{%
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 }
]{MinionMath-Semibold.otf}%
}
\NewDocumentCommand\removesemi{}{%
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 }
]{MinionMath-Regular.otf}%
}
\begin{document}
$ a + ( b - c ) = x $
\applysemi
$ a + ( b - c ) = x $
\removesemi
$ a + ( b - c ) = x $
\end{document}
Если вы используете XeLaTeX, вы также можете использовать клавишу FakeBold
для искажения внешнего вида шрифта, которому не хватает заданной разработанной толщины, как описано в документации fontspec
, раздел 9.3. Например, для Cambria Math вы можете сделать
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 } ,
FakeBold = 2
]{Cambria Math}
Однако это не совсем рекомендуется: результат не может эстетически соответствовать правильно разработанному шрифту.
решение2
Окончательный ответ на ваш вопрос: если вас не устраивает внешний вид имеющихся шрифтов, создайте свой собственный! Но разработка шрифтов — это тяжелая и утомительная работа, у вас, вероятно, не останется на нее времени, учитывая другие ваши обязанности в жизни.
Есть быстрый способ: если вы хотите смешать символы из разных шрифтов, вы можете создатьвиртуальный шрифти используйте это. Подсказки о том, как это сделать, см. в этом вопросе:Как создать виртуальный шрифт?