mcpField
O
officecli-academic-paper

officecli-academic-paper

github.com/iofficeaiドキュメント32.7k106 回インストール1 日前に更新
リポジトリ

officecli-academic-paper について

officecli-academic-paperは、officecliで学術論文のDOCXを作成するためのスキルです。投稿規定に沿う執筆者向けに、officecli-docxを基盤として引用形式、数式、動的な相互参照、参考文献の書式を扱います。

主な機能

  1. 01APA、Chicago、IEEE、MLAの引用ガイド
  2. 02数式と相互参照のワークフロー
  3. 03フィールドによる図表番号
  4. 04抄録、キーワード、所属のレイアウト
  5. 05ジャーナル向け段組み

活用シーン

  1. 01指定された引用形式で論文を整える
  2. 02数式と参考文献を含む論文の作成
  3. 03番号付き図表を含むジャーナル文書の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/iofficeai/officecli --skill officecli-academic-paper

インストール後、Claude Code で/officecli-academic-paperを入力して読み込まれたか確認します。

詳細

OfficeCLI 学術論文スキル

このスキルは officecli-docx の上に重ねられたシーン層です。 docx の基本ルール(スタイル構成、見出し階層、シェルのクオート、改ページ規則、ライブ PAGE フィールド、Delivery Gate、レンダラーの癖)はすべて継承されており、ここで改めて説明することはありません。このファイルでは、学術論文に必要な追加事項のみを扱います。具体的には、引用スタイル、数式、SEQ / PAGEREF による相互参照、多段組みのジャーナルレイアウト、参考文献のぶら下げインデント、要旨・キーワード・所属の各ブロックです。

docx の基本ルールでカバーされている内容については、本文中で → see docx v2 §X と示しています。まだ読んでいない場合は、先に docx v2 を読んでください。

セットアップ

officecli がない場合:

  • macOS / Linux: curl -fsSL https://d.officecli.ai/install.sh | bash
  • Windows (PowerShell): irm https://d.officecli.ai/install.ps1 | iex

officecli --version で確認してください(PATH が反映されない場合は新しいターミナルを開いてください)。インストールに失敗した場合は、https://github.com/iOfficeAI/OfficeCLI/releases からバイナリをダウンロードしてください。

⚠️ ヘルプ優先ルール

このスキルは、学術論文が何を必要とするかを教えるものであり、すべてのコマンドフラグを網羅するものではありません。 プロパティ名、列挙値、フィールドの指示が不確かな場合は、推測する前にヘルプを確認してください。

officecli help docx                          # All docx elements
officecli help docx <element>                # Full schema (e.g. section, equation, field, footnote)
officecli help docx <element> --json         # Machine-readable

ヘルプはインストール済みの CLI バージョンに固定されています。このスキルとヘルプの内容が食い違う場合は、ヘルプを優先してください。 本ファイル内のすべての --prop X= は officecli help docx <element> と照合して確認済みです。後のバージョンでヘルプがプロパティを追加・改名している場合は、ヘルプを信頼してください。

継承とメンタルモデル

docx v2 を継承します。 先に skills/officecli-docx/SKILL.md を読んでいることを前提としています。このスキルでは、段落の追加、スタイルの設定、表の作成、画像の挿入、TOC / フッター / ヘッダーの管理、強制改ページ、Delivery Gate の実行方法を理解していることを前提としています。これらに不慣れな場合は、先に docx v2 を別のセッションで確認してから進めてください。

シェルと実行の規律

シェルのクオート、段階的な実行、$FILE の規則 → docx v2 の §Shell & Execution Discipline を参照してください。ここでも同じルールをそのまま適用します。[N] を含むパスはクオートし、$ を含む値(本文中の $2.8B や @ を含む DOI など)は必ずシングルクオートで囲み、実行可能な例で \$ \t \n を手で書かず、コマンドは一度に一つずつ実行してください。以下の学術論文の例では、シェル変数として $FILE を使用します(FILE="thesis.docx")。

ここでいう「学術的」の定義(同一性)

学術論文とは、学術的な層を備えた docx のことです。具体的には、検証可能な引用、正確な数式、常に同期される相互参照、整形された参考文献リストを備えます。docx の基本ルールはそのまま適用され、学術的な要素として次の 6 つの違いが加わります。

  1. 引用スタイルは契約です。 APA / Chicago / IEEE / MLA はそれぞれ、著者の表記、日付の位置、参考文献リストの順序、本文中の引用マーカーの形式を定めています。最初に一つ選んでください。以降の判断(ぶら下げインデント、脚注か括弧内引用か、[1] か (Smith, 2024) か)はすべてそれに従います。
  2. 数式は第一級のコンテンツです。 本文中のインライン oMath、独立したブロックとしての表示用 oMathPara、そして任意で付与する番号を扱います。
  3. 図と表は自動採番されます。 SEQ Figure / SEQ Table フィールドが数を数え、PAGEREF が「図 2 参照」をそのライブのページ番号にリンクします。
  4. 参考文献はぶら下げインデントを使います(1 行目は左端揃え、続く行は字下げ)。1 行目インデントではなく、左インデントだけでもありません。ぶら下げです。
  5. 要旨・キーワード・所属のブロックは、1 ページ目の三点セットです。 マーケティング的な表紙ではありません。ブロック形式の要旨で、1 行目インデントや装飾は付けません。
  6. 多段組みレイアウトは IEEE / ACM / Nature など多くのジャーナルで使われます。要旨は 1 段組み、本文は 2 段組みです。
逆方向の引き継ぎ:docx に戻るべき場合

ホワイトペーパー、政策提言書、技術報告書、人事テンプレートなど、発表先や引用スタイルを伴わない文書は、docx v2 にとどめてください。このスキルを使うのは、文書が次のうち少なくとも 2 つを含む場合のみです: 引用スタイルに基づく参考文献、数式、SEQ/PAGEREF による相互参照、多段組み、要旨とキーワードのブロック。

ワークフロー — 5 つの動詞

  1. 投稿先の仕様を確認する。 APA 7 / Chicago 17 / IEEE / MLA 9 / 学術誌固有の規定。行間、フォント、引用形式、参考文献の並び順など、後続のすべてがこの一つの決定から導かれます。
  2. セクションを計画する。 要旨 → キーワード → はじめに → 方法 → 結果 → 考察 → 結論 → 参考文献。目次を作るかどうかを決めるため、見出しの数を見積もります(見出しが 3 つ以上なら目次を追加します。docx v2 §目次 を参照)。
  3. スタイルを先に設定する。 Heading1 / Heading2 / Heading3 / Caption / AbstractTitle / Bibliography。内容を書く前にすべてのスタイルを定義します(→ docx v2 §段落とスタイル を参照。同じ原則で、省略すると同じ失敗が起きます)。
  4. 本文を順番どおりに組み立てる。 表紙・タイトルブロック → 要旨 → キーワード → 目次(必要な場合)→ 本文セクションを読む順に → SEQ キャプション付きの図・表 → 参考文献 → 脚注は最後に段落パスで追加します。
  5. QA — 納品ゲート。 docx v2 のゲート 1〜3 を継承し、その後に下記の学術向けゲート 4〜5 を追加します。

