While this doesn't use fontspec
, you can use Ulrike Fischer's experimental combofont
package. This uses luaotfload
's built-in support for combining fonts:
\documentclass{article}
\usepackage{verbatim}
\usepackage{combofont}
% Define a combofont for every font in the family
\setupcombofont{hack-symbola-regular}{
{Hack:\combodefaultfeat} at #1pt,
{Symbola:\combodefaultfeat} at #1pt
}{
{},
fallback
}
\setupcombofont{hack-symbola-bold}{
{Hack/B:\combodefaultfeat} at #1pt,
{Symbola:\combodefaultfeat} at #1pt
}{
{},
fallback
}
\setupcombofont{hack-symbola-italic}{
{Hack/I:\combodefaultfeat} at #1pt,
{Symbola:\combodefaultfeat} at #1pt
}{
{},
fallback
}
\setupcombofont{hack-symbola-bolditalic}{
{Hack/BI:\combodefaultfeat} at #1pt,
{Symbola:\combodefaultfeat} at #1pt
}{
{},
fallback
}
% Now set up the family
\DeclareFontFamily{TU}{hack-symbola}{}
\DeclareFontShape{TU}{hack-symbola}{m}{n} {<->combo*hack-symbola-regular}{}
\DeclareFontShape{TU}{hack-symbola}{bx}{n} {<->combo*hack-symbola-bold}{}
\DeclareFontShape{TU}{hack-symbola}{m}{it} {<->combo*hack-symbola-italic}{}
\DeclareFontShape{TU}{hack-symbola}{bx}{it} {<->combo*hack-symbola-bolditalic}{}
\renewcommand \ttdefault {hack-symbola}
\begin{document}
\begin{verbatim}
- 📂 project-root
- 🗎 .gitignore (sub)
- 🖺 README.md (sub)
\end{verbatim}
\end{document}
This sets up the entire family of Hack, if you only need the regular one (This is the only one used by verbatim
as far as I know) you can make it much shorter:
\documentclass{article}
\usepackage{verbatim}
\usepackage{combofont}
% Define a combofont for every font in the family
\setupcombofont{hack-symbola-regular}{
{Hack:\combodefaultfeat} at #1pt,
{Symbola:\combodefaultfeat} at #1pt
}{
{},
fallback
}
% Now set up the family
\DeclareFontFamily{TU}{hack-symbola}{}
\DeclareFontShape{TU}{hack-symbola}{m}{n} {<->combo*hack-symbola-regular}{}
\renewcommand \ttdefault {hack-symbola}
\begin{document}
\begin{verbatim}
- 📂 project-root
- 🗎 .gitignore (sub)
- 🖺 README.md (sub)
\end{verbatim}
\end{document}
