日本語で論文を書く際、句読点をピリオドとカンマで記述しなければならない場合が多々あります。この記事ではLaTeXをVSCodeで書く際にソースファイルの「。」「、」の句読点を「.」「,」へ楽に置換する2つの方法を紹介します。
1. LaTeX Workshopとlatexindentを用いる方法
概要
LaTeX Workshop拡張機能とlatexindentを利用して、ファイル保存時に自動的に句読点を一括置換する方法です。latexindentが利用できる環境を前提とします。
拡張機能のインストール
VSCodeでLaTeXを書く際におなじみの、拡張機能LaTeX Workshopをインストールします。
latexindent設定ファイルの作成
プロジェクトルートに次の内容でlatexindent.yaml
ファイルを作成します。
replacements:
-
this: '、'
that: ','
-
this: '。'
that: '.'
latexindentコマンドは-r
スイッチを付けて実行するとファイルの内容を置換することができ1、このファイルでは置換前・置換後の文字を設定しています。
VSCodeの設定
次のようにVSCodeの設定を追加し、ファイル保存時にLaTeX Workshopからlatexindentが実行されるようにします。
{
"[latex]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "James-Yu.latex-workshop",
},
"latex-workshop.latexindent.path": "latexindent",
"latex-workshop.latexindent.args": [
"-c",
"%DIR%/",
"%TMPFILE%",
"-l",
"%DIR%/latexindent.yaml",
"-r"
]
}
latex-workshop.latexindent.args
に設定しているlatexindentのオプションの意味は下記の通りです。
オプション | 意味 |
---|---|
-c %DIR%/ |
実行ログindent.log をプロジェクトルートに出力 |
%TMPFILE% |
フォーマット対象のTeXファイルのパス2 |
-l %DIR%/latexindent.yaml |
設定ファイルとしてプロジェクトルートのlatexindent.yaml を利用 |
-r |
置換を有効にする |
実行
TeXファイルの保存やフォーマットを実行するとすべての句読点が置換されます。
2. 置換マクロを用いる方法
概要
ショートカットキーを押すことで、開いているTeXファイルの句読点を一括置換する方法です。
拡張機能のインストール
拡張機能ssmacroをインストールします。この拡張機能はVSCode上で様々なマクロを実行できるようにするものです。詳細はSuper Simple MACRO for VSCode : OFF-SOFT.netをご覧ください。
コマンド定義の作成
任意の場所にコマンド定義ファイル(JSON)を作成します。
[
"ssmacro.clear",
{
"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"
}
}
]
この時点で、コマンドパレット(Ctrl + Shift + P
)からssmacro.run
→regex.json
へのパス入力でも一応実行できます。
ショートカットキーの設定
VSCodeメニューのファイル
> 基本設定
> キーボード ショートカット
からJSONファイル(keybindings.json
)を開き、下記の設定を追加します。
args
キーには上記のregex.json
への完全なパスを指定してください。
{
"key": "ctrl+oem_comma ctrl+oem_period",
"command": "ssmacro.macro",
"args": {"path": "path/to/regex.json"}
}
実行
Ctrl + ,
→Ctrl + .
で先ほどのコマンドが呼び出され、すべての句読点が置換されます。
別のキーを指定したい場合はkeybindings.json
ファイルのkey
キーの内容を変更します。