要件(docx v2 の上に載る学術的最低基準)

docx v2 §出力物の要件 のすべてが適用されます。これに加えて、学術論文は以下の追加規則を必ず満たさなければなりません。

組版と行間(投稿先に応じて調整)
  • フォント。 本文は Times New Roman 11〜12pt(既定)、または投稿先で指定されたもの(IEEE は Times 10pt の 2 段組、APA は Calibri 11pt を許容)。本文フォントは全体で統一し、見出しに装飾的なフォントは使いません。
  • 見出しの階層。 H1 = 20pt 太字、H2 = 14pt 太字、H3 = 12pt 太字斜体、本文 = 11〜12pt。(docx v2 と同じ数値です。学術論文は Word の既定値に頼ることがないため、ここで改めて示します。)
  • 行間。 APA 7 = 2 倍(ダブルスペース)。Chicago / IEEE / ほとんどの学術誌 = 1.5 倍。1.15 倍を下回らないこと。本文段落と参考文献に設定します。
  • 余白。 投稿先の指定がない限り、全辺 1 インチ(1440 twips)。(製本のために左 1.25 インチを求める学術誌もあるため、仕様を確認してください。)
要旨・参考文献・キャプションの配置
  • 要旨はブロック形式です。 firstLineIndent は設定しません。段落間は spaceAfter=12pt で区切ります。view issues が要旨の段落について「本文段落に字下げがない」と報告しても、それは誤検出なので無視してください。
  • 参考文献はぶら下げインデントを使います。 各文献は 1 段落で、indent=720 hangingIndent=720 とします(左インデント 0.5 インチ、1 行目はその分だけ逆方向に字下げ)。1 行目は左端に揃え、折り返し行は著者名の下に揃えます。
  • 図のキャプションは図の下に置きます。 表のキャプションは表の上に置きます。これは学術に不慣れな人が最も間違えやすい規則です。APA、Chicago、IEEE、MLA はいずれもこの点で一致しています。
  • 引用の往復確認。 本文中のすべての引用キーは、参考文献リストのいずれかの項目に対応していなければなりません。納品ゲート 4 で検証します。
  • SEQ の存在。 番号付きの図または表を含むすべての論文は、ライブの SEQ Figure / SEQ Table フィールドを持たなければなりません(途中で図を挿入すると番号がずれてしまう、「Figure 1」といった直接入力のテキストは不可です)。納品ゲート 5 で検証します。
表紙・1 ページ目のブロック

学術論文の表紙は、プロフェッショナル向けの表紙とは異なります。最低限必要な要素は、タイトル(中央揃え、20〜22pt 太字)、著者名、所属、投稿先または学術誌名、日付、要旨、キーワードです。docx v2 §納品時の視覚的基準 にある「60% 充填」規則は引き続き適用されます。3 行だけの表紙に半ページの余白が残っていれば不合格です。1 ページ目の作成手順は、下記の §要旨・キーワード・所属のブロック を参照してください。

セクション番号の規則(スタイル依存 — 機械的に適用しないこと)

学術論文のセクション番号は、リストの自動番号付けではなく見出しテキストの一部として扱います。officecli の numId/listStyle の仕組みは Heading1 を再利用すると不安定になるため、接頭辞は手で書きます。ただし接頭辞の形式はスタイルによって異なるため、4 つすべてに同じ形式を使わないでください。

スタイルH1 の形式H2 の形式例
APA 7番号なし・中央揃え太字番号なし・左揃え太字Introduction / Methods(中央揃え)
Chicago"N. Title" 左揃え"N.M Title"1. Introduction, 2.1 Policy Formation
IEEE"N. TITLE" 全大文字+ローマ数字A. Subtitle タイトルケースI. INTRODUCTION, II. RELATED WORK, A. Datasets
MLA 9番号なし・左揃え太字同じLiterature Review(接頭辞なし)

APA 7 の L1 見出しは中央揃え・太字・番号なしです。L2 は左揃え太字、L3 は左揃え太字斜体、L4/L5 はランイン形式です。APA の見出しに 1. / 2. を付けないでください。それは Chicago/IEEE の慣習です。IEEE では全大文字とローマ数字(I. INTRODUCTION)を使い、各セクション内では A./B./C. の小見出し(タイトルケース)を使います。アラビア数字の本文セクションは Chicago スタイルのみです。

4 スタイル共通の例外: 参考文献 / Bibliography / Works Cited / 謝辞は、スタイルに関係なく番号を付けません。N. の接頭辞は省略してください。

クイックスタート — 最小限の APA 論文

FILE="paper.docx"
officecli create "$FILE"
officecli open "$FILE"
officecli set "$FILE" / --prop defaultFont="Times New Roman"
officecli add "$FILE" /body --type paragraph --prop text="Remote Work and Team Cohesion" --prop align=center --prop size=20pt --prop bold=true --prop spaceAfter=24pt
officecli add "$FILE" /body --type paragraph --prop text="Alice Chen" --prop align=center --prop size=12pt
officecli add "$FILE" /body --type paragraph --prop text="Department of Psychology, Stanford University" --prop align=center --prop size=11pt --prop spaceAfter=24pt
officecli add "$FILE" /body --type paragraph --prop text="Abstract" --prop align=center --prop size=14pt --prop bold=true --prop spaceBefore=12pt --prop spaceAfter=6pt
officecli add "$FILE" /body --type paragraph --prop text="This study examines remote-work adoption on team cohesion across 18 months..." --prop size=12pt --prop lineSpacing=2x --prop spaceAfter=12pt
officecli add "$FILE" /body --type paragraph --prop text="Keywords: remote work, team cohesion, psychological safety" --prop italic=true --prop size=11pt --prop spaceAfter=18pt
officecli add "$FILE" /body --type paragraph --prop text="1. Introduction" --prop style=Heading1 --prop size=20pt --prop bold=true --prop spaceBefore=18pt --prop spaceAfter=12pt
officecli add "$FILE" /body --type paragraph --prop text="Remote-work research (Smith, 2024) has expanded since 2020..." --prop size=12pt --prop lineSpacing=2x --prop firstLineIndent=720
officecli add "$FILE" /body --type paragraph --prop text="References" --prop style=Heading1 --prop size=20pt --prop bold=true --prop spaceBefore=18pt --prop spaceAfter=12pt
officecli add "$FILE" /body --type paragraph --prop text="Smith, J. (2024). Remote work and cohesion. Journal of Applied Psychology, 109(3), 412-430." --prop size=12pt --prop lineSpacing=2x --prop indent=720 --prop hangingIndent=720
officecli add "$FILE" / --type footer --prop type=default --prop align=center --prop size=10pt --prop field=page
officecli close "$FILE"
officecli validate "$FILE"

