# 本文 書式仕様書

『教授学習心理学研究』投稿用の本文（問題と目的〜引用文献）について，
採択済み論文（②本文.docx，日高（2003）実践に関する漢字書字論文）を実測して
得られた書式仕様。`build_body.js` は本仕様書の数値をもとに実装されている。

作成日：2026年時点の実測に基づく
対応スクリプト：build_body.js
対応原稿ファイル：任意のMarkdownファイル（例：本文_原稿_full.md）
前処理スクリプト：convert_headings.py（現在は原則不要。詳細は8節を参照）

---

## 0. 表紙・要約（①④⑤）との違い

「表紙_要約_書式仕様書.md」で扱った①④⑤とは，**余白・段組・フォントが
異なる**。本文は投稿規定第9条の指定に厳密に従っている。

| ファイル | 用紙 | 余白（上下／左右） | 段組 | フォント |
|---|---|---|---|---|
| ①④⑤（表紙・要約） | A4 | 2cm／2cm | 単一 | ヒラギノ角ゴシック／游教科書体（Mac系） |
| ②本文 | A4 | 3cm／**5.5cm**（投稿規定第9条） | 単一（投稿時）※印刷時2段組 | MS明朝／MSゴシック（Windows系） |

本文と表紙・要約とでフォント系統がまったく異なる点に注意。
これは，おそらく執筆者が本文をLibreOffice等（Windows系フォント名）で，
表紙・要約をMacのWord/Pages（Mac系フォント名）で，別々に作成したためと
推測される。

---

## 1. ページ設定

DXA単位（1cm ＝ 約567 DXA，1440 DXA ＝ 1インチ）。

```
用紙　　：A4（11906 × 16838 DXA）
余白　　：上下 1701（3cm）／左右 3118（5.5cm）
ヘッダー：0（なし）
フッター：0（なし）
文字グリッド：type=default, linePitch=360, charSpace=0
行番号　：1行ごとに連続採番（countBy=1, restart=continuous, distance=283）
```

行番号は投稿時の査読用と推測される（最終掲載版には出ない）。

---

## 2. フォント

| 内部名 | フォント名（ascii/eastAsia） | 用途 |
|---|---|---|
| FONT_BODY | Times New Roman／MS 明朝 | 本文・引用文献・注 |
| FONT_HEADING | MS Gothic／MS ゴシック | 見出し（全レベル共通） |

サイズ：本文・見出しとも **10pt**（sz=20）。注一覧のみ**9pt**（sz=18，
実測に基づく数値ではなく，本文よりやや小さくする一般的な学術書式の
慣例として本スクリプト側で採用した値。実測データなし）。

---

## 3. 見出し

採択論文では，「問題」「方法」「結果」「考察」のような大見出しと，
「事前調査」「目的」「対象」のような小見出しが，**まったく同一の書式**
（MSゴシック・10pt・太字なし・字下げなし）で統一されていた。番号も
振られていない。階層は文脈（本文の並び）だけで示される。

```
段落書式：字下げなし，行間固定12pt（line=240, lineRule=exact）
文字書式：MSゴシック，10pt，太字なし
```

`build_body.js`では，Markdown原稿の`#`の数（1個でも6個でも）に関係なく，
すべて同一の見出し書式で出力する。

### 3.1 見出し記法の自動判別（2種類）

見出しは，次の2種類の記法のどちらで書かれていても自動判別される。

1. `#`記法（推奨）：`# 見出し`，`## 小見出し`
2. 単独行の`**太字**`：`**見出し**`

ただし，(2)のうち，行の中身が`Table`または`Figure`で始まるもの
（例：`**Table 3**`，`**Table 2　収録・実施年度別の授業回**`）は，
図表キャプションのプレースホルダーとみなし，見出しに変換しない
（本文段落内の太字テキストとしてそのまま出力される）。

上記いずれの記法も使われていない見出し（記号のない単独行。例：
以前の結果節ドラフトにあった「作業命題１」等）は自動判定できない。
該当ファイルは，見出し行の先頭へ手作業で`# `を追加する必要がある。

### 3.2 名前付き段落スタイル（Wordスタイルパネル対応）

