Это мой первый пост на SE, поэтому прошу прощения, если форматирование некорректно.
По сути, я пытаюсь воспроизвести маленький черный символ из следующего определения Аллена Хэтчера:Алгебраическая топология:
(Эту книгу также можно бесплатно получить на его веб-сайте., а это конкретное изображение со страницы 26.)
Я пытаюсь понять, как набрать маленький черный квадрат между f и g(s). Я попробовал следующее в своей преамбуле
\renewcommand{\bullet}{\tiny$\blacksquare$}
Однако полученный квадратный маркер выглядит некрасиво и не похож на бинарный оператор, т.е. он не отцентрирован и не имеет одинакового расстояния между f и g(s).
Есть ли у кого-нибудь из вас предложения по созданию этого символа?
решение1
На самом деле это не квадрат, а просто форма \cdot
из семейства Люцида, использованная на рисунке.
\documentclass{article}
\usepackage{lucidabr}
\begin{document}
$f \cdot g$
\end{document}
Lucida — это коммерческий шрифт, вы можете приобрести его здесьБУКСИР.
Вы также можете пойти дальше и подделать символ, используя \rule
.
\documentclass{article}
\renewcommand\bullet{%
\mathbin{\mskip1mu
\mathchoice
{\squarebullet{.25ex}{.25ex}}%
{\squarebullet{.25ex}{.25ex}}%
{\squarebullet{.18ex}{.18ex}}%
{\squarebullet{.15ex}{.15ex}}
\mskip1mu}
}
\newcommand\squarebullet[2]{\vcenter{\hbox{\rule{#1}{#2}}}}
\begin{document}
$f \cdot g_{f \cdot g_{f \cdot g}}$
$f \bullet g_{f \bullet g_{f \bullet g}}$
\end{document}
решение2
Этот символ существует в mathabx
пакете шрифтов. Вот способ использовать этот символ без необходимости загрузки пакета:
\documentclass{article}
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}%
{<-6> mathb5 %
<6-7> mathb6
<7-8> mathb7 %
<8-9> mathb8 %
<9-10> mathb9 %
<10-12> mathb10 %
<12-> mathb12 }%
{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareMathSymbol{\sqbullet}{\mathbin}{mathb}{"0D}
\begin{document}
\[ f \sqbullet g\]%
\end{document}
решение3
Определите размер черной точки, здесь она в два раза больше (ограничивающего прямоугольника) точки, с небольшим боковым подшипником.
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\pp}{}% check it's not defined
\DeclareRobustCommand{\pp}{\mathbin{\mathpalette\pp@\relax}}
\newcommand\pp@[2]{%
\mspace{0.5mu}%
\vcenter{\hbox{\sbox\z@{$#1.$}\rule{2\ht\z@}{2\ht\z@}}}%
\mspace{0.5mu}%
}
\makeatother
\begin{document}
$f\pp g$
$\scriptstyle f\pp g$
\end{document}
решение4
Этот глиф доступен в нескольких пакетах \smblksquare
, включая unicode-math
(который я рекомендую) stix
и stix2
. Его кодовая точка Unicode — ▪ (U+25AA). Просто определите оператор с пробелом \mathbin
.
\documentclass[varwidth]{standalone}
\usepackage{unicode-math}
\newcommand\csquare{\mathbin{\smblksquare}}
\begin{document}
\( f \csquare g \)
\end{document}
Есть несколько похожих символов, например, \vysmblksquare
для меньшей версии (⬝) или \mdlblksquare
для большей (◼). Например:
\documentclass[varwidth]{standalone}
\usepackage{unicode-math}
\defaultfontfeatures{ Scale = MatchLowercase, Ligatures = TeX }
\setmainfont{STIX Two Text}[Scale = 1.0]
\setmathfont[StylisticSet = 2]{STIX Two Math}
\newcommand\csquare{\mathbin{\vysmblksquare}}
\begin{document}
\( f \csquare g \)
\end{document}
Если вы хотите использовать математический шрифт, в котором нет этого символа или он некрасивый, вы можете заменить квадрат любым другим шрифтом по вашему выбору, например \setmathfont[range=\smblksquare]{Latin Modern Math}
, .
Если это на самом деле \cdot
символ из Lucida, вы могли бы вместо этого определить его, \csquare
заключив \mbox
внутрь \mathbin
или с помощью \DeclareMathSymbol
.