NPM · slidev-theme-gtlabo v2.2.3 MIT License Node ≥ 18

slidev-theme-gtlabo

学術発表・研究室ゼミ向けに設計された Slidev テーマ。引用管理、数式レンダリング、章構成プログレスバーを備える。 A Slidev theme built for academic and laboratory-style presentations — with citation management, LaTeX rendering, and a chapter/section progress header.

Packageslidev-theme-gtlabo
Authormksmkss
Aspect Ratio4 / 3
Color SchemeLight · Sky
Default SansNunito Sans
Default MonoFira Code
Math EngineKaTeX
Icon SetLucide

What it provides / 提供する機能

  • 4 レイアウトcover, default, intro, end
  • 11 コンポーネント — 引用管理・数式表示・章ヘッダー・アラート・ハイライト等
  • 章/節プログレスchapters 構造を frontmatter に定義するだけで現在位置を自動描画
  • BibTeX コンバータdev/bib2slidev.ipynb による BibTeX → frontmatter 変換
  • UnoCSS 拡張theme-color / text-main カスタムトークン

01 Installation / インストール

Slidev 本体がインストールされた状態で、テーマを npm/pnpm からインストールします。Install the theme via your package manager alongside Slidev.

bash
# npm
npm install slidev-theme-gtlabo

# pnpm
pnpm add slidev-theme-gtlabo

# yarn
yarn add slidev-theme-gtlabo

slides.md の frontmatter にテーマを指定します。Slidev を起動するとプロンプトで自動インストールを提案する挙動もあります。

slides.md
---
theme: slidev-theme-gtlabo
---
依存関係 / Dependencies: Vue 3 · Slidev CLI · UnoCSS · KaTeX · Lucide Icons。 KaTeX は MathText / EqRef 使用時に動的 import されます。

02 Quick Start / はじめの一枚

最小構成の slides.md 例です。coverdefaultend の 3 枚を作ります。

slides.md
---
theme: slidev-theme-gtlabo
meetingName: 研究室ゼミ #12
date: 2026-05-14
coverTitle:
  first: 異常検知の近年動向
  second: One-Class Neural Networks
author:
  name: 山田 太郎
  affiliation: XXX研究室
layout: cover
---

---
layout: default
---

<Header :chapter-data="{ title: 'はじめに' }" chapter="intro" />

本日の内容を紹介します。

---
layout: end
---
外部 YAML を使う場合: data/chapters.yaml / data/citations.yaml に切り出すだけでは Header / Citation / CitationListPage / EqRef から参照できません。 スライドプロジェクト側に setup/main.ts を作成し、defineAppSetup()chapters / citations / equationRegistry を provide してください。
ローカル開発: npm run devexample.md のプレビュー、npm run export で PDF 出力、npm run screenshot で PNG 出力ができます。

03 Frontmatter Configuration / 全体設定

