粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

マークダウンの数式入力で楽をするマクロ

JupyterでTexソースコードを書くことで,資料と実行コードを両立できてモチベや管理が楽になるかと思い色々いじっています。
追記: StackEditのマークダウンでも有効なことを確認。タイトルを修正

ossyaritoori.hatenablog.com

数式マクロをjypyter notebookで使う。

行列などは書くのが面倒すぎてマクロがないと書きたくない体になってしまいました。
ossyaritoori.hatenablog.com

jupyterでもこのマクロを導入する事ができます。
詳しくはこの質疑に情報が詰まっています。
IPython (Jupyter) MathJaX preamble - Stack Overflow

やり方は,「$$で囲んだ箇所にnewcommandを書く」でおしまいです。
少し不格好ですがノート頭で私は以下のようにマクロ宣言を実行しています。

## Tex Preamble
$$
\newcommand{\bm}[1]{{\bf #1}}
\newcommand{\eq}[1]{Eq.(\ref{eq:#1})}
\newcommand{\zu}[1]{図\ref{fig:#1}}
\newcommand{\shiki}[1]{式(\ref{eq:#1})}
\newcommand{\fig}[1]{Fig.\ \ref{fig:#1}}
\newcommand{\grp}[1]{Fig.\ \ref{grp:#1}}
\newcommand{\tab}[1]{Table\ \ref{tab:#1}}
\newcommand{\defeq}{:=}
\newcommand{\tvec}[1]{\bvec{#1}^{\mathsf{T}}} 
\newcommand{\mr}[1]{\mathrm{#1}}%rm体
\newcommand{\ml}[1]{\mathcal{#1}}%frac体
\newcommand{\bmat}[1]{\begin{bmatrix} #1 \end{bmatrix}}%行列簡略化
\newcommand{\pmat}[1]{\begin{pmatrix} #1 \end{pmatrix}}%行列簡略化
\newcommand{\mat}[1]{\left( \begin{matrix} #1 \end{matrix} \right)}%行列簡略化
%\newcommand{\nom}[1]{ \ml{N} \{ 0,\sigma_{ #1 } \} }
\newcommand{\expo}[1]{ \mathrm{e}^{#1} }
$$

どんな感じになるか画像

マクロ宣言部分は実は実行後消えるのでそこまで不格好な感じにはならないかと。
f:id:ossyaritoori:20171029174026p:plain

このようにスッキリ。
f:id:ossyaritoori:20171029174045p:plain

問題・課題

厳密には走っているのはTexではなくMathJaxなのでいくつかの関数は使えません。
例えばちょっと驚いたのは

  • \boldmath

が使えないことです。

あとは,これをTexにした所,宣言文が\[で囲まれ,数式として認識されてエラーが出ます。
従って全自動はめんどくさそう…

快適にjupyternotebookを書くという目的以外には使わない方が良さそうです。