本文部分の書き方

本文部分の記述方法
@start-body; の次行から、@end-body; またはファイル終端までが本文です。

ここに、本文の文字をそのまま書いていきます。
本文に関して、必要な指示があれば、任意の位置でコマンドを記述します。

※以下の他に、設定部分と本文部分で共通となる記述方法も含みます。

@start-body本文の開始。

@start-body; の後は、行末までスキップされるので、1行で記述してください。
@start-body; と同じ行に本文は置けません。
@end-body本文の終了。

ファイルの途中で本文を終了させたい場合や、ファイル末尾の改行を改段落として本文に含めたくない場合などは、@end-body; を記述してください。

@end-body; 以降の内容は無視されます。
@end-body; は、行頭に置く必要はありません。文の途中でも記述できます。
改行改行は、基本的に改段落になります。
本文を次の行に移動したい場合は、改行だけ行ってください。

改行を改段落として扱いたくない場合は、行末に \ を記述してください。

※行末にコマンドがある場合は、次の改行を改段落として扱うか扱わないかが問題になるので、注意してください。
※改ページなどの一部のコマンドでは、コマンドの直前の改行が改段落として扱われない場合があります。
コマンド本文中にコマンドを実行する場合、@ と「アルファベット小文字、数字、'-'」でコマンド名を指定してください。
コマンド名は、アルファベットの大文字小文字を区別します。

コマンドは、基本的に本文内の好きな位置に記述することができますが、一部のコマンドでは、行の先頭 (行中に本文文字がない状態) で記述する必要があります。

'@' を本文の文字として扱いたい場合は、\@ と記述してください。
コマンドの値コマンドに値を指定する必要がある場合は、コマンド名の後に [] を記述し、その中に値を書きます。
値がない場合や、デフォルト値を適用したい場合は、[] 内を空にするか、[] を付けずに ; で終了します。

  • [] 内では、空白は通常文字として扱われるので、余分は空白は入れないでください。
  • [] の途中で改行を入れることはできません。
    途中で行を区切りたい場合は、改行の前に \ を記述して、次の行に繋げてください。
  • [] 内では、$u、$c を使って文字を指定することもできます。
    ただし、$c (CID) は、一部のコマンドのみ有効です。

@cmd[val...]
@cmd[val...\
...]
@cmd[]
@cmd;
コマンドの終了コマンドは、任意で ; によって終了することができます。
コマンド名の後、または [] の後に ';' を記述できます。

※ @command[] の形で終わっても良いが、@command の形では終了できません。

[] で終了した場合と、';' で終了した場合では、直後の改行の扱いが異なります。

[] で終了した場合は、直後の改行は改段落として扱われますが、';' で終了した場合は、直後の改行は無視されます。

例えば、改ページなどで、1行中にコマンドだけを記述したい場合は、直後の改行を改段落にしたくない場合があります。
その場合は、コマンドを ';' で終了させると、直後の改行を無視させることができます。
行頭の字下げ段落行頭の字下げは、デフォルトで、なしです。

段落行頭に1文字の字下げが必要な場合は、全角空白で空けてください。
段落行頭が などの始め括弧であれば、基本的に字下げをせずに行頭に記述します。
縦書き 90 度回転縦書き時、連続する ASCII 文字 (半角英数字や記号) は、常に、全体を横書きにした上で、それを時計回りに 90 度回転して縦書きにする形になります。

もしも、2〜3桁の数字などを縦中横にしたい場合は、@ty コマンドを使う必要があります。
特殊文字
本文中、またはコマンドの [] 内では、以下の特殊文字を記述できます。

$ の文字は常に特殊文字として使われるので、本文の通常の文字として扱いたい場合は、\$ としてください。
※ '$' の後の1文字のアルファベットは、小文字のみです。

$uXXXX;Unicode のコード値を指定します。
XXXX で、16進数の数値を指定してください。桁数は自由です。
大文字小文字は区別しません。
$cN;CID 番号で文字を指定します。
N で、10進数の数値を指定してください。桁数は自由です。

文字のフォントが CID フォントでない場合は、GID (グリフインデックス) として扱います。

※組版において、指定された CID の文字の種類は考慮しません。常に漢字と同じ扱いになります。
※PDF 出力時、PDF ビューア上で、この文字をテキストとして正しくコピーできません。
※一部のコマンドの [] 内では使えません。
 ルビなど、ページ上に表示する文字として指定する時は使えますが、ファイルパスなど、通常の文字列として扱う時は使えません。
異体字 (Unicode)
$uXXXX; を使うと、Unicode で異体字を指定することができます。
(UTF-8 テキスト内で直接記述された異体字も有効です)

「異体字」とは、漢字や記号などにおいて、意味は同じであるが、字体が微妙に異なる文字です。

Unicode で異体字を指定するには、基本となる文字を記述した後に、「異体字セレクタ」という、各異体字ごとに異なる1文字のコードを置く必要があります。

異体字を通常のテキストエディタで入力するには、異体字用のツールが必要になりますが、txtnovel では、$uXXXX; を使うと、手動で異体字セレクタを記述することができます。

異体字の一覧は、こちらにあります。
http://www.unicode.org/ivd/
バージョンをクリックした後、ファイルリストの中から PDF ファイルをダウンロードできます。
(IVD_Charts_Adobe-Japan1.pdf が漢字の異体字のリストです)

または、「異体字 一覧」などで検索すると、異体字をリスト化したサイトがあります。

# ベースの文字が U+3402 で、異体字セレクタが U+E0100 の場合 (CID+13698)
# U+E0100 は通常のベース文字と同じ
$u3402;$uE0100;

# 同じベース文字で別の異体字があれば、セレクタが異なる (CID+13697)
$u3402;$uE0101;

コマンドの終わり方
コマンドの書き方は、以下の5通りあります。

# 値あり
@cmd[<値>]
@cmd[<値>];
# 値なし
@cmd[]
@cmd[];
@cmd;

値があるかないか、また、; で終わるかどうかの2点によって分けられます。
[] 内に何も記述しなければ、値が指定されていないのと同じなります。

なお、@cmd[]; と @cmd; は実質同じなので、わざわざ @cmd[]; のように書く必要はありません。

[] で終わるか、';' で終わるかによって、直後にある改行を改段落にするか、無視させるかの2通りを選択できます。
ただし、コマンドが文中にある場合は、どれを使っても変わりありません。
# @bs[] で値をなしにすると、傍線を解除する。
# 改行は改段落にしたいので、[] で終わる。
@bs[line]フォントサイズ変更@bs[]

# @bs; 直後の改行が無視されるので、次の行と繋がってしまう。
@bs[line]フォントサイズ変更@bs;
ここは同じ行になる

# @np; の直後の改行は無視したい。
@np;
改ページ

改ページなど、ページ全体に関わるようなコマンドや、本文の行と関係なく、コマンドだけを1行に記述したい場合は、直後の改行を本文の改段落として扱いたくないので、; で終了させます。

逆に、本文中に文字の属性を変えたりするような、文中に使うコマンドでは、直後の改行を本文の改段落として扱いたいので、コマンドに値がない場合でも、常に [] で終了させる必要があります。
';' で終了してしまうと、直後の改行が無視されて、本文が次の行と繋がってしまうので、注意してください。