このテーマは $slidev.configs 経由で多数のキーを読み取ります。The theme consumes numerous top-level keys from the slides' head frontmatter.

  • theme必ず slidev-theme-gtlabo
  • meetingName発表の場の名前(表紙上部に表示) / Meeting title shown on cover
  • date日付文字列(自由フォーマット) / Free-form date string
  • coverTitle表紙タイトル。{first, second} オブジェクト or 配列 / cover title as object or array of lines
  • titleSizesmall/medium/large/xlarge/xxlarge(既定 large
  • author{name, affiliation}。presenter 情報 / primary presenter
  • coAuthors[{name, affiliation}, ...](最大 4 名表示)
  • chapters章/節の定義オブジェクト(§3.1
  • citations参考文献辞書(§3.2
  • citationStylenumbered(既定)または apa
  • thankYouMessageend レイアウトの副文(既定「ご清聴ありがとうございました」)
  • contact{email, twitter}。end レイアウトに表示
setup/main.ts が必要なケース: chapterscitations を frontmatter に直接書く場合はそのまま動作します。 一方で data/chapters.yaml / data/citations.yaml に外出ししてテーマコンポーネント全体で共有したい場合は、setup/main.ts で import と provide() を行ってください。
project layout
my-slides/
├─ slides.md
├─ data/
│  ├─ chapters.yaml
│  └─ citations.yaml
├─ setup/
│  └─ main.ts          # ← YAML を provide する
├─ components/
└─ package.json
setup/main.ts
import { defineAppSetup } from '@slidev/types'
import { reactive } from 'vue'
import chapters from '../data/chapters.yaml'
import citations from '../data/citations.yaml'

export default defineAppSetup(({ app }) => {
  // グローバルプロパティとして注入
  app.config.globalProperties.$chapters = chapters
  app.config.globalProperties.$citations = citations

  // provide/inject 用にも提供
  app.provide('chapters', chapters)
  app.provide('citations', citations)

  // 数式レジストリ
  const equationRegistry = reactive({
    ids: [] as string[],
    elements: {} as Record<string, Element>,

    register(id: string, el: Element) {
      if (!this.ids.includes(id)) this.ids.push(id)
      this.elements[id] = el
    },

    unregister(id: string) {
      this.ids = this.ids.filter(i => i !== id)
      delete this.elements[id]
    },

    getNumber(id: string): number | null {
      if (!(id in this.elements)) return null
      const sorted = [...this.ids].sort((a, b) => {
        const elA = this.elements[a]
        const elB = this.elements[b]
        if (!elA || !elB) return 0
        const pos = elA.compareDocumentPosition(elB)
        return pos & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1
      })
      const index = sorted.indexOf(id)
      return index >= 0 ? index + 1 : null
    },
  })

  app.provide('equationRegistry', equationRegistry)
})

3.1 chapters / 章・節構造

進捗バー (Header) と目次 (SectionDivider) が共有するデータ構造です。ref キーは参考文献ページ専用で進捗バーから除外されます。ap で始まるキーは 付録(Appendix) として扱われ、通常章とは別のグループで描画されます。

推奨配置 / Recommended location: 章構造は slides.md の frontmatter に直接書くのではなく、スライドプロジェクト直下に data/chapters.yaml を作成してそちらに記述することを推奨します(data/citations.yaml と同様)。 slides.md の frontmatter では chapters: !include data/chapters.yaml のように外部参照するか、ビルド前に結合しつつ、setup/main.tschapters を import して app.provide('chapters', chapters) を行ってください。 章立ての改訂と本文編集の差分を分離でき、複数スライド間で章テンプレートを使い回すのも容易になります。
Keep the chapter structure in data/chapters.yaml at the root of your slide project rather than inline in the frontmatter, and provide it from setup/main.ts so the theme components can consume a shared source of truth.
project layout
my-slides/
├─ slides.md
├─ data/
│  ├─ chapters.yaml      # ← 章・節構造はここに
│  └─ citations.yaml     # ← 参考文献はここに
├─ setup/
│  └─ main.ts            # ← chapters / citations を provide
├─ components/
└─ package.json

以下は data/chapters.yaml(もしくは frontmatter に直接書いた場合の chapters: 以下)の例です。

yaml
chapters:
  intro:
    title: はじめに
    sections:
      overview:
        title: 概要
      objectives:
        title: 目的
  method:
    title: 提案手法
    sections:
      approach: { title: アプローチ }
      impl:     { title: 実装 }
  ap1:                     # 付録
    title: 数式の導出
    sections:
      lemma: { title: 補題 }
  ref:                     # 参考文献ページ専用
    title: 参考文献
キー命名ルール:
  • ref → 参考文献。Header の進捗バーから除外される。
  • ap / ap1 / apA … → 付録。接頭辞 ap で自動判定。
  • それ以外 → 通常章。定義順でインデックスが振られる。

3.2 citations / 参考文献

辞書形式で定義します。キーが <Citation id="…"/> から参照される ID、値が書誌情報オブジェクトです。

推奨配置 / Recommended location: 参考文献は slides.md の frontmatter に直接書くのではなく、スライドプロジェクト直下に data/citations.yaml を作成してそちらに記述することを推奨します。 slides.md の frontmatter では citations: !include data/citations.yaml のように外部参照するか、ビルド前に結合しつつ、setup/main.tscitations を import して app.provide('citations', citations) を行ってください。 これにより bib2slidev で生成した YAML をそのまま貼れて、スライド本体の差分と参考文献の差分を分離できます。
Put your bibliography in data/citations.yaml at the root of your slide project rather than inline in the frontmatter, and provide it from setup/main.ts so citations resolve consistently across the deck.
project layout
my-slides/
├─ slides.md
├─ data/
│  └─ citations.yaml     # ← 参考文献はここに集約
├─ setup/
│  └─ main.ts            # ← citations と equationRegistry を provide
├─ components/
└─ package.json
data/citations.yaml
smith2023:
  author: "Smith, J. and Lee, H."
  first_author: "Smith"
  title:  "Research on AI"
  journal: "Journal of AI"
  year:   "2023"

chalapathy2019:
  author: "Chalapathy, R. et al."
  first_author: "Chalapathy"
  title:  "Anomaly Detection using One-Class Neural Networks"
  journal: "arXiv preprint"
  year:   "2019"
  url:    "https://arxiv.org/abs/1802.06360"

次に示すのはフロントマターに直接書いた場合の形(等価)です。data/citations.yaml に切り出した場合も、キーと書誌フィールドの構造は全く同じです。

yaml
citations:
  smith2023:
    author: "Smith, J. and Lee, H."
    first_author: "Smith"        # APA 表示で使用
    title:  "Research on AI"
    journal: "Journal of AI"
    volume: "42"
    number: "3"
    pages:  "112--130"
    year:   "2023"
    doi:    "10.1000/example"
    url:    "https://example.org"
    issn:   "1234-5678"
    publisher: "Academic Press"

サポートされる書誌フィールド

FieldType用途 / Used by
authorstring著者(" and " 区切り推奨)
first_authorstringAPA スタイル時のインライン表示
titlestring論文/記事タイトル
journalstringジャーナル名
volume / number / pagesstring巻号ページ
yearstring発行年
publisherstring出版社
doistringDOI(優先してリンク化)
urlstringURL(doi 未指定時にリンク化)
issnstringISSN 表記

3.3 表紙/著者情報の設定

yaml
meetingName: 情報処理学会 全国大会
date: 2026.05.14
titleSize: large
coverTitle:
  first:  異常検知における
  second: One-Class Neural Networks
# あるいは配列で複数行
# coverTitle:
#   - "異常検知における"
#   - "One-Class Neural Networks"
author:
  name: 山田 太郎
  affiliation: XXX研究室
coAuthors:
  - { name: 佐藤 花子, affiliation: XXX研究室 }
  - { name: 鈴木 次郎, affiliation: XXX研究室 }
contact:
  email:   yamada@example.ac.jp
  twitter: @yamada
thankYouMessage: ご清聴ありがとうございました

04 Layouts / レイアウト

---\nlayout: xxx\n--- で各スライドに指定します。Specify each slide's layout via frontmatter.

cover Layout

プレゼンテーションの表紙。meetingName, date, coverTitle, author, coAuthors を自動で組版します。Swiss Style のグリッドと非対称なアクセント、マウント後のアニメーションが入ります。

LIVE PREVIEW — layout: cover4:3 aspect (mini)
情報処理学会 全国大会
2026.05.14
異常検知における One-Class Neural Networks
Presenter
山田 太郎
XXX研究室
Co-Authors
佐藤 花子
XXX研究室

default Layout

通常スライド用。bg-white 白背景、text-main カラー、Flex 縦並び、text-xl 基準。
Plain white slide — the workhorse layout, with only base spacing and typography applied.

slides.md
---
layout: default
---

<Header :chapter-data="{ title: '提案手法' }" chapter="method" />

## 本文

- 箇条書き
- もう一つ

intro Layout

中央に大きな太字を配置するだけのシンプルレイアウト。章の導入や一言の引用に便利。

LIVE PREVIEW — layout: intro
Let's dive into the results.

end Layout

「THANK YOU FOR LISTENING」を中央大見出しで出し、thankYouMessage, contact.email, contact.twitter を表示。背景には円/四角/ドットのゆっくりしたアニメーションが周期的に動きます。

LIVE PREVIEW — layout: end
THANK YOUFOR LISTENING
ご清聴ありがとうございました
EMAIL yamada@example.ac.jp
X / TWITTER @yamada

05 Components / コンポーネント

Slidev のグローバルコンポーネント解決により、テンプレート内で追加 import なしで使用できます。

Header

各スライドのヘッダー部に配置し、章プログレスバー・現在位置・ページカウンターを描画します。Place this near the top of each content slide for a chapter/section progress bar and page counter.

LIVE PREVIEW — Header
はじめに
提案手法
評価
まとめ
提案手法 — アプローチ
5
24

Props

NameTypeDefaultDescription
chapteroptString現在の章のキー。chapters 定義のキーと一致させる
chapterDataoptObject章情報を直接渡す({title})。chapter より優先
currentSectionoptString現在の節のキー。指定するとそのタイトルを表示し、該当セグメントを青色に
currentChapteroptStringnullchapter のエイリアス(現在位置のみ示したい時)

Usage

vue
<!-- 章ヘッダー(節なし) -->
<Header :chapter-data="{ title: 'はじめに' }" chapter="intro" />

<!-- 節ヘッダー(節タイトル表示) -->
<Header
  chapter="method"
  current-section="approach" />
内部ロジック: 表紙(1 枚目)を除外するために adjustedCurrentPage = currentPage − 1。 Appendix (ap*) にいる時はバーも Appendix 章だけの一覧に切り替わります。ref ページは常に「完了」扱い。

SectionTitle

左側のカラーバーと巨大タイトル。スライド内の大見出しに使います。

LIVE PREVIEW — SectionTitle

提案手法

Props

NameTypeDefaultDescription
titleoptStringタイトル文字列。スロット使用時は無視
coloroptStringsky-800Tailwind/UnoCSS カラー名 または 16進色
vue
<SectionTitle title="提案手法" />
<SectionTitle color="indigo-700">スロットも可</SectionTitle>
<SectionTitle title="カスタム色" color="#db2777" />

SubSectionTitle

左に lucide-chevron-right アイコンを伴う中見出し。

LIVE PREVIEW — SubSectionTitle

2.1 モデル構造

NameTypeDefaultDescription
titlereqStringタイトル文字列
coloroptStringsky-700アイコン色(Tailwind or HEX)

SectionDivider

章の切り替わりで使う目次(TOC)ページ全体。chapters 定義から全章を描画し、nextChapter で指定した章を "NEXT" バッジ付きで強調します。Appendix 章が nextChapter の場合は APPENDIX 用の目次に切り替わります。

LIVE PREVIEW — SectionDivider (size=md)
01
はじめに
概要
目的
03
評価
実験設定
結果
04
まとめ
考察
今後の課題
CONTENTS

Props

NameTypeDefaultDescription
nextChapterreqString次に入る章のキー。ap* を渡すと Appendix 目次モード
currentChapteroptString進捗表示用の現在章キー
sizeopt'xs'|'sm'|'md'|'lg'|'xl'md列数とタイポグラフィの一括制御

Size matrix / 密度表

sizecolumns章番号章タイトルsection
xs4text-2xltext-[11px]text-[9px]
sm3text-3xltext-xstext-[10px]
md2text-6xltext-2xltext-lg
lg2text-7xltext-xltext-base
xl1text-8xltext-3xltext-xl
vue
<SectionDivider next-chapter="method" size="md" />
<SectionDivider next-chapter="ap1" />  <!-- Appendix -->

Citation

インライン引用を描画します。citationStylenumbered(既定)なら [1]apa なら (Smith, 2023) 形式。ホバー時に全書誌情報をツールチップ表示し、現在ページの引用一覧は window.pageCitations に登録されます。

LIVE PREVIEW — Citation

この手法は[1]で提案され、[2]で改良されました。

NameTypeDefaultDescription
idreqStringcitations 辞書のキー
markdown
この手法は<Citation id="smith2023" />で提案されました。

CitationListPage

参考文献一覧ページを生成。Header を自動で chapter="ref" として描画し、全エントリを学術スタイルで列挙します。

LIVE PREVIEW — CitationListPage (size=md)
[1]
Smith, J. and Lee, H.. "Research on AI". Journal of AI, Vol. 42, No. 3, pp. 112–130, (2023).DOI: 10.1000/example
[2]
Jones, A.. "Machine Learning Basics". Tech Press, (2022).
[3]
Chalapathy, R. et al.. "Anomaly Detection using One-Class Neural Networks". arXiv preprint, (2019).URL: https://arxiv.org/abs/1802.06360
NameTypeDefaultDescription
styleopt'academic'|'ieee'|'apa'academic表示スタイル
sortByopt'frontmatter'|'key'|'author'|'year'frontmatter並び順。year は降順(新しい順)
sizeopt'xs'|'sm'|'md'|'lg'|'xl'|'2xl'md文字サイズ
vue
<CitationListPage />
<CitationListPage sort-by="year" size="lg" />

MathText

テキスト中の LaTeX 数式を KaTeX でレンダリングする強力なコンポーネント。インライン $...$ / \(...\)、ブロック $$...$$ / \[...\]\begin{align} 等の環境、および基本 Markdown(**bold**, *em*, `code`, [link](url), 見出し, リスト, 引用, 水平線)をサポートします。

LIVE PREVIEW — MathText (KaTeX mocked)
提案手法では、損失関数 L = (1/n) Σ (y_i − ŷ_i)² を最小化します。 f(x) = w·x + b    (1) さらに、正則化項として λ·‖w‖² を加えます。
NameTypeDefaultDescription
textoptString''表示テキスト。スロット使用時は無視
containerTagoptStringspanコンテナの HTML タグ(p, div など)
containerClassoptString''コンテナに追加するクラス
inlineMathClassoptString''インライン数式要素に追加するクラス
blockMathClassoptString''ブロック数式要素に追加するクラス
textClassoptString''テキスト部分に追加するクラス
simpleoptBooleanfalseKaTeX を使わず簡易スタイルのみ(軽量モード)
disableMarkdownoptBooleanfalseMarkdown 処理を無効化
customDelimitersoptArraynull数式の区切り文字定義を上書き
eqoptStringnull数式番号 ID。指定すると EqRef から参照可能に
eqPaddingoptString2.5em数式番号の右余白

Supported delimiters

SyntaxTypePriority
\begin{align}...\end{align}(align, equation, gather, multline, split 他)block0 (highest)
$$...$$block1
$...$inline2
\(...\)inline3
\[...\]block4

Built-in KaTeX macros

\R → ℝ, \N → ℕ, \Z → ℤ, \Q → ℚ, \C → ℂ

vue
<MathText
  text="損失関数は $L = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y_i})^2$ です。"
  container-tag="p" />

<!-- 数式番号を振って EqRef から参照 -->
<MathText text="$$f(x) = wx + b$$" eq="linear" />
ここで式 <EqRef id="linear" /> は線形モデルを表します。
Simple モード: :simple="true" で KaTeX 読み込みをスキップし、青背景の等幅テキストとして表示されます。 ビルド時間短縮や低スペック PC での動作向け。

EqRef

MathTexteq プロパティを指定した数式を参照。(番号) 形式でリンク風に表示します。

LIVE PREVIEW — EqRef

(1) により、線形モデルが定義されます。

NameTypeDefaultDescription
idreqString対応する <MathText eq="..."/> の ID
仕組み: inject('equationRegistry') による番号管理。MathTextregister() / unregister() を呼び出し、EqRefgetNumber() で参照します。
Equation numbering is managed by a shared registry injected into both components.

AlertBox

左ボーダー付きの注意/情報ボックス。5 種の variant に応じて色・アイコンが変化します。

LIVE PREVIEW — AlertBox
従来手法では過学習が問題となっていた。
NameTypeDefaultDescription
variantopt'warning'|'info'|'success'|'error'|'result'warning種類。色とアイコンが切り替わる

Variant chart

variantアイコン(Lucide)枠線背景
warningfrownslate-600slate-50
infolightbulbindigo-600slate-50 → white
successcircle-checkgreen-600green-50
errorcircle-xred-600red-50
resultsearch-checkindigo-600slate-50 → white
vue
<AlertBox variant="info">本研究では〜を提案する。</AlertBox>
<AlertBox variant="result">精度が 20% 向上した。</AlertBox>

<!-- アイコンを独自に差し替え -->
<AlertBox variant="success">
  <template #icon><lucide-star /></template>
  カスタムアイコン付き。
</AlertBox>

HighlightText

文中の重要語を太字 + 下線/蛍光ペン風に装飾します。

LIVE PREVIEW — HighlightText

本研究では 異常検知精度 の向上を目的とする。

NameTypeDefaultDescription
variantopt'orange'|'indigo'|'red'|'green'orange装飾色。indigo のみ下線スタイル、他はボーダーボトム
vue
本研究では <HighlightText>異常検知精度</HighlightText> の向上を目指す。
<HighlightText variant="indigo">重要語</HighlightText>

TextColorBox

上部タイトル + 下部本文のカラーボックス。タイトル背景は theme-color#0284c7)の 30% 不透明。

LIVE PREVIEW — TextColorBox
重要なポイント
従来手法より 20% の性能向上を実現。
NameTypeDefaultDescription
titlereqStringヘッダー文字列。HTML 可
textoptString''本文。<strong>, <em>, <span class="v-mark highlight"> 等が使える。スロット使用時は無視
containerClassoptString|Array|Object''ルート要素へのクラス
titleClassoptString|Array|Object''タイトル行へのクラス
textClassoptString|Array|Object''本文段落へのクラス

v-mark スタイル(本文中で利用可)

ClassEffect
.v-mark.underline下線
.v-mark.underline.orangeオレンジ色の 2px 下線
.v-mark.highlight黄色のマーカー
.v-mark.highlight.blue / .green / .red各色のマーカー
vue
<TextColorBox
  title="重要なポイント"
  text='従来手法より <strong>20%</strong> の性能向上。'
  container-class="my-4" />

<!-- スロットで複雑コンテンツ -->
<TextColorBox title="結論">
  <ul>
    <li>精度向上</li>
    <li>計算量削減</li>
  </ul>
</TextColorBox>

06 bib2slidev / BibTeX 変換ツール

dev/bib2slidev.ipynb に収録された Python 製ユーティリティ。BibTeX エントリを貼り付けて実行すると、citations フロントマター形式の YAML を出力します。

python
import re

def convert_bibtex(bibtex_text):
    author = re.search(r'author\s*=\s*\{([^}]+)\}', bibtex_text).group(1)
    title  = re.search(r'title\s*=\s*\{([^}]+)\}',  bibtex_text).group(1)
    year   = re.search(r'year\s*=\s*\{([^}]+)\}',   bibtex_text).group(1)
    # optional: journal, volume, number, pages, publisher, issn
    first_author = author.split(' and ')[0].strip()
    print(f"{first_author}:")
    print(f'    author : "{author}"')
    print(f'    title  : "{title}"')
    print(f'    year   : "{year}"')

Input → Output 例

bibtex (input)
@misc{chalapathy2019anomaly,
  title={Anomaly Detection using One-Class Neural Networks},
  author={Raghavendra Chalapathy and Aditya Krishna Menon and Sanjay Chawla},
  year={2019},
  url={https://arxiv.org/abs/1802.06360},
}
yaml (output)
Raghavendra Chalapathy:
    author  : "Raghavendra Chalapathy and Aditya Krishna Menon and Sanjay Chawla"
    journal : "arXiv preprint"
    title   : "Anomaly Detection using One-Class Neural Networks"
    year    : "2019"
注意: 出力キーは「第一著者名」です。Citation id="…" 側と揃うよう、必要に応じてキーを chalapathy2019 等に書き換えてください。

07 Recommended Workflow / 推奨制作フロー

  1. 章立ての設計。chapters を先に書ききると進捗バー/目次が一貫する。
  2. 参考文献の下準備。BibTeX があれば bib2slidev で YAML 化して citations に貼る。
  3. 表紙と末尾。author, coAuthors, contact, thankYouMessage を入れておく。
  4. 本文。章ごとに SectionDivider :next-chapter="..."/Header :chapter="..." :current-section="..."/ を敷く。
  5. 推敲。MathText, Citation, AlertBox を入れ、最後に CitationListPage を一枚追加。
  6. 出力。npm run export → PDF、npm run screenshot → PNG。

08 Styling / UnoCSS

テーマは UnoCSS を前提とし、uno.config.ts で以下のカスタムトークンを追加します。

  • text-main#1f2937 — 既定本文色
  • theme-color#0284c7TextColorBox のタイトル背景等で使用
  • fontSize.md1rem(UnoCSS 既定とは異なるサイズマッピング)
  • --slidev-theme-primary#5d8392(CSS 変数、themeConfig で上書き可)

Shiki テーマ

コードブロックは vitesse-light(light)/ vitesse-dark(dark)が既定。

09 Troubleshooting / よくあるつまずき

数式が描画されず原文のまま出る

KaTeX の動的 import に失敗している可能性あり。ネットワーク切断時は :simple="true" でフォールバック表示に切り替えできます。
If KaTeX import fails, set :simple="true" to fall back to plain styled text.

進捗バーの現在位置がずれる

Header は内部で currentPage − 1(表紙を除外)を行う前提です。表紙を複数ページ入れる構成では、chaptercurrent-section を明示的に渡してバーの点灯を確実にしてください。

Appendix が通常目次に出てしまう

キーが ap で始まっていない場合、通常章として扱われます(appendix1ap1 に変更)。

引用番号が [?] になる

Citation id="…" の ID が citations 辞書に存在しません。スペルミスまたは bib2slidev 出力のキー名が想定と違う可能性あり。

外部 YAML を置いたのに Header / Citation / EqRef が反映されない

data/chapters.yaml / data/citations.yaml を作っただけでは不十分です。setup/main.ts を配置し、../data/chapters.yaml../data/citations.yaml の import path、および app.provide('chapters', ...) / app.provide('citations', ...) / app.provide('equationRegistry', ...) を確認してください。

APA スタイルで (?, year) と表示される

書誌エントリに first_author フィールドを追加してください。author とは別にテーマが要求します。

slidev-theme-gtlabo · Specification document · rendered 2026
Source: github.com/mksmkss/slidev-theme-gtlabo · MIT License