textlint校正ツールで日本語原稿チェック
2018年5月、Windows10のtextlint校正ツールにより技術文書向けルールでRe:VIEW日本語原稿をチェックしました。textlintにRe:VIEWプラグインとルールプリセットをインストールして拡張し、ルールをカスタマイズしました。
以下のルールプリセットを設定しました。
- 技術文書向けルール : textlint-rule-preset-ja-technical-writing
- 日本語周りスペースルール : textlint-rule-preset-ja-spacing
textlintのインストールと設定については、下記ブログを参照してください。
技術文書向けルールのカスタマイズは、下記ブログを参照してください。
日本語周りスペースルール
日本語周りスペースルールは、日本語(全角)と英字(半角)の間のスペースの有無などの日本語周りにおけるルールです。
ブログを書いているときに、日本語と English の間にスペースを入れることがあります。英字が日本語と密接しているとみにくいと思ってスペースを挿入していました。
一般的な書籍を見ると、日本語文章中に出現する英字単語の前後にわずかなすき間がありとても読みやすいです。これは半角スペースよりも幅が短い「1/8スペース」らしいです。電子書籍を作成するときは、英字単語の前後にスペースを入れない方が良いです。
Re:VIEWでEPUBを生成すると、英字単語の前後のスペースは原稿のまま出力しました。
Re:VIEWでPDFを生成すると、英字単語の前後は「1/8スペース」となりました。TeX組版処理システムの素晴らしさです。
Re:VIEWサンプル原稿
textlintで原稿の校正を行うサンプル原稿を作成します。ファイル名はtest.reで、UTF-8エンコードLF改行コードで作成します。このサンプル原稿は、ルールチェックを試すために故意にスペースを混入しています。
= はじめての Re:VIEW あいうABCえお。 あいう ABCえお。 あいうABC えお。 あいう ABC えお。 あいう ABC えお。 Re:VIEWのユーザー インターフェイスは使いやすいです。 ユーザー・インターフェイスと書きます。 素晴らしい! これがRe:VIEWです。 素晴らしい? これがRe:VIEWです。 素晴らしい!これがRe:VIEWです。 全角 と 全角の間には、スペースを入れません。 == Re:VIEW とは 「Re:VIEWを知っていますか」の問いに対して、 「 はい、知っています 」 と言いました。
日本語周りスペースルールのインストール
textlintルールプリセットをローカル(開発環境)にインストールします。日本語周りスペースルールtextlint-rule-preset-ja-spacingを入れます。
技術文書向けルールtextlint-rule-preset-ja-technical-writingもインストールしてください。
> npm install --save-dev textlint-rule-preset-ja-spacing npm WARN text01@1.0.0 No description npm WARN text01@1.0.0 No repository field. + textlint-rule-preset-ja-spacing@2.0.1 added 8 packages in 3.928s
ルールのカスタマイズ
日本語周りスペースルールプリセットをカスタマイズした.textlintrcを示します。技術文書向けルールプリセットは、全角感嘆符「!?」の使用を許可しました。
{ "rules": { // 技術文書向けの textlint ルールプリセット "preset-ja-technical-writing": { "no-exclamation-question-mark": { // 感嘆符「!!??」の使用 "allowHalfWidthExclamation": false, // + 半角! "allowFullWidthExclamation": true, // + 全角! "allowHalfWidthQuestion" : false, // + 半角? "allowFullWidthQuestion" : true // + 全角? }, }, // 日本語周りにおけるスペースの有無 ルールプリセット "preset-ja-spacing": { "ja-space-between-half-and-full-width": { // 半角文字と全角文字の間にスペースを入れるかどうか "space": "never", // + "never" (入れない) or "always" (入れる) "ja-space-around-code": false, // インラインコードの前後に半角スペースを入れる "ja-no-space-between-full-width": true, // 全角文字どうしの間にスペースを入れない "ja-nakaguro-or-halfwidth-space-between-katakana": true, // カタカナ語間は、中黒または半角スペースで区切る "ja-no-space-around-parentheses": true, // かっこの外側、内側ともにスペースを入れない "ja-space-after-exclamation": true, // 文末感嘆符の直後が別文なら全角スペースを入れる "ja-space-after-question": true // 文末疑問符の直後が別文なら全角スペースを入れる } } }, "plugins": [ "review" ] }
サンプル原稿のチェック
> textlint test.re 4:4 ✓ error 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 5:7 ✓ error 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 6:4 ✓ error 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 6:8 ✓ error 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 7:4 ✓ error 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 7:8 ✓ error 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 9:13 error カタカナ語間は中黒(・)または半角スペースを用いてカタカナ語を区切ります preset-ja-spacing/ja-nakaguro-or-halfwidth-space-between-katakana 12:7 ✓ error 文末に感嘆符を使用し、後に別の文が続く場合は、直後に全角スペースを挿入します。 preset-ja-spacing/ja-space-after-exclamation 13:7 ✓ error 文末に感嘆符を使用し、後に別の文が続く場合は、直後に全角スペースを挿入します。 preset-ja-spacing/ja-space-after-question 16:3 ✓ error 原則として、全角文字どうしの間にスペースを入れません。 preset-ja-spacing/ja-no-space-between-full-width 21:2 ✓ error かっこの外側、内側ともにスペースを入れません。 preset-ja-spacing/ja-no-space-around-parentheses 21:12 ✓ error かっこの外側、内側ともにスペースを入れません。 preset-ja-spacing/ja-no-space-around-parentheses 21:14 ✓ error かっこの外側、内側ともにスペースを入れません。 preset-ja-spacing/ja-no-space-around-parentheses ✖ 13 problems (13 errors, 0 warnings) ✓ 12 fixable problems. Try to run: $ textlint --fix [file]
行 | 指摘 |
---|---|
4~7 | 全角文字と半角文字の間にスペースを入れません |
3 : あいうABCえお。
4 : あいう ABCえお。
5 : あいうABC えお。
6 : あいう ABC えお。
7 : あいう ABC えお。
3行目はOKですが、4行目から7行目はNGです。
行 | 指摘 |
---|---|
9 | カタカナ語間は中黒(・)または半角スペースを用いてカタカナ語を区切ります |
Re:VIEWのユーザー インターフェイスは使いやすいです。
ユーザー・インターフェイスと書きます。
「ユーザー」と「インターフェイス」の間に全角スペースがあり指摘されました。
行 | 指摘 |
---|---|
12,13 | 文末に感嘆符を使用し、後に別の文が続く場合は、 直後に全角スペースを挿入します |
素晴らしい! これがRe:VIEWです。
素晴らしい? これがRe:VIEWです。
素晴らしい!これがRe:VIEWです。
行 | 指摘 |
---|---|
16 | 原則として、全角文字どうしの間にスペースを入れません |
全角 と 全角の間には、スペースを入れません。
行 | 指摘 |
---|---|
21 | かっこの外側、内側ともにスペースを入れません |
「Re:VIEWを知っていますか」の問いに対して、
「 はい、知っています 」 と言いました。
textlint自動修正
fixable problem指摘は、「–fix」オプションを付けると指摘内容を自動修正します。
> textlint --fix test.re 21:2 ✔ かっこの外側、内側ともにスペースを入れません。 preset-ja-spacing/ja-no-space-around-parentheses 21:12 ✔ かっこの外側、内側ともにスペースを入れません。 preset-ja-spacing/ja-no-space-around-parentheses 21:14 ✔ かっこの外側、内側ともにスペースを入れません。 preset-ja-spacing/ja-no-space-around-parentheses 16:3 ✔ 原則として、全角文字どうしの間にスペースを入れません。 preset-ja-spacing/ja-no-space-between-full-width 4:4 ✔ 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 5:7 ✔ 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 6:4 ✔ 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 6:8 ✔ 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 7:4 ✔ 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 7:8 ✔ 原則として、全角文字と半角文字の間にスペースを入れません。 preset-ja-spacing/ja-space-between-half-and-full-width 12:7 ✔ 文末に感嘆符を使用し、後に別の文が続く場合は、直後に全角スペースを挿入します。 preset-ja-spacing/ja-space-after-exclamation 13:7 ✔ 文末に感嘆符を使用し、後に別の文が続く場合は、直後に全角スペースを挿入します。 preset-ja-spacing/ja-space-after-question ✔ Fixed 12 problems
修正前後の原稿を比較すると、正しく修正したことがわかります。
まとめ
Windows10にtextlint校正ツールをインストールして、Re:VIEW日本語原稿をチェックできました。
技術文書向けルールと日本語周りスペースルールをインストールして、適切に日本語チェックが行えました。