Text symbols & icons

In running text (text mode) you sometimes need symbols such as ©, ®, ™, €, ‰, °, •, §, or a check mark or brand icon. These live outside math mode, and a handful of packages divide the work. There are essentially four: the standard-LaTeX TS1 (textcomp) symbols, **pifont for Zapf Dingbats called by number, fontawesome5 for thousands of named icons, and the otf** family for Japanese circled numbers and variant glyphs. This page sorts out where and on which engine to use each, and gathers them into lookup tables.

The idea of text symbols

The first thing to fix in mind is that the symbols here are used in the body text, not in math mode. Greek letters like \alpha and operators like \times belong inside math mode ($ ... $), but a copyright notice © or a temperature ℃ sits directly in your prose as part of a sentence. That is why the commands here mostly start with text, as in \textcopyright and \textdegree.

A second point matters: which symbols you can use depends on the engine. The textcomp symbols and pifont work on any engine, pdfLaTeX included. fontawesome5 gives you the free icons under pdfLaTeX, but needs XeLaTeX or LuaLaTeX (a Unicode engine) for the full icon set and weight variants. The Japanese otf package is for pLaTeX / upLaTeX only and does not run under pdfLaTeX (under LuaLaTeX use luatexja-otf, under XeLaTeX use zxotf). The tables note this in their last column.

textcomp (TS1) symbols

The “symbols that appear in prose” — © ® ™ € ‰ ° ℃ • ¶ § ¥ ¢ £ — are collected in the TS1 (Text Companion) encoding. Historically you needed \usepackage{textcomp} to reach them, but since the 2020 LaTeX kernel TS1 is loaded by default, so \textcopyright and friends work with no extra package (writing \usepackage{textcomp} for older setups or explicitness is harmless). All of these commands go straight into the body text.

latex
% TS1 はカーネルに含まれる(textcomp の明示読み込みは任意)
% \usepackage{textcomp}
Foo\textregistered{} is a trademark of Bar Inc.\texttrademark
\copyright\ 2026 / \textcopyright\ 2026. % どちらも ©
40\textperthousand, \quad 25\textcelsius, \quad 90\textdegree

Watch the space after a symbol. A control word like \textregistered swallows the following space, so inside a word add empty braces \textregistered{} or a \ to keep it from gluing onto the next character. Note that \copyright (©) and \pounds (£) are also defined in standard LaTeX, separately from TS1, and produce the same glyphs as \textcopyright and \textsterling.

CommandSymbolMeaning / notes
\textcopyright©copyright (same as \copyright)
\textregistered®registered trademark
\texttrademarktrademark
\textservicemarkservice mark
\texteuroeuro (see also eurosym, below)
\textcent¢cent
\textsterling£pound (same as \pounds)
\textyen¥yen / yuan
\textperthousandper mille (per thousand)
\textdegree°degree (angle / temperature)
\textcelsiusdegree Celsius (the ℃ ligature)
\textbulletbullet
\textsection§section sign (same as \S)
\textparagraphpilcrow / paragraph (same as \P)
\textbrokenbar¦broken bar
\textmusicalnotemusical note
\textestimatedestimated sign (the “e” mark on packaging)

A common mix-up: \textbackslash (a literal \), \textasciitilde (a literal ~), and \textbar (a literal |) are often lumped in with TS1. In fact they are core LaTeX, not TS1, and work regardless of textcomp. Because \, ~, and | carry special meaning in LaTeX, you use these commands to print them as ordinary characters — a separate topic (see the “Special characters” page).

For the euro sign €, besides \texteuro (TS1) there is a dedicated package, **eurosym**. With \usepackage{eurosym} you get \euro, whose shape follows the European Commission’s official design (options such as official and gen pick the form). If your text font’s € is good enough, use \texteuro; if you want a cleaner, more logo-like €, reach for eurosym.

pifont (Zapf Dingbats)

Decorative pictographs — check marks, scissors, arrows, stars — are collected in the Zapf Dingbats font. The pifont package reaches them from LaTeX: after \usepackage{pifont}, you specify the glyph by number with \ding{NN}. For example \ding{52} is a check mark and \ding{56} is a ballot X (a cross). The number-to-glyph mapping is specific to the font, so you pick numbers from a chart.

latex
\usepackage{pifont}
% ...
\ding{52}\ % チェック
\ding{56}\ % バツ
\dingline{56}        % その記号で 1 行ぶんの罫を引く
\begin{dinglist}{43} % 各項目の先頭をその記号にした箇条書き
  \item りんご
  \item みかん
\end{dinglist}

Beyond \ding, pifont offers some conveniences. \dingline{NN} lays the symbol out horizontally as a decorative rule across a line, and \dingfill{NN} fills the leftover space on a line with that symbol. The dinglist environment is an itemized list whose item markers are a dingbat, and dingautolist steps the number by one each item so you can run a sequence of numbered glyphs. More generally, other Pi fonts besides Zapf Dingbats can be called the same way with \Pisymbol{font}{number}.

