はじめに
近頃はJupyter notebookやGoogle colaboratory、Makedownなどを使っている人が増えたのと、機械学習が盛んなところからLatexの数式をよく見るようになりました。
私は学習した内容をよくNotionにまとめていて、他の方が書いているLatexの数式などをよくコピーさせてもらっています。
Latexを使っているうちに\begin{aligned}数式\end{aligned}
と書いた方がきれいに表示される事に気付き、付いてないものにはつけるようにしています。
alignedの有無によってどう違うかというと例えば総和は
-
alignedなし
$\sum_{i}^{k}x_i$
$\sum_{i}^{k}x_i$ -
alignedあり
$\begin{aligned}\sum_{i}^{k}x_i\end{aligned}$
$\begin{aligned}\sum_{i}^{k}x_i\end{aligned}$
となります。あった方がきれいですね。
しかし付いていないものにいちいちaligned
を付けるのが面倒になり
- 簡単に付けられる
- その方法は簡単に実現できる
ものがないか探したらBatでできそうだったのでこれはそのメモです。
コード
クリップボードに入っている文字列の前後に定型文を付けるコード
- 下記のコードをbatファイルとして保存して、Latexの数式がクリップボードに入っている状態でバッチファイルを実行すれば
aligne
がくっついた文字列がクリップボードに入ります。
for /f "usebackq tokens=*" %%A in (`powershell get-clipboard`) do set RET=%%A
echo \begin{aligned}%RET%\end{aligned} | clip
- 1行目
-
for /f
は文章に対してforを行う事を示していて今回はクリップボード内の文章が対象となります -
usebackq
はコマンドの実行結果をforで扱う事を示しています -
tokens=\*
は文章全体を扱う事を示しています -
%%A
はfor内で使う一時変数の名前です -
powershell get-clipboard
はクリップボードの内容を取得するコマンドです - この for の結果は
RET
という変数に格納されます
-
- 2行目
- **echo \begin{aligned}%RET%\begin{aligned}**の赤部分が今回くっ付けたい定型文です
- echoコマンドの結果を clipコマンドに渡してクリップボードに格納しなおします
- 問題点
- DOSコマンドの一部である |(パイプ) がクリップボードに入っていると正しく動作しません。
クリップボードの文字を置換するコード(おまけ)
- こちらはついでに作成したもので、クリップボードにある文字列に含まれるブランクをアンダースコアに置換してクリップボードに格納するコードです。
- 例:
this is a pen.
→this_is_a_pen
for /f "usebackq tokens=*" %%A in (`powershell get-clipboard`) do set RET=%%A
echo %RET: =_%| clip
- 一行目
- 最初の例と全く同じです
- 二行目
- **%変数名:<置換元>=<置換先>%**とすると置換でき、その内容をclipに渡してクリップボードに格納しなおしています。
- 問題点
- DOSコマンドの一部である |(パイプ) がクリップボードに入っていると正しく動作しません。