Japanese Novel
日本語 | English
書いて、確かめて、一冊にする。すべて縦書きのまま。

出力した本をそのまま印刷した結果です(夏目漱石『吾輩は猫である』・青空文庫より)
「Japanese Novel」は、無料のエディター「Visual Studio Code(VS Code)」を小説の執筆環境に変える拡張機能です。書いた文章はすぐ隣に縦書きで表示され、章をまとめて HTML・EPUB・テキストの「本」として出力できます。出力した HTML はブラウザーでそのまま印刷・PDF 保存できます。記法は青空文庫の注記そのまま。原稿はただのテキスト ファイルです。
できること
- 縦書きプレビュー — 書きながら、組み上がった姿をすぐ隣で確認できます。
- 青空文庫の注記に対応 — ルビ・傍点・傍線・太字・斜体・縦中横・改ページなど。
- 自動字下げ — 改行すると行頭に全角スペースが入ります。その行を
「 や 『 で書き始めると自動で外れます。
- 本づくり — 章をまとめて、印刷用の HTML や EPUB・青空文庫形式のテキストなどに出力。HTML はそのまま印刷や PDF 保存できます。
- 文章校正 — 目に見えない不正な文字や、投稿前の体裁くずれに気づけます。
- 登場人物と造語のハイライト — 人物の名前や造語が、地の文で目立つ表示になります。

ふだんの執筆画面です。左から、「本の一覧」・原稿・縦書きプレビュー
この拡張機能の考え方
機能の多さよりも、執筆の邪魔をしないことを大切にしています。
AI は使いません
小説の投稿や出版では、AI の利用を禁じる編集部や賞が少なくありません。この拡張機能は、執筆のための AI 機能を一切持ち込みません。.jpnov・.jpbook を開いている間は GitHub Copilot 拡張機能も既定で無効になり、入力補完はすべて、決まった規則にもとづくふつうのプログラムが行います。
執筆は最初から最後まで、人間の手で。
辞書を持ちません
単語辞書から「これは人名らしい」と推測して色を付けるような機能は、あえて持ちません。推測は外れるからです。
ありふれた言葉が人名として塗られたり、作品の要になる造語が見過ごされたり。目立たせたい言葉は、登場人物と造語のハイライトに作者自身が登録します。文章校正も同じ考えで、単語辞書に基づくあいまいな指摘はしません。辞書を積み込まないぶん、動作も軽いままです。
入れたら、それだけで動きます
追加のソフトも、プログラムの知識も要りません。プレビューも本づくりも手元のパソコンの中だけで完結するので、オフラインでも使え、原稿がどこかへ送られることもありません(印刷も、お使いのブラウザーで手元のファイルを開くだけです)。プレビューは入力のたびに、すぐ組み直されます。
原稿を囲い込みません
原稿はただのテキスト、記法は昔からある青空文庫の注記です。章のファイルは .jpnov、本のファイルは .jpbook。この拡張機能が働くのは、あなたが小説と決めたこの 2 つのファイルだけです。
はじめかた
パソコンに慣れていなくても大丈夫です。順番にどうぞ。
- VS Code を入れる — 公式サイトから無料でダウンロードして、インストールします。
- 日本語表示にする — VS Code を起動したら、左端の四角いブロックのアイコン(拡張機能)をクリックし、検索欄に
Japanese Language Pack と入力してインストールします。案内に従って再起動すると、画面が日本語になります。
- この拡張機能を入れる — 同じ検索欄に
Japanese Novel と入力してインストールします。
- 小説のフォルダーを開く — 原稿を入れるフォルダーを作り、メニューの「ファイル」→「フォルダーを開く」で開きます。開いたときに「このフォルダー内のファイルの作成者を信頼しますか?」と聞かれたら、「はい、作成者を信頼します」を選んでください。自分で作ったフォルダーなので心配ありません。
- 本を作る — 左端のアクティビティ バーに現れる「小説」(本のアイコン)を開き、「本の一覧」の「+」(本を作成…)を押して、本の名前を入力します(末尾の
.jpbook は最初から入っています)。.jpbook 1 つが本 1 冊です。作った本がそのまま開き、「本の情報」「表紙」「目次」が現れます。
- 章を書く — 「目次」の「新しい章…」を押すと、
.jpnov が入った入力欄が出ます。.jpnov の前に章の名前を入力してください(この .jpnov が「小説の章」の目印です)。作った章は目次に加わり、そのままエディターで開きます。あとは書くだけです。
- 縦書きで確かめる — 章を開いた状態で、エディター右上の「プレビューを横に開く」アイコンを押すと、エディターの横に縦書きの組み上がりが表示されます。書くそばから反映されます。
- 本にする — 「本の一覧」の下にある「印刷/PDF 保存」を押すと、本がブラウザーで開きます。ページ右上の「印刷/PDF 保存」からそのまま印刷でき、プリンターの代わりに PDF への保存を選べば PDF になります。出力した HTML は、開いているフォルダー内の
dist にあります。本が増えたら、一覧に戻ってチェックを入れると、まとめて出力できます。

