citation-bibliography-generator について
citation-bibliography-generatorは、学術・専門文書向けの引用と参考文献リストを整形します。5種類のスタイルに対応し、手入力やCSVのほか、DOIまたはISBNによるメタデータ取得も利用できます。
主な機能
- 01APA、MLA、Chicago、IEEE、Harvard形式に対応
- 02書籍、論文、ウェブサイト、会議論文の引用作成
- 03DOIまたはISBNによるメタデータ検索
- 04参考文献の並べ替えと重複除去
- 05括弧型と叙述型の文中引用作成
- 06CSVの取り込みとテキストまたはBibTeXへの出力
活用シーン
- 01研究論文の引用形式を整える
- 02CSVの引用一覧から参考文献リストを作成
- 03DOIのメタデータを取得して文献情報を整形
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dkyazzentwatwa/ chatgpt-skills --skill citation-bibliography-generatorインストール後、Claude Code で/citation-bibliography-generatorを入力して読み込まれたか確認します。
同梱ファイルscripts/citation_generator.pyscripts/requirements.txt
詳細
引用・参考文献ジェネレーター
複数の学術・専門スタイルで、適切な形式の引用と参考文献を生成します。手動入力、構造化データのインポート、DOI/ISBN によるメタデータの自動検索に対応しています。
クイックスタート
from scripts.citation_generator import CitationGenerator
# Create generator with desired style
gen = CitationGenerator(style='apa')
# Cite a book
citation = gen.cite_book(
authors=["Smith, John", "Doe, Jane"],
title="Research Methods in Social Science",
year=2020,
publisher="Academic Press",
city="New York"
)
print(citation)
# Output: Smith, J., & Doe, J. (2020). Research methods in social science. Academic Press.
# Build bibliography
gen.add_to_bibliography(citation)
bibliography = gen.generate_bibliography()
print(bibliography)
対応する引用スタイル
- APA(American Psychological Association)- 第7版
- MLA(Modern Language Association)- 第9版
- Chicago(Chicago Manual of Style)- 第17版
- IEEE(Institute of Electrical and Electronics Engineers)
- Harvard(Harvard 参照スタイル)
機能
1. 引用の手動作成
資料の種類に応じて引用を整形します。
- 書籍 - モノグラフ、編集書、版
- 学術誌論文 - DOI 付きの査読済み論文
- ウェブサイト - アクセス日を含むオンライン資料
- 会議論文 - 論文集および発表
2. メタデータの自動検索
- DOI 検索 - CrossRef API から論文のメタデータを取得
- ISBN 検索 - 書籍情報を取得(利用可能な場合)
- 資料の種類を自動検出し、それに応じて整形
3. 参考文献の管理
- 複数の引用を追加
- 著者、出版年、タイトルで自動並べ替え
- 重複の検出と削除
- プレーンテキストまたは BibTeX 形式でエクスポート
4. 本文中の引用
括弧内形式または叙述形式の本文中の引用を生成します。
- 括弧内形式:
(Smith, 2020, p. 45) - 叙述形式:
Smith (2020) argues that... - 複数著者と et al. の処理
5. 一括処理
構造化データを含む CSV ファイルから引用をインポートし、完全な参考文献リストを生成します。
API リファレンス
CitationGenerator
初期化:
gen = CitationGenerator(style='apa')
パラメーター:
style(str):引用スタイル - 'apa'、'mla'、'chicago'、'ieee'、または 'harvard'
引用メソッド
cite_book()
citation = gen.cite_book(
authors=["Last, First", "Last, First"],
title="Book Title",
year=2020,
publisher="Publisher Name",
city="City", # Optional
edition="3rd ed.", # Optional
isbn="978-0-123456-78-9" # Optional
)
戻り値:整形された引用文字列
cite_article()
citation = gen.cite_article(
authors=["Last, First"],
title="Article Title",
journal="Journal Name",
year=2020,
volume=10, # Optional
issue=2, # Optional
pages="45-67", # Optional
doi="10.1234/example" # Optional
)
戻り値:整形された引用文字列
cite_website()
citation = gen.cite_website(
authors=["Last, First"], # Can be empty list
title="Page Title",
url="https://example.com",
access_date="2024-01-15",
publish_date="2023-12-01" # Optional
)
戻り値:整形された引用文字列
cite_from_doi()
citation = gen.cite_from_doi(doi="10.1234/example")
CrossRef API から論文のメタデータを検索し、整形された引用を生成します。
戻り値:整形された引用文字列
参考文献の管理
add_to_bibliography()
gen.add_to_bibliography(citation)
参考文献リストに引用を追加します。
generate_bibliography()
bibliography = gen.generate_bibliography(
sort_by='author', # 'author', 'year', or 'title'
deduplicate=True # Remove duplicate entries
)
戻り値:ぶら下げインデントを適用した、整形済みの参考文献リスト文字列
export_bibtex()
gen.export_bibtex(output_path='references.bib')
LaTeX ドキュメント用に、参考文献を BibTeX 形式でエクスポートします。
本文中の引用
in_text_citation()
citation = gen.in_text_citation(
authors=["Smith, J."],
year=2020,
page="45", # Optional
narrative=False # True for narrative style
)
戻り値:
- 括弧内形式:
(Smith, 2020, p. 45) - 叙述形式:
Smith (2020)
一括処理
import_from_csv()
citations = gen.import_from_csv(csv_path='citations.csv')
CSV ファイルから複数の引用をインポートします。
CSV 形式:
type,authors,title,year,journal,publisher,doi,isbn,url,access_date
article,"Smith, J.|Doe, A.",Research Methods,2020,Journal of Science,,10.1234/example,,,
book,"Johnson, M.",Data Analysis,2019,,Academic Press,,978-0-123456-78-9,,
website,,"Web Page Title",2024,,,,,https://example.com,2024-01-15
注:複数の著者は | パイプ文字で区切ります。
戻り値:整形された引用文字列のリスト
CLI の使用方法
単一の引用
書籍:
python scripts/citation_generator.py book \
--authors "Smith, J." "Doe, A." \
--title "Research Methods" \
--year 2020 \
--publisher "Academic Press" \
--city "New York" \
--style apa
論文:
python scripts/citation_generator.py article \
--authors "Smith, J." \
--title "Study Title" \
--journal "Journal Name" \
--year 2020 \
--volume 10 \
--issue 2 \
--pages "45-67" \
--doi "10.1234/example" \
--style mla
ウェブサイト:
python scripts/citation_generator.py website \
--title "Page Title" \
--url "https://example.com" \
--access-date "2024-01-15" \
--style chicago
DOI 検索
python scripts/citation_generator.py doi \
--doi "10.1234/example" \
--style apa
一括処理
python scripts/citation_generator.py batch \
--input citations.csv \
--style harvard \
--output bibliography.txt \
--sort author
BibTeX エクスポート
python scripts/citation_generator.py batch \
--input citations.csv \
--format bibtex \
--output references.bib
CLI 引数
| 引数 | 説明 | デフォルト |
|---|---|---|
--style, -s | 引用スタイル(apa/mla/chicago/ieee/harvard) | apa |
--authors, -a | 著者名(複数指定可) | - |
--title, -t | 著作物のタイトル | - |
--year, -y | 出版年 | - |
--input, -i | 入力 CSV ファイル(一括処理モード) | - |
--output, -o | 出力ファイルのパス | stdout |
--format, -f | 出力形式(text/bibtex) | text |
--sort | 参考文献の並べ替え基準(author/year/title) | author |
例
例1:APA 形式の書籍引用
gen = CitationGenerator(style='apa')
citation = gen.cite_book(
authors=["Doe, Jane", "Smith, John"],
title="The Art of Research",
year=2021,
publisher="University Press",
edition="2nd ed."
)
print(citation)
# Doe, J., & Smith, J. (2021). The art of research (2nd ed.). University Press.
例2:MLA 形式の論文引用
gen = CitationGenerator(style='mla')
citation = gen.cite_article(
authors=["Johnson, Mary"],
title="Digital Humanities in the 21st Century",
journal="Modern Research Quarterly",
year=2022,
volume=15,
issue=3,
pages="112-145",
doi="10.5678/mrq.2022.15.3"
)
print(citation)
# Johnson, Mary. "Digital Humanities in the 21st Century." Modern Research Quarterly, vol. 15, no. 3, 2022, pp. 112-145. DOI: 10.5678/mrq.2022.15.3.
例3:Chicago 形式のウェブサイト引用
gen = CitationGenerator(style='chicago')
citation = gen.cite_website(
authors=["Brown, Robert"],
title="Understanding Machine Learning",
url="https://ml-guide.example.com",
access_date="2024-01-20",
publish_date="2023-11-15"
)
print(citation)
# Brown, Robert. "Understanding Machine Learning." Last modified November 15, 2023. Accessed January 20, 2024. https://ml-guide.example.com.
例4:参考文献リストの作成
gen = CitationGenerator(style='apa')
# Add multiple citations
gen.add_to_bibliography(gen.cite_book(
authors=["Smith, A."],
title="First Book",
year=2020,
publisher="Press A"
))
gen.add_to_bibliography(gen.cite_article(
authors=["Jones, B."],
title="Research Article",
journal="Journal X",
year=2021
))
# Generate formatted bibliography
bibliography = gen.generate_bibliography(sort_by='author')
print(bibliography)
例5:DOI 検索
gen = CitationGenerator(style='ieee')
citation = gen.cite_from_doi(doi="10.1109/ACCESS.2019.2947014")
print(citation)
# Auto-fetches metadata and formats in IEEE style
例6:CSV からの一括処理
gen = CitationGenerator(style='harvard')
citations = gen.import_from_csv('my_references.csv')
# Add all to bibliography
for citation in citations:
gen.add_to_bibliography(citation)
# Generate and export
gen.export_bibtex('references.bib')
依存関係
pandas>=2.0.0
requests>=2.31.0
依存関係をインストールします:
pip install -r scripts/requirements.txt
制限事項
- API の利用可能性:DOI/ISBN の検索にはインターネット接続が必要で、サードパーティの API(CrossRef)に依存します
- API のレート制限:CrossRef API にはレート制限があります。一括検索では遅延を設けてください
- スタイルのバリエーション:引用スタイルによっては、分野固有のバリエーションがあり、完全にはカバーされていません
- 特殊文字:アクセント記号や特殊文字の Unicode サポートは、出力形式によって異なる場合があります
- 版番号:版の表記方法はスタイルによって異なります(序数表記または文字表記)
- 著者名の形式:入力には「姓, 名」の形式を使用してください。他の形式の解析結果は一貫しない場合があります
- 複数の著者:Et al. のルールはスタイルによって異なります(APA:3 人以上、MLA:3 人以上、Chicago:4 人以上)
- オンライン先行公開論文:印刷版の前にオンライン公開された論文は、メタデータが不完全な場合があります
- 英語以外の資料:引用スタイルによっては、英語以外の資料に固有のルールがあり、完全には実装されていない場合があります
引用スタイルのガイドライン
APA(American Psychological Association)
- 著者名と発行年を使用する方式
- 最後の著者の前にアンパサンド(&)を使用
- 書籍のタイトルにはタイトルケース、論文のタイトルにはセンテンスケースを使用
- DOI は URL 形式で記載:https://doi.org/10.xxxx
MLA(Modern Language Association)
- 著者名とページ番号を使用する方式
- 最後の著者の前に「And」を使用
- すべてのタイトルにタイトルケースを使用
- コンテナの概念(雑誌は論文を収録するコンテナ)
Chicago(Chicago Manual of Style)
- 脚注と参考文献を使用する方式
- 最後の著者の前に「And」を使用
- タイトルにはタイトルケースを使用
- ウェブサイトの閲覧日を記載
IEEE(Institute of Electrical and Electronics Engineers)
- 番号付きの文献リスト [1]、[2] など
- 姓の前にイニシャルを記載
- 論文のタイトルを引用符で囲む
- 雑誌名を略記
Harvard
- 著者名と発行年を使用する方式
- 最後の著者の前に「And」を使用
- 書籍名/雑誌名をイタリック体で表記
- URL には「Available at:」を使用
コメント
Markdown 対応