10 行程度の骨組みです。実際の論文では、本文の段落、参考文献のエントリ(それぞれ indent=720 hangingIndent=720 の組み合わせを使用)、キャプション付きの図表、そして Heading1 が 3 つ以上ある場合は目次を追加していきます。クイックスタートは問題なく検証されます。以下のセクションで各項目を詳しく説明します。

引用スタイルのレシピ

主要な 4 つのファミリーがあります。プロジェクト開始時に 1 つを選択すると、以降のすべての判断がそれに従います。スタイル別の判断表:

スタイル本文中の引用形式参考文献リストの順序本文の行間脚注
APA 7(Smith, 2024) または Smith (2024)著者名のアルファベット順2 倍(ダブル)まれ(内容注のみ)
Chicago 17(注・文献方式)上付きの脚注番号著者名のアルファベット順1.5〜2 倍主要(完全な引用は脚注に記載)
IEEE[1], [2], ..., [N]初めて引用された順1.15〜1.5 倍、2 段組まれ
MLA 9(Smith 412) ページ番号著者名のアルファベット順、「Works Cited」2 倍まれ

4 スタイル共通のデフォルト: 参考文献リストの段落には indent=720 hangingIndent=720(ぶら下げインデント 0.5 インチ)を使用します。Heading1 が 3 つ以上ある場合はライブの目次を追加します(→ docx v2 §目次を参照)。updateFields=true を設定し、Word 互換のフィールドエンジンで更新されるまで目次のページ番号は未計算として報告します。

APA 7(社会科学 — 心理学、教育学、経営学)
  • 本文中: (Author, Year) または叙述的な引用の場合 Author (Year)。直接引用にはページ番号が必須です: (Smith, 2024, p. 15)。著者が 3 名以上の場合は、初回の後 (Smith et al., 2024) とします。
  • 参考文献リストの順序: 筆頭著者の姓によるアルファベット順。タイトルの表記: 論文タイトルは文頭大文字のみ(sentence case)、雑誌名はタイトルケース(斜体)。
  • 参考文献の形式: Author, A. A., & Co-Author, B. B. (Year). Title of article. Journal Name, Volume(Issue), pages. DOI が利用可能な場合は URL より優先し、doi: 接頭辞ではなく https URL で表記します。
  • すべての箇所をダブルスペース(lineSpacing=2x)にします。抄録と参考文献も含みます。本文の初行インデントは 0.5 インチ(firstLineIndent=720)です。
# Body paragraph with parenthetical citation
officecli add "$FILE" /body --type paragraph --prop text="Remote work adoption accelerated during the pandemic (Kramer & Kramer, 2020)." --prop size=12pt --prop lineSpacing=2x --prop firstLineIndent=720
# Reference entry with hanging indent
officecli add "$FILE" /body --type paragraph --prop text="Kramer, A., & Kramer, K. Z. (2020). The potential impact of the Covid-19 pandemic on occupational status. Journal of Vocational Behavior, 119, 103442." --prop size=12pt --prop lineSpacing=2x --prop indent=720 --prop hangingIndent=720
# DOI hyperlink appended to the reference paragraph
officecli add "$FILE" "/body/p[last()]" --type hyperlink --prop url="https://doi.org/10.1016/j.jvb.2020.103442" --prop text="https://doi.org/10.1016/j.jvb.2020.103442"

検証: officecli query "$FILE" 'paragraph[hangingIndent]' で参考文献の全エントリが返されます。初行インデントがぶら下げインデントの代わりになっている参考文献が 0 件であることを確認してください。

Chicago 17 — ノート・文献目録方式(人文科学 — 歴史、哲学、宗教)
  • 本文中:上付きの脚注番号。最初の脚注に完全な引用を記載(Timothy Brook, The Troubled Empire (Cambridge, MA: Harvard UP, 2010), 142.)。以降は 略式形式(Brook, Troubled Empire, 150.)。
  • 繰り返し引用のルール(Chicago 17 では op. cit. は非推奨):
    • 直前の引用と同じ出典・同じページ → Ibid.
    • 直前の引用と同じ出典・異なるページ → Ibid., 22.
    • 直前ではない繰り返しの引用 → 略式形式(Brook, Troubled Empire, 150.)を使い、op. cit. は使用しない。Chicago 17 では op. cit. を廃止しているため、直前の繰り返しを除き、毎回略式形式を使用する。
  • 文献目録は末尾に置き、第一著者の姓によるアルファベット順("Brook, Timothy.")とし、ぶら下げインデントを使用する。脚注本文は閲覧環境の脚注の既定サイズ(通常 10pt)で表示され、文献目録の項目は 12pt とする。(footnote 要素は text のみを公開しており、脚注ごとにサイズを指定することはできないため、レンダラーの既定値に従う。)
  • 一次資料の多い論文の典型的な区分は、単一の Heading1 Bibliography の下に、2 つの Heading2 Primary Sources と Secondary Sources を置く形式である。書名は脚注と文献目録の両方で斜体にする。
  • Chicago には理系で用いられる著者-年方式の変種もある。会議で Chicago Author-Date が指定されている場合は、APA の手順に切り替え、句読点のみを変更する(著者と年の間にカンマを入れない:(Smith 2024))。
