目的
専門書などを読んでいると長〜い align 環境の数式の最後に一つだけ番号が振ってあることがよくあります.あれを自分でも書きたいという時が誰しも往々にしてあると思います.
課題
質問掲示板でよくあるように,最後以外のすべてに\notag
などを振って番号を消すのは,もし数式が10行くらいになった場合非常に面倒です.
また,数式環境を split,aligned などを使って二重にする方法も考えられるかもしれません.しかし,コードや頭の中が煩雑になるうえに,番号の位置が最後ではなくて環境の真ん中に番号が付きます.
加えて,\tag{1}
などと具体的に自分で番号をつけた場合,LaTeXの最も重要な利点である自動番号付けが失われてしまいます.当然のことながら一般的で自動的な書法がほしいです.
どうしたらよいでしょうか.→ 追記はこちら 追記 (2021 11/15)
#結論
\stepcounter{equation}\tag{\theequation}
これを使ってください.環境はalign*
です.
具体例
\begin{align*}
x
&= abc\\
&= abc\\
&= abc.
\stepcounter{equation}\tag{\theequation}
\end{align*}
#まとめ
改行してある数式中で,真ん中ではなく最後に一つだけ番号をつけたいときに,最も簡潔な記法は\stepcounter{equation}\tag{\theequation}
です.
#追記 (2021 11/15)
故あって現在のデフォルトの環境は align
ではなく aligned
にしています.上記の結果と同様の結果が
\begin{equation}
\begin{aligned}[b]
x
&= abc\\
&= abc\\
&= abc.
\end{aligned}
\end{equation}
によって得られます.利点は以下です.
-
align
同様に1行の数式でも通常通りのequation
環境の書き方で問題なく書けます. - 数式番号を消したいときは
equation*
環境にすればできます. - 数式番号の位置は
[c]
(center, default),[t]
(top),[b]
(bottom) から選べて便利です.特に[b]
と 2行立ての際の中央の番号[c]
が便利です. -
\usepackage{ulem}
で使える下波線\uwave{}
がaligned
環境全体を囲むことで複数行に適用できます.波線をよく使うので個人的にはこれが嬉しかったです.
数式番号は最後に一つがデフォルトで,振りたい箇所が2つ以上になった時に align
を使っています.
VSCode のユーザスニペットはこちらです.
"equation": {
"prefix": ["equation", "ee"],
"body": [
"\\begin{equation}",
"\t\\begin{aligned}[b]$0",
// "\tx$0",//"\t${1:x}",
"\t\\end{aligned}",
"\\end{equation}",
],
"description": "equation"
},
コンパイルエラーを出したくないので[b]
の横にカーソルが来るようにしています.お好みで $0
と$1
の記述を変更して下さい.VSCode の Math Preview 機能は align
,aligned
どちらも問題なく使えます.
(旧タイトル 長い align 環境の数式の最後に番号(タグ)を一つだけ振る小ネタ)