9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VSCodeでLaTeXの句読点を楽に置換する

Last updated at Posted at 2020-04-16

日本語で論文を書く際、句読点をピリオドとカンマで記述しなければならない場合が多々あります。この記事ではLaTeXをVSCodeで書く際にソースファイルの「。」「、」の句読点を「.」「,」へ楽に置換する2つの方法を紹介します。

1. LaTeX Workshopとlatexindentを用いる方法

概要

LaTeX Workshop拡張機能とlatexindentを利用して、ファイル保存時に自動的に句読点を一括置換する方法です。latexindentが利用できる環境を前提とします。

拡張機能のインストール

VSCodeでLaTeXを書く際におなじみの、拡張機能LaTeX Workshopをインストールします。

latexindent設定ファイルの作成

プロジェクトルートに次の内容でlatexindent.yamlファイルを作成します。

latexindent.yaml
replacements:
  -
    this: '、'
    that: ','
  -
    this: '。'
    that: '.'

latexindentコマンドは-rスイッチを付けて実行するとファイルの内容を置換することができ1、このファイルでは置換前・置換後の文字を設定しています。

VSCodeの設定

次のようにVSCodeの設定を追加し、ファイル保存時にLaTeX Workshopからlatexindentが実行されるようにします。

settings.json
{
    "[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)を作成します。

regex.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.runregex.jsonへのパス入力でも一応実行できます。

ショートカットキーの設定

VSCodeメニューのファイル > 基本設定 > キーボード ショートカットからJSONファイル(keybindings.json)を開き、下記の設定を追加します。

argsキーには上記のregex.jsonへの完全なパスを指定してください。

keybindings.json
{
    "key": "ctrl+oem_comma ctrl+oem_period",
    "command": "ssmacro.macro",
    "args": {"path": "path/to/regex.json"}
}

実行

Ctrl + ,Ctrl + .で先ほどのコマンドが呼び出され、すべての句読点が置換されます。
別のキーを指定したい場合はkeybindings.jsonファイルのkeyキーの内容を変更します。

  1. 7. The -r, -rv and -rr switches — latexindent.pl 3.19 documentation

  2. latex-workshop.latexindent.args / Format · James-Yu/LaTeX-Workshop Wiki · GitHub

9
6
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
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?