[Tex/LaTex] A calligraphic font with small (lowercase) letters

fontsmathcal

Is there a widely available calligraphic font that (1) contains small (lowercase) letters and (2) has a recognizably calligraphic capital letter O?

Background. (1) In mathematics (algebraic geometry), one distinguishes "global" and "sheaf" versions certain constructions (Ext, Hom, …), the latter being written in calligraphic script (standard notation for sheaves). However, most books end up typesetting the sheaf as follows

global Ext, sheaf Ext

pulling the small letters from the italics of a completely different font.

(2) The calligraphic capital letter O plays a special role in algebraic geometry, too, and most authors insist on it being recognizably calligraphic (i.e. not just a closed round loop)


Edit. The following are achieved with extra kerning from @egreg's and @UlrikeFischer's answers (in chronological order)


@egreg's answer

\makeatletter
\DeclareFontEncoding{LS1}{}{}
\DeclareFontSubstitution{LS1}{stix}{m}{n}
\DeclareMathAlphabet{\mathcal}{LS1}{stixscr}{m}{n}
\makeatother

\DeclareMathOperator{\sHom}{\mathcal{H\mkern-7mu o\mkern-2.5mu m\mkern-1.5mu}}
\DeclareMathOperator{\sExt}{\mathcal{E\mkern-4.5mu x\mkern-2.5mu t\mkern-1mu}}
\DeclareMathOperator{\sEnd}{\mathcal{E\mkern-4mu n\mkern-4.5mu d\mkern-1mu}}

egreg's answer


@UlrikeFischer's answer

\DeclareFontFamily{U}{mathc}{}
\DeclareFontShape{U}{mathc}{m}{it}%
{<->s*[1.03] mathc10}{}
\DeclareMathAlphabet{\mathcal}{U}{mathc}{m}{it}

\DeclareMathOperator{\sHom}{\mathcal{H\mkern-3mu om}}
\DeclareMathOperator{\sExt}{\mathcal{E\mkern-3mu xt}}
\DeclareMathOperator{\sEnd}{\mathcal{E\mkern-3mu nd}}

UlrikeFischer's answer

Best Answer

You could try the mathc font (part of mathabx). It is not perfect, e.g. I would probably add a bit negative space between the E and the x but it has a distinct O and lowercases:

\documentclass{scrbook}
\usepackage{amsmath}
\DeclareFontFamily{U}{mathc}{}
\DeclareFontShape{U}{mathc}{m}{it}%
{<->s*[1.03] mathc10}{}

\DeclareMathAlphabet{\mathscr}{U}{mathc}{m}{it}

\DeclareMathOperator{\Hom}{Hom}
\DeclareMathOperator{\Ext}{Ext}
\DeclareMathOperator{\sHomA}{\mathscr{Hom}}
\DeclareMathOperator{\sExtA}{\mathscr{Ext}}


\begin{document}


\begin{gather*}
\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}\\
\mathscr{abcdefghijklmnopqrstuvwxyz}\\
\Hom(A,B) \leftrightarrow \sHomA(\mathscr{A},\mathscr{B}) \\
\Ext(A,B) \leftrightarrow \sExtA(\mathscr{A},\mathscr{B}) \\
\end{gather*}

\end{document}

enter image description here