LoginSignup
0
0

More than 3 years have passed since last update.

文字列を修正するbatファイル

Posted at

はじめに

近頃は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コマンドの一部である |(パイプ) がクリップボードに入っていると正しく動作しません。
0
0
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
0
0