# Body paragraph that will anchor a footnote, then the footnote itself
officecli add "$FILE" /body --type paragraph --prop text="The Ming dynasty's 海禁 policy shaped coastal trade for two centuries." --prop size=12pt --prop lineSpacing=1.5x --prop firstLineIndent=720
officecli add "$FILE" "/body/p[last()]" --type footnote --prop text="Timothy Brook, The Troubled Empire: China in the Yuan and Ming Dynasties (Cambridge, MA: Harvard University Press, 2010), 142."
# Next footnote — shortened form
officecli add "$FILE" "/body/p[last()]" --type footnote --prop text="Brook, Troubled Empire, 150."
# Bibliography section split — primary sources first
officecli add "$FILE" /body --type paragraph --prop text="Bibliography" --prop style=Heading1 --prop size=20pt --prop bold=true --prop spaceBefore=18pt
officecli add "$FILE" /body --type paragraph --prop text="Primary Sources" --prop style=Heading2 --prop size=14pt --prop bold=true --prop spaceBefore=12pt
officecli add "$FILE" /body --type paragraph --prop text="Ming Shilu 明實錄. Taipei: Academia Sinica, 1966." --prop size=12pt --prop indent=720 --prop hangingIndent=720
officecli add "$FILE" /body --type paragraph --prop text="Secondary Sources" --prop style=Heading2 --prop size=14pt --prop bold=true --prop spaceBefore=12pt
officecli add "$FILE" /body --type paragraph --prop text="Brook, Timothy. The Troubled Empire: China in the Yuan and Ming Dynasties. Cambridge, MA: Harvard University Press, 2010." --prop size=12pt --prop indent=720 --prop hangingIndent=720

QA:officecli query "$FILE" 'footnote' の件数 ≥ 本文中の引用件数。

IEEE(工学 — 論文誌、会議論文集)
  • 本文中:[1]、[2]。初出順に番号を振り、アルファベット順にはしない。繰り返しの引用には同じ番号を再利用する。ページ指定には [1, p. 15]、範囲には [1]-[3] を用いる。
  • 参考文献の項目は角括弧付きの番号で始める:[1] A. Smith and B. Jones, "Title," IEEE Trans. X, vol. 5, no. 3, pp. 1-10, 2024, doi: ...。著者名はイニシャルを先頭にし、雑誌名は IEEE の略称一覧に従って省略する(IEEE Trans. Neural Netw.、正式名称は使わない)。
  • 本文は 2 段組とする(後述の §段組を参照)。要旨は見開きの上部に 1 段で配置し、10pt、行間 1.15 倍、通常 200~250 語とする。
  • 本文段落の字下げは 0.2 インチ(firstLineIndent=288 twips ≈ 14pt)とする。2 段組では段幅が狭くなるため、APA の 0.5 インチより小さくする。
  • 節見出しは Roman 数字付きの大文字とする:I. INTRODUCTION、II. RELATED WORK、III. METHOD。小節は A. Datasets、B. Baselines のようにタイトルケースとする。IEEE では 1. Introduction(アラビア数字)を使わないこと。それは Chicago 方式である。
  • 表番号は Roman 数字とする:Table I、Table II、Table III。図番号はアラビア数字のまま(Fig. 1、Fig. 2)とする。recalcFields=seq は両方についてアラビア数字のキャッシュ値を書き込むため、IEEE の Roman 数字の表では、フィールド再計算後に該当する <w:t> のキャッシュ値を手動で Roman 数字に修正するか、アラビア数字のまま残してカバーレターに注記する。
# Body citing reference 1
officecli add "$FILE" /body --type paragraph --prop text="Attention-based anomaly detection has been applied to industrial sensor data [1], [2]." --prop size=10pt --prop lineSpacing=1.15x
# Reference list entry — number in the text
officecli add "$FILE" /body --type paragraph --prop text="[1] A. Smith and B. Jones, \"Attention for anomaly detection,\" IEEE Trans. Neural Netw., vol. 35, no. 2, pp. 412-430, 2024." --prop size=10pt --prop indent=720 --prop hangingIndent=720
officecli add "$FILE" /body --type paragraph --prop text="[2] C. Lee, \"Time-series anomaly survey,\" in Proc. ICML, 2023, pp. 1200-1215." --prop size=10pt --prop indent=720 --prop hangingIndent=720

QA:本文中の最大の [N] は、参考文献一覧の項目数と一致しなければならない。検索:officecli view "$FILE" text | grep -oE '\[[0-9]+\]' | sort -u | tail -5。

MLA 9(文学、言語、文化研究)

APA との違い:本文中の形式は (Author Page) で、カンマなし(例:(Smith 412))。直接引用には必ずページ番号を付ける。参考文献の節の見出しは Works Cited(References / Bibliography ではない)とする。項目は姓によるアルファベット順、ぶら下げインデント、行間 2 倍とし、9 つの「コア要素」をピリオドで区切る:Author. Title. Container, Other Contributors, Version, Number, Publisher, Date, Location.。該当しない要素は省略する。書名は斜体、論文タイトルは引用符で囲む。それ以外の段落設定は APA と同一とする。

数式(OMML:インラインとディスプレイ)

--type equation は LaTeX 風の数式を OMML に変換します。--prop mode= で次の 2 つのモードを選択します。

モードXML表示用途
display(既定)/body の <m:oMathPara>独立した中央揃えブロック番号付き数式、定理の記述
inline段落内の run に追加された <m:oMath>テキストと同じ行に表示本文中の if $x > 0$ のような記述
# Display equation (own paragraph, centered) — explicitly set mode=display for clarity
officecli add "$FILE" /body --type equation --prop mode=display --prop formula="x^2 + y^2 = z^2"
# Display equation with Greek / subscript / integral — verify rendering below
officecli add "$FILE" /body --type equation --prop mode=display --prop formula="\\lambda_1 + \\alpha"
officecli add "$FILE" /body --type equation --prop mode=display --prop formula="\\frac{1}{2\\pi} \\int_0^{\\infty} e^{-x^2} dx"
# Inline equation INSIDE prose — required whenever variables like x_{t+1}, \lambda, etc. appear in a body paragraph:
officecli add "$FILE" /body --type paragraph --prop text="Given the weight " --prop size=11pt
officecli add "$FILE" "/body/p[last()]" --type equation --prop mode=inline --prop formula="W_t"
officecli add "$FILE" "/body/p[last()]" --type run --prop text=" we define the loss..."

数式が プレーンテキストの LaTeX トークンではなく OMML の数式として描画されていることを確認してください。 close の後に次を実行します。

officecli view "$FILE" text | head -20       # λ₁ + α, ∫₀∞, x² must appear as unicode math (verified renders)
officecli raw "$FILE" /document | grep -c '<m:oMathPara'   # ≥ 1 per display equation

本文に lambda_1、x_{t+1}、\alpha などのプレーンテキストのトークンが含まれている場合(paragraph --prop text= で入力し、--type equation --prop mode=inline で囲まなかった場合)、後続のビューアではそのまま ASCII の文字として表示されます。規則:本文中のすべての数学変数・ギリシャ文字・添字は、paragraph --prop text= ではなく --type equation mode=inline を経由させてください。

