5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

物理・数学でよく使う LaTeX のコマンドを \newcommand する [数式モード,括弧]

Posted at

#動機

$\bullet$ TeX打ちを速くしたい.
$\bullet$ tex ファイルをきれいに仕上げたい.
$\bullet$ 分かりやすく,打鍵効率の良いコマンドを作りたい.

#\newcommand を省略する

まず,\newcommand

\newcommand{\nc}{\newcommand}

のように定義しておきます.
前回の記事:LaTeX の \newcommand を \newcommand してみる

#数式モードを \newcommand する

##コード全体

math_mode.sty
\usepackage{comment}
\newcommand{\nc}{\newcommand} %上で見た
\nc{\di}{\displaystyle}       %1つめの\newcommand
\nc{\ma}[1]{\(\di{#1}\)}      %2つめの\newcommand
\begin{comment}
Note that there is no auto-completion of math mode when typing.
打ち込み時数式環境扱いの自動補完がされないことに注意.
\end{comment}
\nc{\fr}[2]{\frac{#1}{#2}} %for \ma{} mode. %3つめの\newcommand

一つ一つ見ていきましょう.

##\di (コード3行目)

\nc{\di}{\displaystyle}   

\displaystyleの短縮です.equation 環境と同じ表示になります.

example
$\text{textstyle: }\textstyle{\zeta(s) = \sum_{n = 1}^{\infty} \frac{1}{n^s}}$
$\text{displaystyle: }\displaystyle{\zeta(s) = \sum_{n = 1}^{\infty} \frac{1}{n^s}}$

##\ma (コード4行目)

\nc{\ma}[1]{\(\di{#1}\)}  

displaystyle の inline math mode です.例えば,

The Riemann zeta function is\ma{\zeta(s) = \sum_{n = 1}^{\infty} \frac{1}{n^s}}.

と打てば,

$\text{The Riemann zeta function is }\displaystyle{\zeta(s) = \sum_{n = 1}^{\infty} \frac{1}{n^s}}.$

のように出力されます1

##\fr (コード最終行)
\ma{}はただのコマンドなので Atom の数式モードの自動補完が無効になります.特に\frac{}{}が厄介です2.そこで,

\nc{\fr}[2]{\frac{#1}{#2}}

としてしまいましょう.\sumなどはそのままで良いでしょう.

##複数行のコメントアウト

\usepackage{comment}

を使うと複数行のコメントアウトができ便利です.プリアンブル (sty ファイル) でも使えます.

\begin{comment}
<comments>
\end{comment}

注意点はいくつかありますが,この記事の主眼ではないので今は触れないでおきましょう (作成予定).

#括弧を \newcommand する
括弧には様々な種類があります.丸括弧 ( ) (parentheses),三角括弧 $\langle,\rangle$ (angle brackets),角括弧 [ ] (brackets),波括弧(中括弧とも) { } (curly brackets) などです.
##コード全体

bracket.sty
\usepackage{mleftright}
\nc{\lr}[1]{\left(#1\right)}
\nc{\mlr}[1]{\mleft(#1\mright)}
%\mleftright %\left = \mleft, \right = \mright

\nc{\alr}[1]{\left\langle#1\right\rangle} %angle bracket
\nc{\blr}[1]{\left[#1\right]} %bracket
\nc{\clr}[1]{\left\{#1\right\}} %curly bracket
\nc{\amlr}[1]{\mleft\langle#1\mright\rangle} %angle bracket
\nc{\bmlr}[1]{\mleft[#1\mright]} %bracket
\nc{\cmlr}[1]{\mleft\{#1\mright\}} %curly bracket

これもひとつひとつ見ていきましょう.

##丸括弧 ( )

\nc{\lr}[1]{\left(#1\right)}

これがおそらく最も使う括弧でしょう.慣れると非常に便利です.\lrなんて既に存在していてもおかしくなさそうなコマンドですが,案外未定義なのです.

##mleftright
また,

\usepackage{mleftright}

を用いることで,

\nc{\mlr}[1]{\mleft(#1\mright)}

を定義することができます.これは特定の場合に周囲の空白を詰めた括弧を出力します.

ちなみに,

\mleftright

と宣言すると,自動的にすべての\leftの出力が\mleftに,すべての\rightの出力が\mrightになります.\left\right\mleft\mrightを使い分ける必要がない,という方はこれを宣言するのも良いでしょう.元の定義に戻したいときには\mleftrightrestoreを宣言します

[](

##三角括弧 〈〉

\nc{\alr}[1]{\left\langle#1\right\rangle} 
\nc{\amlr}[1]{\mleft\langle#1\mright\rangle}

三角括弧です.\mleft\mrightの機能は丸括弧の場合と同じです.

##角括弧 [ ]

\nc{\blr}[1]{\left[#1\right]}
\nc{\bmlr}[1]{\mleft[#1\mright]}

角括弧です.
色が変になっているところは気にしなくて大丈夫です.tex ファイルでは問題なく出力されます.

##波括弧 { }

\nc{\clr}[1]{\left\{#1\right\}} 
\nc{\cmlr}[1]{\mleft\{#1\mright\}} 

波括弧です.

#まとめ

よく使う記号は新しく定義しておくと非常に便利です.特に上に挙げた\ma{}\lr{}はよく使っています.短く書けるだけでなくシンタックスハイライトによって視認性が向上するという利点もあります.
便利になったコマンドをどんどん使っていきましょう.

#関連
Brackets and Parentheses - Overleaf, Online LaTeX Editor
LaTeX表現集 [物理のかぎしっぽ] ー矢印と括弧
LaTeXの特殊文字・特別記号

  1. 視認の便宜上\text{The Riemann zeta function is }を数式の中に入れて表示しています.日本語の場合 uplatex + jsarticle + Atom なら数式の中に入れても問題ありませんが,外に出せるなら出すのが無難です.

  2. Atom で自動補完のパッケージを使うとi + enterを打てば inline math mode: \(\)が,その中でfr + enterを打てば自動で\frac{}{}が表示されます.しかし,数式環境以外でfr + enterを押すと (筆者の環境では)\begin{figure}が自動補完されてしまいます.\(\di{}\)と打つか,\ma{}と打つか,どちらがより効率的かは場合による,としか言えなさそうです.自動補完がない場合では,\ma{}に優位性があるでしょう,

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?