FormWhat you getNotes
\ding{52}✓ (check mark)number 52
\ding{55}✕ (multiplication X)number 55
\ding{56}✗ (ballot X)number 56
\ding{43}☞ (pointing hand)number 43
\ding{170}★ (black star)number 170
\dingline{NN}a decorative rule of that symbolsymbol chosen by number
\dingfill{NN}fills the line with that symbola symbol version of \hfill
dinglist (環境)list with a dingbat marker\begin{dinglist}{NN}
\Pisymbol{psy}{NN}a glyph from the Symbol fontgeneric Pi-font access

fontawesome5 (icons)

To drop a GitHub or Twitter logo, or UI icons like a gear, envelope, or phone, into your text, the **fontawesome5** package is handy. Loading \usepackage{fontawesome5} gives you thousands of icons. There are two ways to call one: a dedicated command formed by **camel-casing the icon name and prefixing fa** (\faGithub, \faTwitter, \faAddressBook), or the generic command that takes the official name in braces, \faIcon{github}.

latex
\usepackage{fontawesome5}
% ...
Source: \faGithub\ github.com/example \quad \faTwitter\ @example
\faIcon{envelope}\ mail \qquad \faIcon[regular]{heart} % 線画スタイル
\faPython \quad \faIcon{rocket}

Icons come in solid (the default filled weight), regular (outlined), and brands (logos); pick a style with the optional argument, as in \faIcon[regular]{heart} (brand logos are treated as brands automatically). Mind the engine: pdfLaTeX gives you the free set (Font Awesome 5 Free), which covers most needs. But for the complete set and all styles, or the paid Pro set, you need XeLaTeX or LuaLaTeX (a Unicode engine).

CommandWhat you getStyle / notes
\faIcon{name}generic call by official nametakes [solid]/[regular]/[brands]
\faGithubGitHub logobrands
\faTwitterTwitter logobrands
\faPythonPython logobrands
\faEnvelopeenvelope (mail)solid; same as \faIcon{envelope}
\faCoggear (settings)solid
\faCheckcheck marksolid
\faIcon[regular]{heart}heart (outlined)example of the regular style

Japanese symbols: the otf package

Japanese typesetting often calls for circled numbers ①②③, other enclosed numerals, Roman numerals Ⅰ Ⅱ Ⅲ, and variant forms of the same kanji (such as 﨑 or 髙). The **otf (japanese-otf) package** handles these. With \usepackage{otf} you get a family of commands that reach Adobe-Japan1 glyphs. Note, though, that otf is for pLaTeX / upLaTeX only (going through DVI and dvipdfmx); under LuaLaTeX use luatexja-otf, and under XeLaTeX use zxotf.

Circled and boxed numbers take the number as an argument. \ajMaru{3} gives the circled ③, \ajKaku{3} a boxed number, and \ajKuroMaru{3} a black (reversed) circled number. For Roman numerals, \ajRoman{3} gives uppercase Ⅲ, \ajroman{3} lowercase ⅲ, and \ajKakko{3} a parenthesized (3). The argument is a number, and the matching enclosed-numeral glyph is selected.

For variant glyphs, or any glyph without a dedicated command, the key is \UTF{XXXX}, which calls a glyph directly by its Unicode code point. For instance \UTF{FA11} is 﨑 (a variant of 崎). The argument is a 4–5 digit hexadecimal number. There is also \CID{number}, which specifies an Adobe-Japan1 CID directly. When you need a personal-name variant (﨑, 髙, 𠮷, …) to come out correctly, trying \UTF first is the standard move. The otf package also offers options such as deluxe (multiple weights), expert (forms that change between vertical and horizontal writing), and jis2004 (JIS 2004 glyph shapes).

document.tex
% pLaTeX / upLaTeX 専用(dvipdfmx で PDF 化)
\documentclass{ujarticle}
\usepackage[deluxe]{otf}
\begin{document}
手順は \ajMaru{1}\ajMaru{2}\ajMaru{3} の順に進める。
第 \ajRoman{3}\ 章。\quad\ajKakko{1}\UTF{FA11}\ さん(﨑), \ \UTF{9AD9} 橋。 % 異体字を符号位置で
\end{document}
CommandWhat you getNotes
\ajMaru{3}③ (circled number)numeric argument
\ajKuroMaru{3}❸ (black circled number)reversed
\ajKaku{3}boxed version of the numbernumber in a square
\ajRoman{3}Ⅲ (uppercase Roman numeral)\ajroman gives lowercase ⅲ
\ajKakko{3}(3) (parenthesized number)in round brackets
\UTF{FA11}﨑 (variant glyph)4–5 digit hex code point
\CID{13706}glyph at the given CIDAdobe-Japan1 CID number

In short: Western symbols (© ® ™ €…) come from textcomp (i.e. standard LaTeX), pictographs from pifont’s \ding, UI and brand icons from fontawesome5’s \faIcon, and Japanese circled numbers and variant glyphs from otf’s \ajMaru / \UTF. Just keep the engine dependencies straight — textcomp and pifont run anywhere, fontawesome5 wants a Unicode engine for everything, and otf is pLaTeX / upLaTeX.