LaTeX サブセットの落とし穴(必ず守ること):

  1. 区切り記号の内側に添字・上付き文字がある \left(...\right) / \left[...\right] は、パースエラー(Error: cast object … Subscript)になります。外側に添字を付ける(\left(x+y\right)^2)のは問題ありません。通常の (、)、[、] は常に動作し、ディスプレイモードでは OMML が自動的にサイズを調整します。
  2. /body/oMathPara[N] に対する move は、ディスプレイ数式の順序を変更します(包含する段落を移動します)。--before <path> を使うと空の段落が残ることがあるため、きれいに並べ替えるには --index または --after を優先してください。

数式番号 — ネイティブの \eqno はありません。学術誌で標準的なレイアウトは 1 行です。数式は中央、番号は段の右端に右寄せします(Y = A(X) ⊗ X (1))。2 つの段落タブ位置を設定して作成します。段の中央位置に center タブ、段の右端に right タブを設定し、単一の段落で [tab] equation(inline) [tab] (1) のように配置します。中央揃えのディスプレイ数式の後に、別の右寄せの (1) 行を置くことはしないでください。これでは番号が独立した行に分かれてしまい、期待される見た目を再現できない最も一般的な原因になります。

# Tab positions depend on the COLUMN width (twips). Default blank doc = A4, 3.18cm margins
#   → text width = 8300 twips.
#   single column: center tab = 4150, right tab = 8300
#   two columns (default 720-twip gutter): col = (8300-720)/2 = 3790 → center 1895, right 3790
# (other page size / margins: text width = pageWidth - marginLeft - marginRight; recompute.)
officecli add "$FILE" /body --type paragraph                                   # the equation paragraph (say it lands at p[N])
officecli add "$FILE" "/body/p[N]" --type tab --prop pos=4150 --prop val=center
officecli add "$FILE" "/body/p[N]" --type tab --prop pos=8300 --prop val=right
officecli add "$FILE" "/body/p[N]" --type run --prop text=$'\t'                 # tab → jump to center
officecli add "$FILE" "/body/p[N]" --type equation --prop mode=inline --prop formula='Y = A(X) \otimes X'
officecli add "$FILE" "/body/p[N]" --type run --prop text=$'\t(1)'             # tab → jump to right edge, then the number

2 段組みのセクションでは、2 段用のタブ位置(1895 / 3790)を使うだけで構いません。同じ段落で、数式は段内で中央に配置され、(1) は段の右端に配置されます。スキーマは officecli help docx tab で確認できます。

表のセルの tc[N] パスに直接 --type equation を指定しないでください。 これはガードエラー(table cells only accept paragraphs, tables, or SDTs)で拒否されるため、不正な XML は書き込まれません。セル内に数式が必要な場合は、mode=inline を指定して tc[N]/p[1] を対象にしてください。

数式のスキーマの詳細は officecli help docx equation を参照してください。

図、表、相互参照(SEQ + PAGEREF)

2 つの基本要素があり、どちらもネイティブの fieldTypeです(列挙値は officecli help docx field を参照)。seq は自動採番のキャプションカウンターに、pageref は「図 2 は 7 ページを参照」のような後方参照に使います。ネイティブフィールドは評価されていないキャッシュ結果とともに挿入されます。set "$FILE" / --prop recalcFields=seq(後述の §SEQ 番号付け を参照)を 1 回実行すると、文書の順序に従って実際の番号が設定されます。フィールドごとのパッチ適用は不要です。

SEQ自動採番 — 図と表

SEQフィールドは名前(identifier)を持つカウンターです。SEQ Figureは再計算(recalc)のたびに図のカウンターを増やし、SEQ Tableは表のカウンターを増やします。

SEQのキャッシュ値 — すべてのキャプション追加後に1回だけ実行。 新しく追加したSEQフィールドには評価済みのキャッシュ番号がありません。再計算するまで、view textでは#OCLI_NOTEVAL!{SEQ Figure}というセンチネル(およびFormat["evaluated"]=false)が表示されます。フィールドを1つずつ手で修正しないでください。 すべての図・表のキャプションを配置したら、次のコマンドを1回実行します:

officecli set "$FILE" / --prop recalcFields=seq

このコマンドは本文の文書順にSEQ Figure/SEQ Tableフィールドを数え、実際のキャッシュ値(Figure 1 / Figure 2 / Figure 3)を書き込んで、evaluatedをtrueに切り替えます。文書の途中にキャプションを挿入した後は再実行し、番号の整合性を保ってください。(見出し基準の\sや、ヘッダー・フッター内のSEQは、Word自身の再計算に委ねられます。help docx documentを参照してください。)確認はofficecli view "$FILE" textで行い、重複のない昇順の番号が表示されることを確認します。

# Figure with caption BELOW the image. Caption = "Figure <seq>: title" + optional bookmark for cross-ref.
officecli add "$FILE" /body --type picture --prop src=arch.png --prop width=5in
officecli set "$FILE" "/body/p[last()]/r[last()]" --prop alt="Model architecture: attention over time-series sensors"
# Caption paragraph (below the figure, per academic convention)
officecli add "$FILE" /body --type paragraph --prop text="Figure " --prop style=Caption --prop size=10pt --prop italic=true --prop align=center
officecli add "$FILE" "/body/p[last()]" --type field --prop fieldType=seq --prop identifier=Figure
officecli add "$FILE" "/body/p[last()]" --type run --prop text=": Attention-based anomaly detection model."
# Bookmark the caption so other paragraphs can PAGEREF it
officecli add "$FILE" /body --type bookmark --prop name=fig_arch
# (Numbers are filled later by a single `set / --prop recalcFields=seq`, after all captions exist.)
PAGEREF — ブックマークによる相互参照
# Cross-ref paragraph: "see Figure 1 on page X"
officecli add "$FILE" /body --type paragraph --prop text="As shown in Figure 1 (see page " --prop size=11pt --prop lineSpacing=1.5x
officecli add "$FILE" "/body/p[last()]" --type field --prop fieldType=pageref --prop name=fig_arch
officecli add "$FILE" "/body/p[last()]" --type run --prop text=")."
表 — キャプションは上に配置
# Caption first (ABOVE the table), THEN the table
officecli add "$FILE" /body --type paragraph --prop text="Table " --prop style=Caption --prop size=10pt --prop italic=true --prop spaceAfter=6pt
officecli add "$FILE" "/body/p[last()]" --type field --prop fieldType=seq --prop identifier=Table
officecli add "$FILE" "/body/p[last()]" --type run --prop text=": Participant demographics (N=47)."
officecli add "$FILE" /body --type table --prop rows=5 --prop cols=4 --prop width=100%
# ... fill header + rows per docx v2 §Tables
SEQ・PAGEREFフィールドが正しく配置されたかの検証
# At least one SEQ Figure or SEQ Table in the body document part
officecli raw "$FILE" /document | grep -c 'w:instrText[^>]*>[^<]*SEQ'   # expect ≥ 1
officecli raw "$FILE" /document | grep -c 'w:instrText[^>]*>[^<]*PAGEREF' # 0 ok if no cross-refs