同じ流れは、「ようこそ」画面(メニューの「ヘルプ」→「ようこそ」)にあるガイド「小説をはじめる」でも案内しています。
書き方(青空文庫の注記)
本文はふつうに書くだけです。ルビや傍点を付けたいところにだけ、青空文庫の注記という決まった書き方を添えます。青空文庫は日本語の電子テキストで長く使われてきた形式です。
多くの注記は、対象の言葉を後ろから指す前方参照型が基本です。範囲がわかりにくいときは前後ではさむ開始/終了型、複数行にわたるときは開始と終了の注記をそれぞれ 1 行にして囲むブロック型でも書けます。どの形でも仕上がりは同じです。
| やりたいこと |
前方参照型 |
開始/終了型 |
ブロック型 |
| ルビを振る |
漢字《かんじ》 |
|お茶の間《おちゃのま》 |
— |
| 左側にルビを振る |
英雄[#「英雄」の左に「ヒーロー」のルビ] |
— |
— |
| 傍点を打つ |
言葉[#「言葉」に傍点] |
[#傍点]嬉しい[#傍点終わり] |
— |
| 傍線を引く |
言葉[#「言葉」に傍線](傍線・二重傍線・鎖線・破線・波線) |
[#傍線]大事な約束[#傍線終わり] |
— |
| 太字にする |
言葉[#「言葉」は太字] |
[#太字]ここぞ[#太字終わり] |
[#ここから太字]…[#ここで太字終わり] |
| 斜体にする |
言葉[#「言葉」は斜体] |
[#斜体]そっと[#斜体終わり] |
[#ここから斜体]…[#ここで斜体終わり] |
| 数字などを 1 マスに収める(縦中横) |
42[#「42」は縦中横] |
[#縦中横]12[#縦中横終わり] |
— |
| 見出しを付ける |
第一章[#「第一章」は大見出し](大見出し・中見出し・小見出し) |
[#大見出し]第一章[#大見出し終わり] |
[#ここから大見出し]…[#ここで大見出し終わり] |
| 字下げする |
全角スペース、または行の頭で [#2字下げ](数字は全角で) |
— |
[#ここから2字下げ]…[#ここで字下げ終わり] |
| ページを改める |
[#改ページ](行の頭で) |
— |
— |
上の見本は、左ルビがあるので行送りを 2 倍にしています。原稿はこちらです。コピーしてそのまま試せます。
物語《ものがたり》が始まる。
|お茶の間《おちゃのま》へ届け。
覚悟[#「覚悟」に傍点]を決めた。
運命[#「運命」に波線]が動く。
英雄《えいゆう》[#「英雄」の左に「ヒーロー」のルビ]の登場。
第42[#「42」は縦中横]話、太字[#「太字」は太字]で。
「何だと!?」
覚えておくと便利なこと:
- 注記の
[#…] はすべて全角で書きます。半角の [#…] は効きません。
!? !! のような半角 2 文字の組は、注記を書かなくても自動で 1 マスに収まります(自動縦中横)。
- 左側にルビを振るときは、設定「小説 — 組版と出力」の行送り(Line Pitch)を 2 倍以上にします。狭いままだと、左ルビが隣の行に重なります。
- 見出しの注記を書いても、章が分かれるわけではありません。章= 1 ファイルが区切りです。
- 対応していない注記はメモ扱いになり、出力には現れません。書きかけの注記(
] の閉じ忘れ)は波線でお知らせします。
自動字下げ
和文では、段落の先頭に全角スペースを 1 つ置きます。この決まりに合わせて、スペースを自動で入れたり外したりします。
- 改行すると、次の行の行頭に全角スペースが 1 つ入ります。
- その行を
「 や 『 で書き始めると、このスペースは自動で外れます。
- 何も書かずにそのまま改行したときは、残ったスペースが消えて空行になります。
- 対象になるのは、自動で入れたスペースだけです。自分で入力したスペースはそのまま残ります。
不要なときは、設定「小説 — エディター」でオフにできます。
縦書きプレビュー
エディター右上の「プレビューを横に開く」で、原稿の横に組み上がりが表示されます。
- 入力するたびに、すぐ反映されます。
- エディターでカーソルを動かすと、プレビューも同じ場所へ移動します。
- 行の折り返しや禁則処理は、出力される本とまったく同じ計算です。
[#改ページ] は破線の目印として表示されます。行番号は改ページごとに 1 から数え直します。
行番号を消したいときや、原稿用紙のような罫線を出したいときは、設定「小説 — 組版と出力」で選べます。
本にする(印刷・EPUB・テキスト)
.jpbook は「本に載せる章を、読む順に並べた目次」です。中身はただのテキストで、章のファイル名(開いているフォルダーからのパス)が 1 行ずつ並びます。
第一章.jpnov
第二章.jpnov
最終章.jpnov
本の中身と順序は、この目次だけが決めます。この仕組みは、長い作品ほど効いてきます。
- 巻ごとに 1 冊 — 長編は
第一巻.jpbook・第二巻.jpbook と分ければ、最新巻だけを 1 冊にまとめて編集部に渡せます。
- 目次にある章だけが本になります — 同じ第一章の別稿をいくつか持っておき、投稿先に合わせて目次の 1 行だけ差し替える、という使い方ができます。
- ファイル名は自由 — 順序は目次が決めるので、章のファイルにどんな名前を付けても、あとで名前を変えても、本の並びは崩れません。
本にするには、アクティビティ バーの「小説」を開きます。出力したい本にチェックを入れて、一覧の下のボタンを押します(EPUB はアイコンのボタンです)。
- 印刷/PDF 保存 — 本をページ組版の縦書き HTML に出力して、既定のブラウザーで開きます。ページ右上の「印刷/PDF 保存」ボタンか、ブラウザーの印刷メニューからそのまま印刷できます。プリンターの代わりに PDF への保存を選べば PDF になります。用紙は A4(既定)か A6 を選べます。向きはページの形に合わせて自動で決まります(設定で固定もできます)。出力した HTML は 1 ファイルで完結し、あとからどのブラウザーで開いても印刷できます。
- EPUB に出力 — 電子書籍の EPUB。スマートフォンや電子書籍リーダーで、縦書き・右開きのまま読めます。文字の大きさと行の折り返しは読む端末に合わせて変わります。
- テキストに出力 — 章をつないだ青空文庫形式のテキスト。投稿サイトや他のソフトへの受け渡しに。
出力先は、開いているフォルダー内の dist です(設定「小説 — 組版と出力」で変更できます)。章と本のファイルはフォルダー分けしても大丈夫で、並びはそのまま出力先に反映されます。
ふだんの操作は「本の一覧」でできます — 本を開くと「本の情報」「表紙」「目次」が現れます。章を新しく作るときは「新しい章…」を、すでにある章を加えるときは「章を追加…」を押します。並べ替えは、ドラッグか上下のボタンでできます。不要になった章は「×」で本から外せます(ファイルは残ります)。応募用の表紙も、「表紙」で同じように扱えます。題名やヘッダーは、「本の情報」の各行をクリックすればその場で編集できます。下の出力ボタンは、開いている本だけを出力します。どの操作も .jpbook の中身をそのまま書き換えるので、手で書いた場合と完全に同じ結果になります。
章のファイル名を VS Code 内で変えたり移動したりすると、参照している .jpbook のパスを更新するか確認が出ます(設定「小説 — エディター」で「常に更新」「更新しない」に変えられます)。VS Code の外で変えた場合は追跡できないので、.jpbook の該当行に赤い波線でお知らせします。
組版の設定
既定の組版は 40 字 × 34 行。字数・行数・行送り・本文のフォントは設定「小説 — 組版と出力」で変えられます。行送りの既定は文字サイズの 1.5 倍、本文のフォントの既定は OS 付属の明朝体です。
設定を開くには:左下の歯車 →「設定」→ 検索欄に jpnov(章ファイルの拡張子と同じ綴り・半角)と入力すると、この拡張機能の設定だけが並びます。

禁則処理
行の頭に句読点が来ない、行の末尾にかぎ括弧の開き(「)が残らない――和文組版の約束事は、既定で守られます。
| 禁則処理なし |
禁則処理あり(既定) |
 |
 |
行末の句読点は「ぶら下げ」で処理します。中点なども対象にしたい場合は、設定で「厳格」を選べます。
ダッシュ
設定「小説 — 文章校正」で選べます。既定は全角ダッシュ ―(U+2015)で、青空文庫の記号と同じ文字です。em ダッシュ —(U+2014)と罫線 ─(U+2500)も選べます。ほかのダッシュ文字や奇数個の連続は指摘され、電球アイコンから直せます。
どれを選んでも、HTML・EPUB の出力では em ダッシュ(—)として組まれます。日本語のフォントでは、em ダッシュどうしが切れ目なく 1 本につながります。
原稿用紙風の表示
罫線と行番号をオンにすると、原稿用紙のような見た目になります。プレビュー用と出力用は、設定「小説 — 組版と出力」で別々に選べます。

罫線を「赤」に、行番号をオンに、行送りを 2 倍にして印刷した例
ページ番号とヘッダー
ページ組版の出力には、ページ番号とヘッダー(ページ上部の題名)が入ります。これらは本ごとの情報なので、.jpbook の冒頭に書きます。同じフォルダーで第一巻と第二巻を作っても、ヘッダーをそれぞれ変えられます。章と章の間に入れる区切り記号(章区切り)も、同じ場所で指定します。
---
title: 作品名 第一巻
header: 作品名 一
pageNumber: right
pageNumberFormat: {page} / {totalPage}
divider: * * *
---
第一章.jpnov
title — 本の題名。EPUB と「本の一覧」の表示に使われます。
author — 著者名。EPUB の著者情報になります。
header — ヘッダー(ページ上部の中央に入る文字)。書かなければ何も表示されません。
pageNumber — ページ番号の位置。right(常に右下、既定)・left(常に左下)・rightLeft(右下・左下を交互)・leftRight(左下・右下を交互)・none(表示しない)。
pageNumberFormat — ページ番号の書式。{page}(ページ番号)と {totalPage}(総ページ数)が使えます。既定は {page} / {totalPage}。
divider — 章区切り。章と章の間に入れる記号です(例:*・* * *・◇)。次の章が見出しで始まる場合は入りません。そのまま書けば出力時に天地中央揃えになり、[#3字下げ]* のように書けば字下げで入ります。書かなければ章の間は空行だけになります。
cover — 本文の前に入れるページ。応募用の表紙やあらすじに使います(書き方)。
どれも書かなくてかまいません(書いた分だけ既定から変わります)。編集中はキー名や値の候補が自動で出ます。本を「本の一覧」で開けば、title から divider までは「本の情報」で、cover は「表紙」で編集することもできます。
応募用の表紙と扉
多くの新人賞では、本文の前に表紙や扉、あらすじといったページが要ります。cover に並べたファイルが、そのページになります。
---
title: 作品名
author: 著者名
cover:
- 表紙.jpnov
- あらすじ.jpnov
---
第一章.jpnov
パスの書き方は章の行と同じです。表紙はファイルごとに新しいページから始まり、HTML 出力に入ります(そこから保存した PDF にもそのまま入ります)。ページ番号とヘッダーは本文の 1 ページ目から始まり、表紙が何ページあっても数え方は同じです。
「本の一覧」で本を開くと「表紙」があり、章と同じようにファイルの追加・作成・並べ替えができます。下の見本は、「新しい表紙…」で作ったファイルにあらかじめ入っています。
表紙のファイルには、本の情報を差し込む注記が書けます。
| 差し込むもの |
注記 |
| 題名 |
[#ここに「題名」の値を表示] |
| 著者 |
[#ここに「著者」の値を表示] |
| 総ページ数(本文のページ数) |
[#ここに「総ページ数」の値を表示] |
[#5字下げ][#ここに「題名」の値を表示]
[#7字下げ][#ここに「著者」の値を表示]
[#7字下げ]全[#縦中横][#ここに「総ページ数」の値を表示][#縦中横終わり]ページ
出力すると、その本の値が入ります。プレビューには見本の「題名」「著者」「NaN」が出ます。同じ表紙ファイルを、何冊の本にも使えます。見出しや傍点を付けるときは、開始/終了型で挟みます([#大見出し][#ここに「題名」の値を表示][#大見出し終わり])。
文章校正
書いている間、原稿を静かに点検します。
点検は、地の文・台詞・見出し・ルビの読み・注記を区別して行われます。地の文の規則が台詞の中で働くことはなく、見出しの行は句点の確認から外れます。注記をまたいだ漢字の連続(聴覚視覚[#太字]区分装置)は、読者に見えるとおりひとつながりとして数えます。単語辞書による推測もしないので、作品の固有名詞はそのまま通ります。
- 既定でオン(文字の事故) — 半角カナ、分解済みの文字(NFD)、Shift JIS にない文字(旧字体や異体字)、ゼロ幅スペース、不正な制御文字、ダッシュの揃え。コピー&ペーストで紛れ込む「見えない事故」を防ぎます。
- 既定でオン(原稿の作法) — 地の文は行頭の字下げと文末の句点。台詞は「〜。」の句読点と行頭の字下げを指摘。ほかに!?の直後の全角スペース、三点リーダーの偶数個、括弧の対応。ひとつずつ独立した項目なので、合わない作法だけオフにできます。
- 投稿前にオン — 一文の長さ、読点の数、漢字やアラビア数字の連続、空行の連続など。設定「小説 — 文章校正」で必要なものだけ選べます。
指摘は理由ごとに別の文言で表示され、多くは電球アイコンから自動修正できます。まとめて直したいときは「自動修正できる問題をすべて修正」も使えます。

登場人物と造語のハイライト
登場人物の名前と、作品だけの造語を登録しておくと、執筆中に目立つ表示になります。日本語は主語が省略されがちなので、「いま誰の場面か」を見失いにくくなります。
色が付くのは、登録した言葉だけです。辞書で推測しないので、関係ないふつうの言葉が塗られることはなく、どんなに珍しい名前や造語でも取りこぼしません。
- 登場人物は、主語として読める場所(「太郎は」「山田さんが」など)だけ色が付きます。会話文(「」の中)には色が付きません。
- 造語は地の文で太字になります。
登録は、設定「小説 — エディター」の「項目の追加」から。フォルダーごとに設定できるので、作品ごとに別の人物表を持てます。

よくある質問
Q. 原稿は独自の形式に囲い込まれますか?
いいえ。.jpnov も .jpbook も中身はただのテキストです。どのエディターでも開けますし、青空文庫の注記はこの拡張機能がなくても意味が通ります。
Q. いま書いている原稿からの引っ越しは大変ですか?
本文を .jpnov ファイルに貼り付けるだけです。Word などの装飾(ルビや太字)は引き継がれないので、注記で付け直してください。
Q. 原稿はどこかに送信されますか?
いいえ。原稿は手元のフォルダーに保存されるだけで、この拡張機能が外部へ送ることはありません。
Q. 以前の原稿やこの拡張機能で出力したテキスト、または青空文庫からダウンロードした *.txt を VS Code で開いたら、文字が「�」だらけになりました。
文章はそのまま入っていますので、ご安心ください。右下から開き直すと読めます。
ウィンドウ右下の「UTF-8」をクリックします。

一覧から「エンコード付きで再度開く」(英語で「Reopen with Encoding」)を押して、続けて「JIS」を入力し、「Japanese (Shift JIS)」を選びます。

テキスト出力の既定は、青空文庫と同じ Shift JIS という日本語専用のエンコード(文字コード)です。UTF-8 で出力したいときは、設定「小説 — 組版と出力」で選べます。Shift JIS を使わないなら、jpnov.lint.common.shiftJisSafe をオフにしてください。Shift JIS にない文字の警告が出なくなります。
毎回の選び直しが手間なときは、設定の検索欄に files.autoGuessEncoding と入力し、出てきた項目にチェックを入れてください。以降は、出力したファイルをそのまま開けます。
Q. 電球アイコンのメニューに、✨ マーク付きの「Fix」など見覚えのない項目が出てきます。
それは VS Code 本体に組み込まれている AI 機能(GitHub Copilot)のもので、この拡張機能とは関係ありません。押さなければ何も起こりません。表示そのものを消したい場合は、設定の検索欄に chat.disableAIFeatures と入力し、出てきた項目にチェックを入れてください。AI 関連の表示がまとめて消えます。
Q. 見出しや目次ページは作れますか?
見出しは注記で付けられます(書き方の表をどうぞ)。付けた行はゴシック体の太字になり、字の大きさは変わりません。目次ページはいまのところ作れません。章= 1 ファイルで区切り、.jpbook の並び順がそのまま本の順序になります。
Q. 既定のフォントで作った PDF を、印刷所に入稿したり販売したりしてもいいですか?
はい。既定のフォントは OS 付属の明朝体で、macOS ではヒラギノ明朝、Windows では游明朝です(どちらもないときは無償の Noto Serif JP)。いずれも、成果物の商用利用と PDF への埋め込みがライセンスで認められているので、印刷所への入稿も、頒布・販売もそのままできます。設定で市販のフォントを指定する場合は、そのフォントのライセンスで PDF への埋め込みが認められているかをご確認ください。
Q. 自分は Copilot を使いたいのですが。
.jpnov・.jpbook では既定で無効にしていますが、設定の github.copilot.enable を上書きすれば戻せます。有効にする場合は、投稿先や賞の規約をご確認ください。
ライセンス
このプロジェクトは MIT ライセンスで公開されています。詳しくは LICENSE をご覧ください。