3. GFM の書き方

pfpdf の Markdown は GitHub Flavored Markdown(GFM)が基準です。GitHub で使える標準的な記法がそのまま使えます。この章の記法はすべて実際にこの PDF 上で変換されています。

3.1 見出しと段落

# から ###### までの Markdown 見出しが使えます。見出しには source 順で一意な anchor が付き、6 階層すべてが目次に載ります。同名見出しには -2、-3 の suffix が付きます。raw HTML で直接書いた h1 から h6 は自動目次の対象ではなく、link target にする場合は id を明示します。

文書言語が日本語(lang: ja または省略時に日本語と推定)の場合、段落中の漢字・かな・和文約物に挟まれたソース改行は表示上の空白になりません。強調やリンクをまたぐ折り返しにも対応します。空行による段落分け、英単語の境界、明示空白、Markdown の強制改行は保持します。code・数式とその境界、raw HTML を含む段落は変更しません。

3.2 強調

emphasis、strong emphasis、strikethrough、および妥当な入れ子(strong + emphasis)が使えます。

日本語の強調

日本語の文中でも ** はそのまま使えます。全角の句読点や括弧が隣接していても正しく変換されます。

  • これは重要です。
  • これは**「強調表示」**の例です。
  • これは**重要な点。**続きのテキストも書けます。
  • ここは**(重要事項)**です。

<strong> タグを書く必要はありません。まず ** を使ってください。

和欧間の空き

日本語文書では、和文と欧文・数字の境界に CSS による表示上の空きを自動で入れます。明示空白と約物は保持し、code・数式は対象外です。URLやコピーされる DOM の文字列に空白を挿入しません。PDFのテキスト抽出器は表示上の空きを空白として復元することがあります。lang: en など日本語以外では自動適用しません。custom CSS の text-autospace: no-autospace で解除でき、非対応ブラウザーでは空きなしで表示します。

3.3 リスト

ネストしたリスト、番号付きリスト、task list が使えます。

  • 果物

    • りんご
    • みかん
      1. 温州みかん
      2. ポンカン
  • 野菜

  • 完了したタスク

  • 未完了のタスク

3.4 表

表は raw HTML ではなく GFM の table 記法を推奨します。列の揃えも指定できます。

項目左揃え中央右揃え
Aleftcenter100
Bleftcenter2,000

3.5 リンクと画像

  • inline link: Vivliostyle
  • autolink: https://commonmark.org/ のように URL をそのまま書くとリンクになります
  • 画像: ![代替テキスト](assets/example.svg) のように相対パスで指定します

サンプル画像

長い URL と識別子

16 grapheme以上の URL、メールアドレス、path、snake_case・kebab-case・camelCase の識別子には、表示時の改行候補が自動で入ります。URLの / や ?、hostの .、識別子の区切りが優先されます。link先やコピーされる文字列に空白・zero-width文字は追加されません。

https://example.invalid/reports/2026/very-long-document-name?format=print&language=ja

inline codeとcode block、数式、kbd、sampの内容は完全保存を優先するため対象外です。codeの長い行はtemplateの既存の折り返し規則で表示されます。

3.6 引用とコード

これは blockquote です。 複数行にわたって書けます。

inline code は `backtick` で囲みます。code block は 05 章を参照してください。

3.7 水平線

--- または *** で水平線(thematic break)になります。


indent なしの単独行に連続する _ 3 個以上(___、____ など)は pfpdf では改ページ(02 章参照)に予約されているため、水平線には使えません。blockquote や list の内側、前後または途中に空白がある場合は改ページ記法になりません。

3.8 GFM に含まれない GitHub の機能

GitHub.com 上の一部の表示は GFM の仕様ではなく、GitHub のサービス固有の機能です。次は pfpdf では変換されません。

  • @user の mention、#123 の issue / pull request reference
  • :smile: のような emoji shortcode
  • > [!NOTE] などの alert

Mermaid は pfpdf の個別 extension として対応しています。05 章の mermaid fenced code block を参照してください。それ以外の機能が必要な場合は raw HTML(04 章)や画像で表現してください。

3.9 BibTeX 参考文献

Markdown の front matter の bibliography で .bib file を指定します。相対 path は、そのキーを最初に指定した Markdown の親 directory を基準にします。複数の .bib file は list で指定でき、その list 全体を一つの値として選びます。

---
title: 調査報告
bibliography:
  - bibliography/references.bib
---

本文では TeX と同じ \cite command で BibTeX key を引用します。複数 key は comma で区切ります。

先行研究\cite{smith2024}と比較研究\cite{smith2024,tanaka2025}を参照します。

引用は [1] のような番号になり、PDF 内の参考文献 entry への link が付きます。参考文献一覧を置く場所には、top-level の独立行として \printbibliography を書きます。通常の Markdown 見出しを直前に書けば目次にも載ります。

# 参考文献

\printbibliography

\printbibliography を省略した場合は、一覧を文書末尾へ追加します。inline code、code block、raw HTML、数式内の \cite は文献引用として解釈しません。literal な使用例は `\cite{key}` のように inline code で書けます。引用の \cite を backslash でも escape する場合は \\cite{key} と書きます。

初期版は BibTeX / BibLaTeX の .bib と数値 style を扱います。存在しない key、重複 key、不正な BibTeX、読めない file は PDF を部分生成せず code 2 で失敗します。TeX の \ref は文献引用ではなく、将来の図表・数式・節参照用に予約しています。

3.10 脚注

脚注は、参照と定義を同じ source file 内に書きます。

本文です[^memo]。同じ脚注を再参照できます[^memo]。

[^memo]: 補足説明です。

各脚注は、最初に参照したページの下部へ表示します。設定の追加は必要ありません。

ページ脚注の番号は文書全体の初出順です。別 file では同じ脚注識別子を再利用でき、それぞれ別の脚注になります。同じ脚注を後のページで再参照した場合は、最初に表示した脚注へ link し、本文を重複印刷しません。長い脚注は次のページへ続き、複数段落・code・link も使えます。日本語文書では参照・戻り link のアクセシビリティ label も日本語になります。