ライブフィールドはキャッシュ値を持っており、人がWordでF9キーを押すまで古い表示のままになります。再計算直後は「Figure 1」が1、2、...と表示されることを想定してください。再計算前は、一部のビューアーで0や空白と表示されることがあります。フィールドの有無は、表示される数字ではなくfldCharの存在で判断してください。(→ docx v2 §フィールド / キャッシュ値の確認 を参照)

脚注と後注

脚注(Footnote) — 脚注を参照する段落があるページの下部に表示されます。Chicago Notes-Bibでの出典注記や、どのスタイルでも使える補足説明に使われます。

後注(Endnote) — 文書の末尾(または参考文献の前)に表示されます。脚注の代わりに使う学会もあれば、ページが煩雑になる長い補足説明に使われることもあります。

# Footnote anchored to paragraph N
officecli add "$FILE" "/body/p[3]" --type footnote --prop text="Smith et al. reported similar findings in their 2023 review."
# Endnote — anchored to paragraph N (like footnote); lands at /endnote[@endnoteId=N]
officecli add "$FILE" "/body/p[3]" --type endnote --prop text="Extended derivation of equation (4) is available at the project repository."

どちらもview annotatedの出力では空文字列のラン(r[N] "")として表示されます。これは表示テキストではなく、ランが<w:footnoteReference>というXML要素を持つためです。挿入を確認するにはofficecli query "$FILE" 'footnote'またはofficecli get "$FILE" "/footnotes/footnote[N]"を使います。脚注は段落のインデックスをずらしません。本文が配置された後であれば、任意の順序で追加できます。完全なスキーマはofficecli help docx footnote/officecli help docx endnoteを参照してください。

参考文献セクション

学術論文はすべて参考文献リストで終わります。セクション名はスタイルによって異なります(APA / IEEE / Chicago Author-DateではReferences、Chicago Notes-BibではBibliography、MLAではWorks Cited)。各エントリーは**ぶら下げインデント(hanging indent)**を持つ独立した段落です。

# Section heading — same as body Heading1 (excluded from body numbering by convention)
officecli add "$FILE" /body --type paragraph --prop text="References" --prop style=Heading1 --prop size=20pt --prop bold=true --prop spaceBefore=18pt --prop spaceAfter=12pt
# Each entry: hanging indent 720 twips (0.5"), with indent=720 as the partner (first line flush, wraps indented)
officecli add "$FILE" /body --type paragraph --prop text="Smith, J. (2024). Remote work and cohesion. Journal of Applied Psychology, 109(3), 412-430." --prop size=12pt --prop lineSpacing=2x --prop indent=720 --prop hangingIndent=720
# DOI hyperlink on its own run appended to the entry paragraph
officecli add "$FILE" "/body/p[last()]" --type hyperlink --prop url="https://doi.org/10.1037/apl0001123" --prop text="https://doi.org/10.1037/apl0001123"

検証済み: officecli help docx paragraphに従うと、--prop indent=720 --prop hangingIndent=720が標準のぶら下げインデントの組み合わせです。負の第一行インデント(ind.firstLine=-720)という古い形式は標準ではなく、出力時にスキーマ検証に失敗します。(→ docx v2 §出力時にスキーマ無効 を参照)

ラウンドトリップQA。 本文中の引用マーカー(APAの(Author, Year)、IEEEの[N]、MLAの(Author N))と参考文献リストのエントリー数を照合します。下記の配達ゲート4を参照してください。引用されたキーはすべて解決できる必要があり、リストされたエントリーは少なくとも1回引用されているべきです。

多段組(IEEE ジャーナルの二段組レシピ)

IEEE や多くの工学・物理学系ジャーナルでは、本文を二段組で組み、要旨は一段組で上部に配置します。仕組みとしては、type=continuous と columns=2 を指定したセクション区切りを挿入し、文書の末尾で別のセクション区切りを入れて一段組に戻します。

一段組への復帰手順は省略できません。 これを行わないと、参考文献を含む文書の残りの部分がすべて二段組になってしまいます。これは多段組で最も多い失敗です。

FILE="ieee.docx"
officecli create "$FILE"
officecli open "$FILE"

# 1. Title, authors, affiliation — single-column (the default first section)
officecli add "$FILE" /body --type paragraph --prop text="Attention-Based Anomaly Detection for Industrial Time Series" --prop align=center --prop size=18pt --prop bold=true --prop spaceAfter=12pt
officecli add "$FILE" /body --type paragraph --prop text="Alice Chen, Bob Martinez" --prop align=center --prop size=11pt
officecli add "$FILE" /body --type paragraph --prop text="Department of CS, Stanford University" --prop align=center --prop size=10pt --prop spaceAfter=18pt

# 2. Abstract — still single-column, block-style
officecli add "$FILE" /body --type paragraph --prop text="Abstract" --prop align=center --prop size=12pt --prop bold=true --prop spaceAfter=6pt
officecli add "$FILE" /body --type paragraph --prop text="We present an attention-based model for detecting anomalies in industrial sensor time series..." --prop size=10pt --prop lineSpacing=1.15x --prop spaceAfter=12pt

# 3. Section break + two-column from here on
#    `/section[last()]` resolves to the final section (like p[last()]); an explicit /section[N] also works.
officecli add "$FILE" /body --type section --prop type=continuous
SECTION_COUNT=$(officecli query "$FILE" section --json | jq '.data.results | length')
# After the add, SECTION_COUNT should be 2 — [1] is pre-break, [2] is post-break (2-col body area).
officecli set "$FILE" "/section[2]" --prop columns=2 --prop columnSpace=1cm

# 4. Body — IEEE wants Roman numerals + ALL CAPS section titles (P1.2).
officecli add "$FILE" /body --type paragraph --prop text="I. INTRODUCTION" --prop style=Heading1 --prop size=10pt --prop bold=true
officecli add "$FILE" /body --type paragraph --prop text="Industrial anomaly detection has been studied since [1]..." --prop size=10pt --prop lineSpacing=1.15x --prop firstLineIndent=360

# 5. At the end of 2-column body, ANOTHER section break + revert to single column for references / appendices
# (If you want references in 2-col too, skip step 5 — but most IEEE papers use 2-col for references as well.)
# officecli add "$FILE" /body --type section --prop type=continuous
# Use /section[last()] for the final section, or re-count for an explicit /section[N]:
# officecli set "$FILE" "/section[3]" --prop columns=1

