Я много пытался (2 дня) и пытаюсь найти способ расширить ответ
но я не могу понять метод здесь. Как мне расширить ответ выше, чтобы включить вертикальные замкнутые интегралы, такие как '\oint'
До сих пор я использовал прямые вертикальные интегральные символы, а теперь мне нужен замкнутый интеграл. Как это сделать?
решение1
На основесвязанный ответты отдал себя, я полагаю, это то, что ты ищешь.
\documentclass{article}
\usepackage{amsmath}
\DeclareFontEncoding{LS2}{}{\noaccents@}
\DeclareFontSubstitution{LS2}{stix}{m}{n}
\DeclareSymbolFont{integrals}{LS2}{stixcal}{m}{n}
\DeclareMathSymbol{\ointupop}{\mathop}{integrals}{"B2}
\makeatletter
\renewcommand*{\oint}{\DOTSI\ointupop\ilimits@}
\makeatother
\begin{document}
\[
\oint
\]
\end{document}
Определения кодовой точки символа (например, B2
для \oint
) в tex/latex/stix/stix.sty
вашем дистрибутиве LaTeX.
решение2
Легкий Путь
Как написал egreg, простой ответ — \usepackage[upint]{stix}
. XITS — это форк шрифта STIX.
\documentclass{article}
\usepackage[upint]{stix}
\begin{document}
\[ \int \oint \oiint \iint \iiint \]
\end{document}
Сложный путь
Если вы хотите добавить отдельные символы традиционным способом, вам нужно посмотреть впакет документациив каком слоте какого шрифта они находятся. Символ, который вы ищете, находится на странице 39, в слоте "E8 шрифта stix-mathcal
. Затем вы открываете файл stix.sty
и выполняете обратную разработку необходимой настройки для этого символа шрифта.
Поскольку существует две версии символа, дисплейная в слоте «E8» и уменьшенная в слоте «B2», вам на самом деле придется выбирать между ними с помощью \mathchoice
.
\documentclass{article}
\DeclareFontEncoding{LS2}{}{\noaccents@}
\DeclareFontSubstitution{LS2}{stix}{m}{n}
\DeclareSymbolFont{integrals}{LS2}{stixcal}{m}{n}
\DeclareMathSymbol{\ointupbig}{\mathop}{integrals}{"E8}
\DeclareMathSymbol{\ointupsmall}{\mathop}{integrals}{"B2}
\DeclareRobustCommand{\ointup}{\mathchoice{\ointupbig}{\ointupsmall}{\ointupsmall}{\ointupsmall}}
\begin{document}
\( \displaystyle
\oint_{\oint_{\oint}} \quad
\ointup_{\ointup_{\ointup}} \)
\( \oint \quad
\ointup \)
\end{document}
Я не рекомендую этого делать, так как это зависит от мелких деталей реализации пакета stix
, упирается в ограничения устаревших математических алфавитов и имеет другие особенности.
Но, я думаю, вы именно это и спрашивали: как это сделать?
Современный Путь
Вы также можете сделать это с помощью unicode-math
, и я рекомендую именно так делать, если только вы не вынуждены отправлять данные на сайт, который еще не поддерживает LuaLaTeX или XeLaTeX.
Если вы хотите использовать XITS Math в качестве математического шрифта, вы можете загрузить его с помощью
\setmathfont[StylisticSet=8]{XITS Math}
Если вы хотите использовать прямые интегралы XITS вместе с другим шрифтом, вы можете добавить команду
\setmathfont[range={"222B-"2233,"2A0B-"2A1C},StylisticSet=8]{XITS Math}
после загрузки основного \setmathfont
. Это также работает с STIX Two Math. Если вы смешиваете разные математические шрифты с разной высотой, вам может понадобиться добавить Scale=MatchUppercase
опцию шрифта.
решение3
wasysym.sty
это один из самых простых способов MWE
(поскольку вы ничего не предоставили MWE
, я дал предложение на основе стандартного шаблона):
\documentclass{book}
\usepackage[integrals]{wasysym}
\begin{document}
\[
\int
\]
\end{document}