# Composition of \mathbb and \mathcal

Is there any method to compose \mathbb and \mathcal, that is, to obtain a blackboard version of the caligraphic style?

Something like:

but maybe not so ugly!

• mathxxx commands do not combine by design, and in this case I don't know of know font that has such characters (but if you have such a font you could define a \mathzzz command to access it. – David Carlisle Feb 16 '18 at 15:15

Two methods, both involving shifted superposition:

PDF SPECIALS TO ACHIEVE THIN OUTLINE EFFECT + SUPERPOSITION

\documentclass[10pt]{article}
\usepackage{stackengine,xcolor}
\input pdf-trans
\newbox\qbox
\def\usecolor#1{\csname\string\color@#1\endcsname\space}
\newcommand\bordercolor[1]{\colsplit{1}{#1}}
\newcommand\fillcolor[1]{\colsplit{0}{#1}}
\newcommand\colsplit[2]{\colorlet{tmpcolor}{#2}\edef\tmp{\usecolor{tmpcolor}}%
\def\tmpB{}\expandafter\colsplithelp\tmp\relax%
\ifnum0=#1\relax\edef\fillcol{\tmpB}\else\edef\bordercol{\tmpC}\fi}
\def\colsplithelp#1#2 #3\relax{%
\edef\tmpB{\tmpB#1#2 }%
\ifnum #1>9\relax\def\tmpC{#3}\else\colsplithelp#3\relax\fi
}
\newcommand\outline[1]{\leavevmode%
\def\maltext{#1}%
\setbox\qbox=\hbox{\maltext}%
\boxgs{Q q 2 Tr \thickness\space w \fillcol\space \bordercol\space}{}%
\copy\qbox%
}
\newcommand\mathcalbb[2][1]{%
\stackengine{0pt}{\outline{$\mathcal{#2}$}}{$\mkern#1mu\mathcal{#2}$}{O}{l}{F}{F}{L}}
\bordercolor{black}
\fillcolor{white}
\def\thickness{.3}% TO CHANGE THICKNESS OF SHADOW
\begin{document}
$\mathcalbb{A}\mathcalbb{B}\mathcalbb{C}\mathcalbb{D}\mathcalbb{E}\mathcalbb{F} \mathcalbb{G}\mathcalbb{H}\mathcalbb{I}\mathcalbb{J}\mathcalbb{K}\mathcalbb{L} \mathcalbb{M}$

$\mathcalbb{N}\mathcalbb{O}\mathcalbb{P}\mathcalbb{Q}\mathcalbb{R} \mathcalbb{S}\mathcalbb{T}\mathcalbb{U}\mathcalbb{V}\mathcalbb{W}\mathcalbb{X} \mathcalbb{Y}\mathcalbb{Z}$

$\mathcalbb[.8]{A}\mathcalbb{A}\mathcalbb[1.2]{A}$
\end{document}


SIMPLE SUPERPOSITION (WITHOUT PDF SPECIALS)

With shifted superposition, plus an optional argument for fine tuning.

\documentclass[10pt]{article}
\usepackage{stackengine}
\newcommand\mathcalbb[2][2]{%
\stackengine{0pt}{$\mathcal{#2}$}{$\mkern#1mu\mathcal{#2}$}{O}{l}{F}{F}{L}}
\begin{document}
$\mathcalbb{A}\mathcalbb{B}\mathcalbb{C}\mathcalbb{D}\mathcalbb{E}\mathcalbb{F} \mathcalbb{G}\mathcalbb{H}\mathcalbb{I}\mathcalbb{J}\mathcalbb{K}\mathcalbb{L} \mathcalbb{M}$

$\mathcalbb{N}\mathcalbb{O}\mathcalbb{P}\mathcalbb{Q}\mathcalbb{R} \mathcalbb{S}\mathcalbb{T}\mathcalbb{U}\mathcalbb{V}\mathcalbb{W}\mathcalbb{X} \mathcalbb{Y}\mathcalbb{Z}$

$\mathcalbb[1.5]{A}\mathcalbb{A}\mathcalbb[2.2]{A}$
\end{document}


If the effect is too disorienting, one could always fade one of the glyph-strikes:

\documentclass[10pt]{article}
\usepackage{stackengine,xcolor}
\newcommand\mathcalbb[2][2]{%
\stackengine{0pt}{$\color{black!30}\mathcal{#2}$}{$\mkern#1mu\mathcal{#2}$}{O}{l}{F}{F}{L}}
\begin{document}
$\mathcalbb{A}\mathcalbb{B}\mathcalbb{C}\mathcalbb{D}\mathcalbb{E}\mathcalbb{F} \mathcalbb{G}\mathcalbb{H}\mathcalbb{I}\mathcalbb{J}\mathcalbb{K}\mathcalbb{L} \mathcalbb{M}$

$\mathcalbb{N}\mathcalbb{O}\mathcalbb{P}\mathcalbb{Q}\mathcalbb{R} \mathcalbb{S}\mathcalbb{T}\mathcalbb{U}\mathcalbb{V}\mathcalbb{W}\mathcalbb{X} \mathcalbb{Y}\mathcalbb{Z}$

$\mathcalbb[1.5]{A}\mathcalbb{A}\mathcalbb[2.2]{A}$
\end{document}


• My first reaction to seeing this screenshot was, "Boy, do I ever need to update my reading glasses!" – Mico Feb 16 '18 at 16:17
• @Mico, merely set the optional argument to [0] and it should all come into focus for you! ;^b – Steven B. Segletes Feb 16 '18 at 16:18
• For you, @Mico, I develop an improved approach. – Steven B. Segletes Feb 16 '18 at 16:38
• almost as lovely as tex.stackexchange.com/questions/344214/… – David Carlisle Feb 16 '18 at 16:51
• @DavidCarlisle, only 4 upvotes/137 upvotes = 2.92% as lovely – Steven B. Segletes Feb 16 '18 at 17:01