# 6. Footer, close, validate
officecli add "$FILE" / --type footer --prop type=default --prop align=center --prop size=9pt --prop field=page
officecli close "$FILE"
officecli validate "$FILE"

見た目の検証。 officecli view "$FILE" html を実行し、返された HTML を Read して描画結果を確認します。要旨は全幅で、序論以降は二段組で表示されている必要があります。要旨が二つの狭い段に分かれてしまう場合は、最初のセクション区切りが要旨の前に入っているので、位置を移動してください。

セクションインデックスの管理。 add /body --type section を実行するたびに、/body に空の段落が 1 つ(セクション区切りのマーカー)挿入されます。その後のすべての p[N] インデックスは、セクション区切りごとに +1 ずつずれます。セクション区切りは事前に計画しておき、区切りを追加した後は officecli get "$FILE" /body --depth 1 を実行してインデックスを振り直してから作業を続けてください。

セクションの完全なスキーマ(columns、columnSpace、orientation、pageNumFmt、titlePage、lineNumbers)は officecli help docx section で確認できます。

要旨・キーワード・所属の各ブロック

先頭ページのメタデータは、タイトル(中央揃え、20〜22pt 太字)→ 著者名(中央揃え、12pt、複数所属の場合は上付き文字 ^1 ^2)→ 所属(中央揃え、11pt、上付き文字と対応付ける)→ 投稿先・日付 → Abstract の見出し(14pt 太字)→ 要旨本文(ブロック形式、firstLineIndent は設定しない、150〜300 語)→ キーワード行(11pt 斜体)の順に積み上げます。表紙は docx v2 と同じく「60% 以上を埋める」ルールに従います。

# Superscript affiliation markers (multi-institution paper)
officecli add "$FILE" /body --type paragraph --prop text="Alice Chen" --prop align=center --prop size=12pt
officecli add "$FILE" "/body/p[last()]" --type run --prop text="1" --prop superscript=true
officecli add "$FILE" "/body/p[last()]" --type run --prop text=", Bob Martinez"
officecli add "$FILE" "/body/p[last()]" --type run --prop text="2" --prop superscript=true
# Running header (skip on cover via type=first empty header — see docx v2 §headers)
officecli add "$FILE" / --type header --prop type=default --prop align=right --prop size=9pt --prop text="Short Running Title"

Nature 系の二段組要旨は稀です。必要な場合は、要旨の見出しの前に section type=continuous columns=2 を開いてください。100 語未満の短い要旨では、段の長さが揃わなくなります。奇数・偶数ページで異なるヘッダーは高レベル API で設定できます。officecli set "$FILE" /settings --prop evenAndOddHeaders=true を実行し、その後 --type header --prop type=even を指定して偶数ページ用のヘッダーを追加します。ヘッダーの完全なスキーマは officecli help docx header で確認できます。

QA — 納品前ゲート(実行可能)

問題があると想定し、それを見つけることが作業の目的です。 初回の描画結果が正しいことはほとんどありません。完了を宣言する前に、このブロックを実行してください。

�ート 1〜3 — docx v2 から継承

→ docx v2 の §納品前ゲートを参照してください。スキーマ検証、トークン漏れの grep、ライブ PAGE フィールドの構造を確認します。まず docx v2 の�ートブロックをそのままコピーして実行してください。すべてのチェックは成功メッセージを出力する必要があります。

�ート 4 — 引用の往復確認

本文中のすべての引用キーが、参考文献の項目に対応している必要があります。不一致が 1 件でもあれば REJECT です。

# IEEE example (bracketed numerics). Adjust regex for APA (Author, Year) or MLA (Author Page).
CITATIONS=$(officecli view "$FILE" text | grep -oE '\[[0-9]+\]' | sort -u | wc -l)
ENTRIES=$(officecli query "$FILE" 'paragraph[hangingIndent]' --json | jq '.data.results | length')
echo "In-text citation markers: $CITATIONS | Bibliography entries: $ENTRIES"
# REJECT when citations exceed entries (cites without references). Entries > citations is allowed by some venues.
[ "$CITATIONS" -le "$ENTRIES" ] && echo "Gate 4 OK" || { echo "REJECT Gate 4: $CITATIONS in-text markers but only $ENTRIES bibliography entries"; exit 1; }
�ート 5a — SEQ の存在と、キャッシュされた番号が一意であること

番号付きの図または表が 1 つでもある場合、本文にはライブの SEQ フィールドが含まれていなければならず、そのキャッシュ値は昇順の一意な番号を示している必要があります。そうでないと、view text や、キャッシュされたフィールドを再計算しない後続のビューアでは、すべての図が「Figure 1」と表示されてしまいます。

# Count SEQ fields via query (raw-grep collapses multi-matches on one XML line → undercounts).
SEQ_COUNT=$(officecli query "$FILE" 'field[fieldType=seq]' --json | jq '.data.results | length')
VISIBLE_FIG=$(officecli view "$FILE" text | grep -cE '(Figure|Table) [0-9]+')
if [ "$VISIBLE_FIG" -gt 0 ] && [ "$SEQ_COUNT" -eq 0 ]; then
  echo "REJECT Gate 5a: $VISIBLE_FIG visible Figure/Table labels but 0 SEQ fields."
  exit 1
fi
# Cached values must be distinct. Run `set / --prop recalcFields=seq` once after all captions exist;
# before recalc the fields render the #OCLI_NOTEVAL! sentinel, after recalc Figure 1 / Figure 2 / Figure 3:
DISTINCT=$(officecli view "$FILE" text | grep -oE '(Figure|Table) [0-9]+' | sort -u | wc -l)
[ "$SEQ_COUNT" -le "$DISTINCT" ] && echo "Gate 5a OK (SEQ=$SEQ_COUNT, distinct=$DISTINCT)" || { echo "REJECT Gate 5a: $SEQ_COUNT SEQ fields but only $DISTINCT distinct rendered labels — run 'set \"$FILE\" / --prop recalcFields=seq'"; exit 1; }
Gate 5b — HTML プレビューによる視覚監査(必須、任意ではない)

Gate 1〜5a では、スキーマ、トークン漏れ、ライブフィールドの有無、引用件数を確認します。しかしこれらでは物理的な組版の欠陥は検出できません。たとえば、ページ順の乱れ、本文途中で重複した Abstract、SEQ フィールドがあるにもかかわらず 3 つの図がすべて「Fig. 1」と表示される場合、数式の変数がプレーンテキストの LaTeX(lambda_1、x_{t+1})のまま表示され、数式として描画されない場合などです。省略しないでください。Gate 1〜5a に合格しても、視覚的に問題がないとは限りません。

