矢印

「=」が生まれたのは 1557 年、「+」「−」は 15 世紀にさかのぼります。ところが、いま数学でもっとも目につく記号である矢印が広く使われはじめるのは 20 世紀に入ってから。しかも定着したとたん、矢印は数学の主役になりました。圏論では、対象そのものよりも「対象のあいだの矢印」のほうが重要だとされます。このページでは LaTeX で引ける約 40 種類の矢印を、形が意味を語るという一本の筋で整理します。どれを選ぶべきかは、たいてい矢印の見た目が教えてくれます。

矢印は数式モードの住人

TeX にとって矢印は単なる絵ではなく 関係子(relation) です。関係子は前後に決まった量の空きをとる、という組版上の役割を負っています。だから地の文にそのまま \to と書くとエラーになります——見た目が崩れるのではなく、空きの計算そのものが数式モードの外では定義されていないからです。$f\colon A \to B$ のように数式モードへ入れてから使います。名前のつけかたは徹底して機械的で、向き(leftrightupdown)と形を組み合わせるだけ。頭文字を大文字にすれば二重線(\Rightarrow ⇒)、long を冠せば長い矢印(\longrightarrow ⟶)になります。つまり、覚えるのではなく組み立てられます。

latex
% a map, and a chain of implications
\[
  P \implies Q, \qquad x \to 0, \qquad a_n \to L \;(n \to \infty)
\]

ここに、由来を知ると二度と忘れなくなる別名が二つあります。\to\rightarrow の、\gets\leftarrow の別名ですが、\gets という名前は数学ではなく 計算機科学 から来ています。x \gets 1 は「x が 1 を受け取る(gets)」——つまり代入です。TeX を書いたクヌースは『The Art of Computer Programming』の著者でもあり、アルゴリズムを記述するときの語彙をそのまま組版システムに持ち込みました。もう一つは \iff(⟺)。「iff」という略記を広めたのは数学者 ポール・ハルモス で、証明の終わりに置く白抜きの四角「∎」——いまも彼の名で呼ばれます——を数学に持ち込んだのも同じ人物です。実務では、写像や極限には短い \to\gets、同値の主張には \iff が定石です。

水平の矢印——二本目の線が分けるもの

水平の矢印には単線(\leftarrow\rightarrow\leftrightarrow)と二重線(\Leftarrow\Rightarrow\Leftrightarrow)があり、それぞれに long を冠した長い版が用意されています。この単線と二重線の区別は装飾ではありません。単線の → は集合や対象のあいだの 写像 を、二重線の ⇒ は命題のあいだの 含意 を担当する——という慣習が読者に共有されているからです。同じ紙面に「f: A → B」と「P ⇒ Q」が並んでいても、線の本数だけで両者が違う階層の話だと伝わります。なお長い矢印は長さが固定で、このページの最後に出てくる伸縮矢印とは別物です。

命令字形意味・用途
\leftarrow左向き矢印(\gets と同じ)
\gets\leftarrow の別名。代入「← に値を取る」
\rightarrow右向き矢印(\to と同じ)。写像など
\to\rightarrow の別名。f\colon A \to B
\leftrightarrow左右両向き矢印
\longleftarrow長い左向き矢印
\longrightarrow長い右向き矢印
\longleftrightarrow長い左右両向き矢印
\Leftarrow二重線の左向き矢印
\Rightarrow二重線の右向き矢印。含意「ならば」
\Leftrightarrow二重線の両向き矢印。同値
\Longleftarrow長い二重線の左向き矢印
\Longrightarrow長い二重線の右向き矢印
\Longleftrightarrow長い二重線の両向き矢印
\iff必要十分。\Longleftrightarrow に余白を足したもの

論理を文章で書き下すときは、amsmath\implies(⟹)と \impliedby(⟸)も覚えておくと表記がそろいます。中身は \Longrightarrow\Longleftarrow に前後の余白を足したもので、\iff と同じ空きかたをします。「P \implies Q \iff R」のように書き下すと記号の前後がゆったりし、その余白が句読点のように働いて、長い論理式でも息継ぎの位置が見えるようになります。逆に、詰まった \Rightarrow を並べると式が団子になりがちです。

形が定義になるとき——写像と鈎つきの矢印

ここから矢印は語彙になります。\mapsto(↦)は根元に縦棒が付いた矢印で、「集合 A から集合 B へ」ではなく「元 x が f(x) に写る」ことを表します。x \mapsto x^2f\colon \mathbb{R} \to \mathbb{R} を併記すれば、写像そのものと元の対応を一行のなかで書き分けられます。この記法は数学者集団 ブルバキ の著作を通じて広まりました。\hookrightarrow(↪)の根元の鈎は「引っかける」イメージで、包含写像——部分集合をそのままの姿で大きい集合に埋め込む写像——に使うのが定石です。どちらも LaTeX 標準で、追加パッケージは要りません。

命令字形意味・用途
\mapsto要素の対応「x を … に写す」
\longmapsto長い写像矢印
\hookleftarrow鈎つき左向き矢印
\hookrightarrow鈎つき右向き矢印。包含・単射に
latex
\[
  f\colon \mathbb{R} \to \mathbb{R}, \quad x \mapsto x^2,
  \qquad \mathbb{Z} \hookrightarrow \mathbb{Q}
\]

