【LaTeX】写像の見やすい書き方(VScodeスニペット付き)


写像を書くのに面倒な書き方、見にくい書き方をしている人はいませんか。
本記事では、以下の画像のような出力を得られる方法を書きます。
また、VScodeを使っている人のためにスニペットの例を書いておきます。

(余談)招待キャンペーン

TikTok Liteという、TikTokの軽量版(つまり違うアプリ)の招待キャンペーンでお互いにPayPayやアマゾンギフトカードなど(選べる)をGETできます。(下に書いてある金額は執筆当時のもの)
(登録に必要な情報はメアドのみ。gmailでOK!)
・上のリンクは登録後すぐに2000円、10日後(10日間毎日チェックインボタンを押すなどをする)に1300円
・下のリンクは10日間チェックインボタンを押したら、10日後に5000円
がもらえます。
エラーが発生することがあり、10日後にエラーでもらえないとなると無駄な努力になるので上のリンクがおすすめ。

https://lite.tiktok.com/t/ZS2MLYPXx/

訂正

写像の : は \colon が正しいという指摘をもらった。それがどうやら一般的らしいので、それに変更する。(もっとも、今回は用いている環境の都合上見た目の違いはほぼない)

本題

コードは以下のとおりです。

\begin{equation}
    \begin{array}{r@{\,\,}c@{\,\,}c@{\,\,}c}
        f\colon & A &\longrightarrow   & B \\
                     &\rotatebox{90}{$\in$}&&\rotatebox{90}{$\in$}\\
                     & a            &\longmapsto      & b
    \end{array}
\end{equation}

上のコードの出力は画像のとおりとなります

写像の矢印の上に記号(たとえば同型記号)をつけたい

矢印の上に ~ をつけたければ、\overset を使えばよいです。例えば次のとおりです。

\begin{equation}
    \begin{array}{r@{\,\,}c@{\,\,}c@{\,\,}c}
        f: & A &\overset{\sim}{\longrightarrow}   & B \\
                     &\rotatebox{90}{$\in$}&&\rotatebox{90}{$\in$}\\
                     & a            &\longmapsto      & b
    \end{array}
\end{equation}

矢印を変えたい

\longrightarrowを所望のコードに変更すればよいだけです。

合成写像のために3つ以上つなげたい

少し改造すればいいです。3つと4つバージョンを書いておきます。

\begin{equation}
    \begin{array}{r@{\,\,}c@{\,\,}c@{\,\,}c@{\,\,}c@{\,\,}c}
        f: & A &\longrightarrow   & B &\longrightarrow   & C\\
                     &\rotatebox{90}{$\in$}&&\rotatebox{90}{$\in$}&&\rotatebox{90}{$\in$}\\
                     & a            &\longmapsto      & b&\longmapsto      & c
    \end{array}
\end{equation}

\begin{equation}
    \begin{array}{r@{\,\,}c@{\,\,}c@{\,\,}c@{\,\,}c@{\,\,}c@{\,\,}c@{\,\,}c}
        f: & A &\longrightarrow   & B &\longrightarrow   & C&\longrightarrow   & D\\
                     &\rotatebox{90}{$\in$}&&\rotatebox{90}{$\in$}&&\rotatebox{90}{$\in$}&&\rotatebox{90}{$\in$}\\
                     & a            &\longmapsto      & b  &\longmapsto      & c &\longmapsto      & d
    \end{array}
\end{equation}


VScode用スニペット

latex.json に追加するもの:

	"写像の別行立て": {
		"prefix": ["map","syazou2"],
		"body": [
			"\\\\begin{equation}",
			"\t\\\\begin{array}{r@{\\\\,\\\\,}c@{\\\\,\\\\,}c@{\\\\,\\\\,}c}",
			"\t\t${1:f:} & ${2:A} &\\\\longrightarrow   & ${3:B} \\\\\\\\",
			"\t\t\t\t\t &\\\\rotatebox{90}{\\$\\\\in\\$}&&\\\\rotatebox{90}{\\$\\\\in\\$}\\\\\\\\",
			"\t\t\t\t\t & ${4:a}            &\\\\longmapsto      & ${5:b}" ,
			"\t\\\\end{array}",
			"\\\\end{equation}"
		],
		"description": ""
	},


もしお役に立てましたら、コーヒー1杯のご支援をいただけると嬉しいです!