No, there is no general procedure. One has to look into the package code and some knowledge of the terminal can be helpful; but one can always open the package file with an editor.
Let's see for \WritingHand
that the Comprehensive List tells you it is from marvosym.sty
.
First of all, we need to identify how the font is known to LaTeX. In these cases, rather than opening the file in an editor, I use less
:
less $(kpsewhich marvosym.sty)
because kpsewhich
is the utility that's used internally by the TeX programs to find a file. The first lines in the file are
\ProvidesPackage{marvosym}
[2011/07/20 v2.2 Martin Vogel's Symbols font definitions]
\newcommand{\mvs}{\fontfamily{mvs}\fontencoding{U}%
\fontseries{m}\fontshape{n}\selectfont}
Good. We know how to load the font. The code is not the best possible, because
\newcommand{\mvs}{\usefont{U}{mvs}{m}{n}}
would be a cleaner call, although they're equivalent. The encoding U
is “unspecified“ or “unknown”, which means that LaTeX won't try any of its tricks to adapt commands to the current encoding. It is a standard encoding, so there's no need to declare it beforehand. Any time we need a glyph from the font, we can say
\usefont{U}{mvs}{m}{n}
in a group. Now we look for \WritingHand
and we find it on line 80:
\newcommand\WritingHand{\mvchr{98}} \let\Writinghand\WritingHand
the second part is just an alias. What's \mvchr
? It's on line 5
\newcommand{\mvchr}[1]{{\mvs\char#1}}
but it's again poor LaTeX programming, because \symbol{#1}
would be better.
So we have all the necessary bits in order to accomplish our task:
\newcommand{\WritingHand}{{\usefont{U}{mvs}{m}{n}\symbol{98}}}
will work without loading any package. If you plan to use \WritingHand
in moving arguments (sectional titles or captions, for instance), it may be better to use \DeclareRobustCommand
instead of \newcommand
, otherwise in the .aux
file you would find
{\fontencoding {#1}\fontfamily {#2}\fontseries {#3}\fontshape {#4}\selectfont \ignorespaces \char 98\relax }
instead of a simple \WritingHand
. Not much of a problem, but possibly annoying.
Suppose instead you want to use the glyph

that is available in the STIX font package. Looking at the documentation, we find it at position octal 204 (decimal 132) in the font stix-extra1
(font table on page 43).
As before, we look in stix.sty
, but we don't find extra
inside it. Turn back to the documentation: on page 2 we find indeed
There are also three fonts containing extra miscellaneous symbols, stix-extra1
, stix-extra2
and stix-extra3
, provided as TFM and PFB files without support from the macro package.
This seems a problem, but indeed it isn't. We can proceed almost as before, just adding the necessary infrastructure
\DeclareFontFamily{U}{stixextrai}{}
\DeclareFontShape{U}{stixextrai}{m}{n}
{ <-> stix-extra1 }{}
\newcommand{\WolframSym}{{\usefont{U}{stixextrai}{m}{n}\symbol{132}}}
The same caveat as before for \DeclareRobustCommand
applies. The family name stixextrai
is arbitrary. Example document:
\documentclass{article}
\DeclareFontFamily{U}{stixextrai}{}
\DeclareFontShape{U}{stixextrai}{m}{n}
{ <-> stix-extra1 }{}
\newcommand{\WolframSym}{{\usefont{U}{stixextrai}{m}{n}\symbol{132}}}
\begin{document}
\WolframSym
\end{document}
which is how I produced the image above.
The mathabx
package is not compatible with amssymb
; besides, it changes all math symbols.
You can use, instead, stmaryrd
.
\documentclass{book}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{stmaryrd}
\begin{document}
\begin{gather*}
A\subseteq B=\emptyset \\
A\cap B\cup C \\
x + y \llbracket z \rrbracket
\end{gather*}
\end{document}

If you want to import the symbols from mathabx
, according to the guidelines in Importing a Single Symbol From a Different Font you can do as follows.
\documentclass{book}
\usepackage{amsmath}
\usepackage{amssymb}
\DeclareFontFamily{U}{matha}{}
\DeclareFontShape{U}{matha}{m}{n}{
<-5.5> matha5
<5.5-6.5> matha6
<6.5-7.5> matha7
<7.5-8.5> matha8
<8.5-9.5> matha9
<9.5-11> matha10
<11-> matha12
}{}
\DeclareSymbolFont{matha}{U}{matha}{m}{n}
\DeclareFontSubstitution{U}{matha}{m}{n}
\DeclareFontFamily{U}{mathx}{\hyphenchar\font45}
\DeclareFontShape{U}{mathx}{m}{n}{<-> mathx10}{}
\DeclareSymbolFont{mathx}{U}{mathx}{m}{n}
\DeclareFontSubstitution{U}{mathx}{m}{n}
\DeclareMathDelimiter{\ldbrack}{4}{matha}{"76}{mathx}{"30}
\DeclareMathDelimiter{\rdbrack}{5}{matha}{"77}{mathx}{"38}
\begin{document}
\begin{gather*}
A\subseteq B=\emptyset \\
A\cap B\cup C \\
x + y \ldbrack z \rdbrack
\end{gather*}
\end{document}

Best Answer
As egreg suggested, see Importing a Single Symbol From a Different Font for importing a single character from another font. To get
\Earth
, I did the following. If you unccoment these two lines in the MWE,\usepackage{fonttable}
and\fonttable{mathb10}
, you will get a font table printed out it from which it can be ascertained that\Earth
is glyph"43
(hexadecimal). That allowed me to invoke in the preamble,\DeclareMathSymbol{\Earth}{3}{mathb}{"43}
to import just that symbol. One may have to do a little trial and error in the process... originally I searched thematha
font series and did not find\Earth
, so by trial and error, I tried themathb
series and found the glyph. All the\DeclareFontShape
stuff I just copied from Alan Munn's answer, substitutingmathb
formatha
.