Agent-almanac format-citations
git clone https://github.com/pjt222/agent-almanac
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/ja/skills/format-citations" ~/.claude/skills/pjt222-agent-almanac-format-citations-7a6f98 && rm -rf "$T"
i18n/ja/skills/format-citations/SKILL.md引用のフォーマット
CSL(Citation Style Language)仕様とBibTeXスタイルファイルを使用して、引用と参考文献リストをターゲットスタイルに合わせてフォーマットする。スタイルの選択、CSLファイルのカスタマイズ、RMarkdown/Quartoでの統合を含む。
使用タイミング
- 原稿の引用をジャーナル指定のスタイル(APA 7th、Chicago、IEEE、Vancouverなど)にフォーマットする場合
- 投稿先ジャーナルの変更に伴い引用スタイルを変換する場合
- CSLファイルをカスタマイズして機関固有またはジャーナル固有のスタイル要件に対応する場合
- RMarkdownまたはQuartoドキュメントで自動引用処理を設定する場合
- 参考文献リストのソート順や略語規則を変更する場合
入力
- 必須: BibTeXデータベースファイル(
).bib - 必須: ターゲット引用スタイル(スタイル名またはCSLファイル)
- 任意: 原稿ファイル(
、.Rmd
、.qmd
、.tex
).md - 任意: スタイルのカスタマイズ要件
- 任意: ロケール設定(「et al.」の翻訳等)
手順
ステップ1: ターゲットスタイルの特定と取得
適切な引用スタイルファイルを選択して取得する:
- スタイルの特定: ジャーナルの投稿ガイドラインから必要なスタイルを特定する。一般的なスタイルにはAPA 7th、Chicago Author-Date、IEEE、Vancouver(NLM)、Harvard、Nature、Scienceなどがある。
- CSLファイルの取得: Zotero Style Repository(https://www.zotero.org/styles)から該当するCSLファイルをダウンロードする。9,000以上のスタイルが利用可能。
- スタイルの検証: CSLファイルのメタデータ(title、id、updated)を確認し、正しいバージョンであることを検証する。
- BibTeXスタイル: LaTeXを使用する場合は、対応する
ファイルを特定する(例:.bst
、apalike.bst
)。ieeetr.bst
期待結果: ターゲットスタイルに対応する正しいCSLまたはBSTファイルが取得され、検証される。
失敗時: ジャーナル固有のスタイルが見つからない場合は、最も近い汎用スタイルを基にカスタマイズする。ジャーナルのサンプル参考文献リストを参照してスタイルの特徴を確認する。
ステップ2: RMarkdown/Quartoでの引用設定
ドキュメントの引用処理を設定する:
- YAMLヘッダー: ドキュメントのYAMLフロントマターにbibliographyとCSLを指定する。
- 引用の挿入: 本文中に
(括弧付き)または[@key]
(著者名付き)の形式で引用を挿入する。@key - 複数引用:
の形式で複数の参考文献を一つの引用に含める。[@key1; @key2] - ページ番号:
の形式で引用にページ番号を追加する。[@key, pp. 10-15] - 引用の抑制:
で著者名を抑制し、年のみを表示する。[-@key]
--- bibliography: references.bib csl: apa-7th-edition.csl ---
期待結果: ドキュメントが指定されたスタイルで正しくレンダリングされ、引用と参考文献リストが生成される。
失敗時: 引用が解決されない場合は、引用キーが
.bibファイルのエントリキーと一致しているか確認する。CSLファイルのパスが正しいか検証する。
ステップ3: CSLファイルのカスタマイズ
ジャーナル固有の要件に合わせてCSLファイルを修正する:
- CSL構造の理解: CSLはXMLベースの言語で、
(本文中の引用形式)と<citation>
(参考文献リスト形式)の2つの主要セクションがある。<bibliography> - ソート順の変更:
内の<bibliography>
要素を修正して、著者名順、年順、または引用順に変更する。<sort> - 略語の調整: ジャーナル名の略語、「et al.」の適用(
、et-al-min
属性)を調整する。et-al-use-first - 区切り文字の変更: 著者間の区切り(カンマ、セミコロン)、年の括弧、ページ範囲のダッシュなどを修正する。
- ロケール設定: 日本語の場合は
を設定し、「and」→「および」等の翻訳を適用する。locale="ja-JP"
期待結果: カスタマイズされたCSLファイルがジャーナルの要件を満たし、正しいフォーマットで引用が生成される。
失敗時: CSL XMLの構文エラーが発生した場合は、CSL Validator(https://validator.citationstyles.org/)で検証する。
ステップ4: 参考文献リストの生成と検証
最終的な参考文献リストを生成して検証する:
- レンダリング:
またはrmarkdown::render()
でドキュメントをレンダリングする。quarto render - フォーマットの確認: 生成された参考文献リストがジャーナルの要件と一致しているか、サンプルと比較して確認する。
- 欠落の確認: 本文中のすべての引用が参考文献リストに含まれていることを確認する。
- 未引用の確認: 参考文献リストに本文中で引用されていないエントリが含まれていないことを確認する(
を使用している場合を除く)。nocite - イタリック・太字: タイトル、ジャーナル名、巻号のフォーマット(イタリック、太字)がスタイルに準拠しているか確認する。
期待結果: 参考文献リストがターゲットスタイルに完全に準拠し、すべての引用が正しく解決される。
失敗時: フォーマットが一致しない場合は、CSLファイルの該当セクションを修正する。特にジャーナル名の略語、著者名の形式(姓名の順序、イニシャルの使用)を確認する。
ステップ5: LaTeXワークフローでの引用処理
LaTeXを使用する場合の引用処理:
- BibTeXワークフロー:
と\bibliographystyle{style}
を使用する。\bibliography{file} - BibLaTeXワークフロー:
と\usepackage[style=apa]{biblatex}
を使用する。BibLaTeXはCSLに近い柔軟性を持つ。\addbibresource{file.bib} - コンパイル手順: LaTeX → BibTeX/Biber → LaTeX → LaTeXの順で複数回コンパイルする。
- natbib:
で著者名-年形式と数字形式の切り替えが可能。\usepackage{natbib} - 検証:
ファイル(BibTeXログ)でエラーや警告を確認する。.blg
期待結果: LaTeXドキュメントが正しくコンパイルされ、指定されたスタイルで引用と参考文献リストが生成される。
失敗時: 「Citation undefined」警告が出る場合は、コンパイル手順が不足している可能性がある。BibTeXの出力ログを確認して、未解決の引用キーを特定する。
バリデーション
- ターゲット引用スタイルが正しく特定され、CSL/BSTファイルが取得されている
- ドキュメントのYAMLヘッダーにbibliographyとCSLが正しく指定されている
- すべての本文中引用が参考文献リストに解決される
- 参考文献リストのフォーマットがターゲットスタイルに準拠している
- 著者名の形式(姓名順序、イニシャル)がスタイルに一致している
- ジャーナル名の略語(使用する場合)が正しい
- ソート順がスタイル要件に一致している
- 「et al.」の適用が正しい著者数で行われている
よくある落とし穴
- コンパイル手順の不足: LaTeXでBibTeXを使用する場合、少なくとも4回のコンパイル(LaTeX→BibTeX→LaTeX→LaTeX)が必要。手順を省くと引用が「?」のまま残る。
- CSLとBibLaTeXスタイルの混同: CSLはPandoc/Zotero用、BibLaTeXスタイルはLaTeX用。互換性はない。
- ロケール設定の忘れ: 英語以外のドキュメントでは、「and」「et al.」「eds.」などの翻訳にロケール設定が必要。
- ジャーナル名略語の不整合: ISO 4略語とMEDLINE略語は異なる場合がある。ジャーナルの要件を確認すること。
- DOIリンクの欠落: 近年多くのジャーナルがDOIリンクの包含を要求している。BibTeXエントリの
フィールドが入力されていることを確認する。doi - 特殊文字のエスケープ漏れ: BibTeXではタイトル中の
、&
、%
などの特殊文字をエスケープする必要がある。#
関連スキル
-- 引用フォーマットに使用するBibTeXデータベースの管理manage-bibliography
-- フォーマット前の参考文献の整合性検証validate-references