見出し・本文・引用文献・注のそれぞれに，Wordの「スタイル」パネルに
表示される名前付き段落スタイルを付与している（2026年8月，作業指示に
基づく仕様追加）。ONLYOFFICE等，スタイル名が定義されていないと
書式の一括変更ができないアプリケーションへの対応。

| 内部ID | Word上の表示名 | 用途 |
|---|---|---|
| XioHeading1 | 見出し1 | 見出し |
| BodyText | 本文 | 本文段落 |
| Citation | 引用文献 | 文献リスト |
| Note | 注 | 脚注一覧 |

フォントを変更したい場合，`build_body.js`冒頭の`FONT_BODY`・
`FONT_HEADING`の2箇所を書き換えて再生成すれば，スタイル定義・
本文中の全段落の両方に自動的に反映される。

**実装上の注意（既知の落とし穴）**：docxライブラリ（`docx`パッケージ）
は，`Heading1`というスタイルIDを組み込みスタイル用に予約している。
独自のスタイルをこのIDで定義しようとすると，同一IDのスタイル定義が
`styles.xml`内に2つ生成され，Word側でどちらが優先されるか不安定になる
（ライブラリのバージョンによっては警告なく重複出力される）。このため，
本スクリプトでは見出しスタイルのIDを`XioHeading1`（衝突しない独自名）
とし，表示名（`name`プロパティ）だけを「見出し1」としている。今後
スタイルを追加する場合も，Wordの予約スタイルID（Heading1〜9，Normal，
Title等）とは別のIDを使うこと。

---

## 4. 本文段落

```
段落書式：一字下げ（firstLine=227 twips），両端揃え，行間固定12pt
文字書式：Times New Roman／MS明朝，10pt
```

Markdown原稿では，1行＝1段落として扱われる（空行が段落の区切り）。
複数の原稿ファイルを指定した場合は，指定順に連結されてから
1行＝1段落として処理される（詳細は8節を参照）。

---

## 5. 引用文献リスト

「引用文献」という見出し以降，次の見出しが来るまでの各行を，
それぞれ独立した文献エントリとして，ぶら下げインデント書式で
出力する。

```
段落書式：ぶら下げインデント（hanging=567, left=567），両端揃え
文字書式：本文と同一（Times New Roman／MS明朝，10pt）
```

誌名等の斜体（`*Journal of Educational Research*`のようなMarkdown表記）
は自動的にイタリック体に変換される。

---

## 6. 脚注（簡易方式）

Word標準の脚注機能は使用せず，簡易的な方式を採用している
（2026年，作業指示に基づく仕様決定）。

- 原稿中の `[^id]` インライン参照 → 本文中では**上付き数字**に変換される。
  番号は，原稿ファイル中に脚注定義がどこにあるかに関わらず，
  **本文中に最初に登場した順**で1, 2, 3…と振り直される。
- 原稿中のどこかにある `[^id]: 本文` という行が，脚注定義として
  収集される（画面表示はされず，本文フローから除去される）。
- 収集された脚注は，本文の**最後**（引用文献の後）に，自動的に
  「注」という見出しと，`n) 本文` の形式の番号付きリストとして
  追加される。

```
「注」見出し：見出し書式と同一
注の本文　　：ぶら下げインデント（hanging=567, left=567），9pt
```

**注意**：この脚注の位置（末尾に自動配置）・書式（9pt，ぶら下げ
インデント）は，採択論文に脚注の実例がなかったため，実測値ではなく，
一般的な学術書式の慣例に基づいてスクリプト側で決めた仮の仕様である。
実際の掲載論文で脚注の体裁が確認できた場合は，本仕様書とスクリプトを
更新すること。

---

## 7. インライン書式（Markdown記法との対応）

| Markdown記法 | 変換後 |
|---|---|
| `**太字**` | 太字 |
| `*斜体*` | 斜体 |
| `[^id]` | 上付き通し番号（脚注参照） |
| `<span style="text-decoration:overline">ru</span>` | r̅u̅（結合文字による上線，見出し・本文・引用文献・注のすべてで有効） |

---