単射・全射を明示したいとき、矢印の造形はもっとも饒舌になります。amssymb\rightarrowtail(↣)は根元に「尾」が生え、\twoheadrightarrow(↠)は矢尻が二重になります。尾は「一つひとつ別の行き先へ」=単射、二重の矢尻は「向こう側を覆い尽くす」=全射 という読み方が定着していて、両方を備えた ⤖ は全単射を表します。つまり矢印を三つの部品(根元・軸・矢尻)に分解すれば、意味がそのまま読み取れるわけです。ただしこの種の記号は文脈依存なので、論文では初出時に一度定義しておくのが安全です。\mapsto を包含の意味に流用しないこと、\hookrightarrow\rightarrowtail を取り違えないことにも注意してください。

縦と斜め——図式の骨組みをつくる

縦向きと斜め向きの矢印がもっとも活躍するのは可換図式です。可換図式が本格的に使われはじめたのは 1945 年、サミュエル・アイレンバーグソーンダース・マックレーン が圏論を立ち上げた論文でのことで、以来「対象を頂点、写像を辺として描く」という数学の書き方が定着しました。縦は単線の \uparrow\downarrow\updownarrow と二重線の \Uparrow\Downarrow\Updownarrow。斜めの四方向は \nearrow(↗)・\searrow(↘)・\swarrow(↙)・\nwarrow(↖)で、名前はそのまま北東・南東・南西・北西という方位です。解析では ↗ ↘ が単調増加・単調減少の収束を示す用途もあります。なお \uparrow などは \left … \right の区切り記号としても使えます。

命令字形意味・用途
\uparrow上向き矢印
\downarrow下向き矢印
\updownarrow上下両向き矢印
\Uparrow二重線の上向き矢印
\Downarrow二重線の下向き矢印
\Updownarrow二重線の上下両向き矢印
\nearrow北東(右上)向き矢印
\searrow南東(右下)向き矢印
\swarrow南西(左下)向き矢印
\nwarrow北西(左上)向き矢印

ハープーンと amssymb——片羽の矢が語ること

ハープーン(harpoon、銛)は矢尻の羽が片側にしかない矢印です。上羽と下羽を組み合わせた \rightleftharpoons(⇌)は、化学で 可逆反応・平衡 を表す記号として広く使われます。片羽であること自体に意味があり、上下の矢印が正反応と逆反応という別々の過程であることを示しています(両羽の ⇄ とは別物です)。化学式を本格的に組むなら mhchem パッケージを使うと \ce{A <=> B} のように書けて、係数や状態記号もまとめて面倒を見てくれます。物理では角運動量まわりの記法などにも顔を出します。

命令字形備考
\rightharpoonup右向き・かえし上(標準)
\rightharpoondown右向き・かえし下(標準)
\leftharpoonup左向き・かえし上(標準)
\leftharpoondown左向き・かえし下(標準)
\rightleftharpoons可逆反応の矢印(標準)

一方、二又の矢尻や尾つき、破線といった 装飾的な矢印 は LaTeX 標準には入っておらず、\usepackage{amssymb} が要ります。amssymb はアメリカ数学会(AMS)が用意したフォントとマクロの一部で、クヌースが最初に設計した数式フォントだけでは現場の数学者に足りない記号を補うために整備されました。裏を返せば、次の表に並ぶ矢印はどれも「誰かが論文で必要としたから存在する」ものです。

命令字形意味・用途(amssymb)
\twoheadrightarrow二又の右矢印。全射に
\twoheadleftarrow二又の左矢印
\rightarrowtail尾つき右矢印。単射に
\leftarrowtail尾つき左矢印
\rightrightarrows右向き二本並びの矢印
\leftleftarrows左向き二本並びの矢印
\rightleftarrows右上・左下の二本矢印
\rightsquigarrow波線の右矢印
\leftrightsquigarrow波線の両向き矢印
\curvearrowright右回りの曲がり矢印
\nrightarrow否定(×印)つき右矢印
\nRightarrow否定つき二重線の右矢印

文字を載せて伸びる矢印

ここまでの矢印は長さが固定でした。amsmath\xrightarrow{…}\xleftarrow{…} は、上に載せた文字の幅にあわせて 軸そのものが伸びます。写像に名前を付けたいとき——A \xrightarrow{\ f\ } B——や、完全系列・可換図式の辺に条件を書き添えたいときに使います。固定長の \longrightarrow\stackrel で文字を載せる書き方も昔からあり、いまも動きますが、文字が矢印より長いとはみ出してしまうため、現在は伸縮矢印を使うのが素直です。

latex
\usepackage{amsmath}   % \xrightarrow, \xleftarrow
% \usepackage{mathtools} % also \xLeftarrow, \xhookrightarrow, \xmapsto
\[
  A \xrightarrow{\;f\;} B \xrightarrow{\;g\;} C,
  \qquad x \xrightarrow[n\to\infty]{} L
\]

角括弧の 省略可能引数 を足すと、矢印の下にも文字を置けます。\xrightarrow[n \to \infty]{\ a_n\ } のように書けば、上に写像の名前、下に条件を並べられ、極限や収束の主張がひとつの矢印にまとまります。長い図式を組む段になると tikz-cd などの専用パッケージのほうが結局は速いので、行内に一本引きたいだけなら \xrightarrow、図式そのものを描くなら tikz-cd という切り分けが実務的です。

まとめると、判断はほぼ三段階です。写像や関係として使うなら LaTeX 標準\to\mapsto\hookrightarrow\Rightarrow)。単射・全射・平衡など、形そのものに意味を持たせたいなら amssymb文字を載せて伸ばしたいなら amsmath\xrightarrow。そして図式そのものを描く段になったら tikz-cd へ移ります。矢印を選ぶことは、読者に「いまはどの階層の話なのか」を無言で伝えることでもあります。