こんにちは!アドカレ3日目担当, のはずが繰り上がって2日目を担当することになりましたリュカです. 早くも雲行きが怪しいですね…
アドカレの事情はさておき, LaTeXで日本語文書を作成していると, 「、」「。」を「, 」「. 」に置き換える作業に悩まされることがありませんか?特に論文や技術文書では, 全角の句読点ではなく, 半角コンマとピリオドが正式とされるケースがしばしば見られます. 毎回手作業で置き換えるのは非効率で, 誤植のもとにもなります.
そこで今回は, VSCodeに便利なショートカットを設定し, これらの置換作業を一瞬で完了させる方法をご紹介したいと思います.
LaTeX ライフハックと銘打ってはいますが, LaTeX に限らず使えます.
環境
- windows 11
- VSCode 1.95.3
- ssmacro v0.6.0
ssmacro
ssmacro という拡張機能をインストールします.
便利なコマンドが使えるようになる拡張機能です.
今回は文字列の置換をするために利用します.
ショートカットの設定
keybindings.json に以下のコードブロックの内容を追記します.
ファイルの開き方
- 設定アイコン > キーボード ショートカット > ファイルに矢印がついたアイコン
- Ctrl + K Ctrl + S > ファイルに矢印がついたアイコン
- コマンドパレットから Preferences: Open Keyboard Shortcuts (JSON)
設定の説明
「。」を「. 」 (半角ピリオド+半角スペース) にするコマンドと「、」を「, 」(半角コンマ+半角スペース) にするコマンドを順に実行しています.
以下では Ctrl + Alt + .で使えるように設定しています. お好みに応じて"ctrl+alt+oem_period"の値を変えてください.
{
"key": "ctrl+alt+oem_period",
"command": "runCommands",
"args": {
"commands": [
{
"command": "ssmacro.replace",
"args": {
"info": "句点の置換",
"find": "。",
"replace": ". ",
"all": true,
"reg": true,
"flag": "gm"
}
},
{
"command": "ssmacro.replace",
"args": {
"info": "読点の置換",
"find": "、",
"replace": ", ",
"all": true,
"reg": true,
"flag": "gm"
}
}
]
}
},
TIPS:2か所の"all": true,を消せば選択範囲内に置換を実行するコマンドになります.
特定の「、」「。」だけ置換してほしくないとき
文章中で一部だけ「、」「。」を利用したいときは, Unicode コードポイントで記述することで置換を回避することができます.
Unicode が扱えるTeXエンジン固有の話にはなりますが, pxbase パッケージを読み込んだうえで, \UI{3001} とすれば「、」を, \UI{3002} とすれば「。」を出すことができます.
おわりに
実をいうとこのショートカットは置換によってカーソル位置がずれます… 荒削りなショートカットではありますが, 作業効率の向上という観点では十分に活用価値があるのではないでしょうか.
また, ssmacroは自由度の高い拡張機能なので, 今回の置換操作に限らずさまざまな作業の自動化に応用できます. (例えば全角スペースの削除や行末の空白の削除など ) ほかによいものを思いついたら教えてくれると僕が喜びます.
この記事が皆様のよきTeX lifeの一助となれば幸いです.