## 8. Markdown原稿ファイルの前処理（convert_headings.py）※現在は原則不要

**2026年8月の更新により，`build_body.js`自体が`#`記法と単独行の
`**太字**`の両方を自動判別できるようになったため（3.1節），
このスクリプトによる事前変換は基本的に不要になった。**
`build_body.js`に原稿ファイルをそのまま渡してよい。

以下は，変換スクリプト単体の記録として残す（見出し記法の統一状況を
事前に確認したい場合や，変換結果を目視で確認してから使いたい場合に
利用できる）。

既存の一部原稿ファイル（例：本文_v3.9.md）では，見出しが`#`ではなく
**単独行の`**太字**`**として書かれている（例：`**問題と目的**`）。
他のスクリプト（build_body.js等）と同様，入力ファイルをコマンドライン
引数で指定する。

```bash
# 出力ファイル名を省略（「元のファイル名_見出し変換済み.md」が自動生成される）
python3 convert_headings.py 本文_v3.9.md

# 出力ファイル名を明示的に指定する場合
python3 convert_headings.py 本文_v3.9.md 本文_原稿_full.md
```

変換ルール：

- 行全体が`**...**`で囲まれている場合 → `# ...`（見出し）に変換
- ただし，`**Table 1**`のように**"Table"＋数字のみ**の行は，
  図表プレースホルダーとみなし，変換せずそのまま残す
  （本文段落内の太字テキストとして扱われる）
- 文の途中に`**強調**`が含まれるだけの行（見出しではなく地の文の
  一部としての太字）は，全体が`**`で囲まれていないため，
  自動的に見出し変換の対象外となる

**既知の制限**：この変換スクリプトは`本文_v3.9.md`用に作成した
簡易版であり，他の原稿ファイル（`結果節_v6.1.md`等，`# `記法を
最初から使っているファイル）には変換不要。ファイルごとに見出し
記法が統一されていない場合は，個別に確認すること。

---

## 9. ページ数の見積もりについて

2026年8月の作業指示（作業指示ファイル「XIO論文_v1　修正対応一覧」
No.12）にあった「投稿規定の書式でのページ数試算」に対応するため，
本スクリプトで生成したdocxをLibreOffice等でPDF変換し，ページ数を
確認する運用を想定している。

**注意（作業指示より）**：ONLYOFFICE・LibreOfficeの禁則処理は
Wordと異なるため，行の折り返し位置が実際の投稿時と若干異なる
可能性がある。本スクリプトは，**刷り上がり2段組の1段に相当する
ページ数の概数を把握する**目的には十分だが，最終的な精密な
ページ数確認は，実際の投稿環境（学会指定の投稿システムやWord）で
行うことが望ましい。

参考：本文のみ（Table等の図表ページを除く）で16ページ生成された
場合，刷り上がり2段組換算では概ね8頁相当となる（16 ÷ 2）。
投稿規定の上限（10頁，資料等含む場合15頁）との比較に用いる。

---

## 10. 未検証・今後の課題

- **実際の脚注書式**：本仕様書6節の脚注書式は仮のものであり，
  採択論文での実例による検証が済んでいない。
- **図表ページの挿入位置・書式**：Table／Figureは投稿規定上，
  本文とは別ファイル（③図表等）として提出するため，本スクリプトは
  本文中に図表そのものは含めない。「（Table 3）」のような本文参照は
  Markdown原稿にそのまま書けば，通常の本文段落として出力される。
- **見出し番号の付与**：採択論文（漢字書字）・本文_v3.9.md原文とも
  見出しに番号を振っていないため，本スクリプトも番号なし。もし
  番号付き見出し（「1.」「1.1」等）が必要になった場合は別途対応が
  必要。
- **①④⑤（表紙・要約）への名前付きスタイル未適用**：本文（②）には
  3.2節の名前付きスタイルを適用済みだが，`build_titlepage_abstract.js`
  （①表紙・④和文要約・⑤英文要約）は未対応（PagesまたはWordで
  手作業により短時間で作成できるため，2026年8月時点では優先度低として
  対応を見送っている）。今後，自動化したい場合は同様の手法で対応可能。