officecli view "$FILE" html を実行し、返された HTML のパスを Read してください。論文のすべてのページについて、次の質問に答えます。

(a) ページは学術論文として論理的な順序になっているか?(タイトル → Abstract → Keywords → Introduction → 本文 → References の順で、前方へのジャンプも後方への混入もないこと。) (b) Abstract は重複せず、ちょうど 1 回だけ現れているか?(本文途中に重複していないこと。) (c) Figure N / Table N のラベルは互いに異なり、昇順になっているか?(Fig. 1、Fig. 2、Fig. 3 のようになっており、すべてが「Fig. 1」になっていないこと。表も同様。) (d) 数式は数式として描画されているか?(変数が斜体になっており、λ / α などのギリシャ文字や、適切な積分・分数になっていること。プレーンテキストの lambda_1、x_{t+1}、\int のままではないこと。) (e) IEEE 論文の場合:セクションタイトルはすべて大文字のローマ数字付き(I. INTRODUCTION)になっているか? 表はローマ数字(Table I、Table II)になっているか? (f) APA 論文の場合:レベル 1 の見出しは中央揃えの太字で、番号が付いていない(1. Introduction ではない)か? (g) 本文中のすべての「see Fig. N」「see Table N」は、実際にその番号が付いた図表を指しているか? (h) 見出しの階層(H1 / H2 / H3)は、サイズと太さによって視覚的に区別できているか?

すべての不具合を報告してください。欠陥が 1 件でもあれば → REJECT とし、修正するまで納品しないでください。

人によるプレビュー(任意)。 ユーザーに論文を視覚的にプレビューしてもらいたい場合は、officecli watch "$FILE" を実行してライブプレビューを用意するか、ユーザーに .docx を Word / WPS / Pages で直接開いてもらってください。最終的な視覚確認では、対象のビューアーでファイルを開いてください。

正直な限界

validate が検出できるのはスキーマのエラーであり、学術スタイルの誤りではありません。IEEE 論文に APA 形式の引用が含まれていたり、スタイルで禁止されている脚注があったり、新しい図を挿入すると番号がずれてしまう固定番号の図があったりしても、文書は validate に合格してしまいます。上記のゲート、特に Gate 4(ラウンドトリップ)と Gate 5(SEQ の有無)が、validate では検出できない問題を捕捉する手段です。

既知の問題と注意点(学術文書固有)

→ 基本的な注意点(シェルのエスケープ、\$ \t \n のリテラル、表セルの書式設定順序、改ページ境界、shd.fill / ind.firstLine のスキーマ不正な形式、TOC のキャッシュ値、透かしの 2 段階処理):docx v2 の §既知の問題と注意点 を参照してください。

学術文書固有の事項:

  • 区切り文字の内側に添字・上付き文字がある \left(...\right) / \left[...\right] → 解析エラー(cast object … Subscript)。外側に上付き文字がある場合(\left(x+y\right)^2)は問題ありません。通常の (、)、[、] を使用してください。OMML は表示モードで自動的にサイズが調整されます。
  • /body/oMathPara[N] に対する move は数式の順序を変えます(数式を含む段落が移動します)。--before <path> を使うと空の段落が残ることがあります。--index / --after の使用を推奨します。
  • セクション区切りによる段落の 1 つのずれ。 add /body --type section を実行するたびに、/body に空の段落が 1 つ挿入されます。区切りより後のすべての p[N] インデックスが +1 ずれます。区切りの位置を事前に計画し、add section の実行後は officecli get "$FILE" /body --depth 1 で再インデックスしてください。
  • /section[last()] は最後のセクションを指します(p[last()] と同様)。get と set のどちらにも使えます。明示的な /section[N] も使用できます:
    SECTION_COUNT=$(officecli query "$FILE" section --json | jq '.data.results | length')
    # use /section[last()] for the final section, or an explicit /section[2], /section[3], ...
    
    add /body --type section を実行するたびにカウントが増えます。区切りを追加するたびに再度問い合わせてください。
  • 多段組は自動的に元に戻りません。 columns=2 のセクションの後には、別のセクション区切りを追加し、新しい /section[N](N は戻した後のカウント)に対して明示的に columns=1 を設定する必要があります。そうしないと、参考文献を含む文書の残りの部分がすべて 2 段組で表示されます。各 N について officecli get "$FILE" "/section[N]" で確認してください。
  • 表のセルパス tc[N] に対する --type equation はガードエラーで拒否されます(table cells only accept paragraphs, tables, or SDTs)。不正な XML が書き込まれることはありません。表のセル内では、代わりに --prop mode=inline を付けて tc[N]/p[1] を対象にしてください。
  • SEQ キャプションの番号は set / --prop recalcFields=seq で設定されます(すべてのキャプションが存在した後に一度実行)。フィールドを個別に raw-set で修正する方法では設定されません。再計算前の SEQ フィールドは view text で #OCLI_NOTEVAL! というセンチネル値として表示されます。
  • ぶら下げインデントの正式な形式は indent=720 hangingIndent=720 です。 ind.firstLine=-720 ではありません。ドット区切りの形式では <w:jc> の後に <w:ind> が出力され、出力時にスキーマ検証に失敗します。
  • 脚注参照の run は view annotated で空文字列として表示されます。 <w:footnoteReference> XML 要素は参照側に表示テキストを持たず、脚注本文は /footnotes/footnote[N] にあります。目視で view text を確認するのではなく、officecli query "$FILE" 'footnote' で確認してください。
  • キャプションの位置: 表のキャプションは表の上、図のキャプションは図の下に配置します。主要なスタイル(APA、Chicago、IEEE、MLA)はいずれもこの点で一致しています。表のキャプションを表の下に置くのは学術スタイル上の誤りであり、表示の問題ではありません。validate では検出されません。
  • TOC のキャッシュ表示 / シェルのエスケープ: → docx v2 の §目次、§シェルのエスケープ を参照してください。

レンダラーの癖(ビューアー横断)

→ docx v2 の §レンダラーの癖 を参照してください。PAGE / TOC のキャッシュ値、OMML のベースラインのずれ、スキームカラーに関する癖はすべて学術論文にも同様に当てはまります。数式や引用マーカーが壊れていると判断する前に、対象ユーザーのビューアー(Word、WPS、Pages)でファイルを開いてください。そこで正しく表示される場合は、スキルの欠陥ではなくビューアー固有の癖です。

ヘルプの参照先

判断に迷ったら、officecli help docx、officecli help docx <element>、officecli help docx <element> --json を実行してください。ヘルプが正式なスキーマであり、本スキルは docx v2 に対する学術文書固有の差分についての判断ガイドです。

コメント