arxiv-preflight について
arxiv-preflightは、TeX/LaTeXプロジェクトやPDFがarXivの技術要件を満たすか確認する、研究者やメンテナー向けの投稿準備スキルです。処理系に応じた検査を行い、合否と具体的な修正案をまとめたレポートを作成します。文章や科学的内容は評価しません。
主な機能
- 01投稿ファイルの構成を確認
- 02TeXと処理系の互換性を検証
- 03図と参考文献を確認
- 04メタデータとコンパイル済みPDFを確認
- 05付属ファイルと指示ファイルを検証
- 06修正案付きの合否レポートを作成
活用シーン
- 01投稿前に論文ファイル一式を確認
- 02不足ファイルや除外対象のファイルを特定
- 03TeX処理系や図の問題を解決
- 04コンパイル済みPDFの技術要件を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mathews-tom/ armory --skill arxiv-preflightインストール後、Claude Code で/arxiv-preflightを入力して読み込まれたか確認します。
同梱ファイルevals/cases.yamlreferences/guidelines.md
詳細
arXiv 投稿前チェック
パイプライン内の位置: Phase 3a(投稿準備)。Phase 2 の修正と PDF の再コンパイル後に実行します。arxiv-figures と arxiv-package に進むためのゲートです。
実行順序の全体については /manuscript-pipeline を参照してください。
目的
TeX/LaTeX プロジェクト(または PDF 投稿物)を arXiv のすべての投稿要件に照らして体系的に検証し、違反が見つかった場合はそれぞれに対する具体的な修正方法を添えた、構造化された合否レポートを作成します。
関連スキル:
manuscript-review— 文章の品質、構成、主張を監査しますmanuscript-provenance— 計算の再現性を監査しますarxiv-figures— arXiv 向けに図を最適化しますarxiv-package— 投稿用 tarball をパッケージ化します
このスキルは arXiv の技術要件への適合のみを対象とし、文章の品質や科学的内容は対象外です。
ワークフロー
1. 取り込み
投稿ディレクトリを特定します。次を探します:
- メインの
.texファイル - すべてのインクルードファイル(図、
.bbl、.bst、スタイルファイル、サブディレクトリ) 00README.XXXファイルanc/ディレクトリ- コンパイル済み PDF(利用可能な場合)
Read references/guidelines.md
2. 検証パス
すべてのパスを実行します。各チェックの結果は次のとおりです:
- PASS — 要件を満たしています
- FAIL — 違反が見つかりました(正確なファイル、行、具体的な修正方法を記録)
- WARN — 注意事項です(ブロッカーではありませんが、問題が発生する可能性があります)
- N/A — 該当しません
パス 1 — ファイル構成
.texファイル内に絶対ファイルパスがない(\input、\includegraphics、\include、\bibliography)- ファイル名にスペースや特殊文字(
&、\、:)が含まれていない - 除外すべき補助ファイルがない:
.aux、.log、.toc、.lot、.lof、.dvi、.ps、.pdf(図の PDF を除く) - 必須ファイルが存在する:BibTeX/BibLaTeX を使う場合は
.bbl、makeindex を使う場合は.ind、用語集/記号一覧を使う場合は.gls/.nls .tex関連の設定ファイルを除き、隠しファイル(.で始まるファイル)がない- ジャーナルのテンプレートや査読者宛ての書簡が含まれていない
- サブディレクトリ構成:サブディレクトリ内のファイルを参照する
\include{}呼び出しがない(代わりに\input{}を使用) \documentclassを含む.texファイルが複数ある場合、00README.XXXにtoplevelfileが宣言されていることを確認する
パス 2 — TeX/LaTeX 準拠
- プロセッサとの互換性:図の形式がプロセッサに適合している
- DVI モード:
.ps/.epsの図のみ - PDFLaTeX:
.pdf/.png/.jpgの図のみ - 条件付きコンパイルなしで形式が混在していない
- DVI モード:
psfigパッケージを使用していない(graphicxを使用)- 日付フィールドで
\todayマクロを使用していない - JavaScript が埋め込まれていない
\pdfoutputの判定に\ifx\pdfoutput\undefinedではなくifpdfパッケージを使用している- 回避策なしで shell-escape に依存するパッケージを使用していない(
minted→frozencache=true) - 外部文書への参照に
xrパッケージを使用していない - 二重行間の「査読者向け」モードの書式設定がない
- キャプション内の
\cite呼び出しに\protect\citeを使用している - サブディレクトリ内のファイルに
\includeを使用していない - BibLaTeX の
.bbl形式のバージョンが対象の TeX Live と互換性がある(TL2025 では 3.3) - カスタムまたは標準外のスタイルファイルがすべて投稿物に含まれている
- TeX Live ディストリビューションに含まれないパッケージを使用していない(一般的な非 TL パッケージを確認)
パス 3 — 図の検証
- 参照されているすべての図が指定されたパスに存在する
- 図の形式がプロセッサの要件に適合している
- 絶対パスを参照する図がない
- アニメーション、JavaScript、インタラクティブ要素が埋め込まれていない
- PNG ファイル:画像が大きすぎないか確認する(34 メガピクセル超は警告)
- ファイルサイズが妥当である(個々の図が 5MB 超、または図の合計が 25MB 超の場合はフラグを立てる)
\includegraphics呼び出しに代替テキストがある(参考情報 — アクセシビリティのベストプラクティス)\includegraphicsが非推奨の代替手段ではなくgraphicxパッケージを使用している
パス 4 — 書誌情報の検証
-
.bblファイル名が対応する.texファイル名と一致している -
.bibを含める場合、.bblも含まれている(arXiv は.bibを処理できますが、.bblの方が安全です) -
参考文献中の arXiv 識別子が正しい形式(
YYMM.NNNNN)を使用している -
e-print 識別子に余分な書式指定がない
-
BibLaTeX の
.bbl形式のバージョンを確認する(.bbl内の\RequirePackageのバージョンを調べる) パス 5 — メタデータの準拠状況(.texのフロントマターを確認) -
タイトル:すべて大文字にしない、生の Unicode を使用しない、意味が不明瞭なマクロは展開する
-
著者:適切な氏名形式を使用し、敬称を付けず、
et al.で省略しない -
要旨:先頭に「Abstract」というテキストを置かない、1920 文字以内に収める、行頭に空白を置かない
-
要旨:意味が不明瞭な TeX マクロを展開し、書式設定コマンド(
\em、\it)を使用しない -
コメントのメタデータがある場合:ページ数と図の数を含める(参考情報)
パス 6 — PDF の検証(コンパイル済み PDF がある場合)
- すべてのフォントが埋め込まれている(
pdffontsまたは同等のツールで確認) - Type 3(ビットマップ)フォントがない
- 機械可読である(スキャン画像またはビットマップではない)
- 埋め込み JavaScript がない
- テキスト抽出を妨げるセキュリティ制限がない
- ファイルサイズが妥当である
パス 7 — 00README.XXX の検証(存在する場合)
- ディレクティブの構文が有効である(各行は
filename directiveまたは単独のディレクティブ) - 参照先のファイルが存在する
- DVI 関連のディレクティブで正しいファイル名を使用する(
.tex拡張子を付けない) - ディレクティブに矛盾がない
パス 8 — 付属ファイル(anc/ ディレクトリがある場合)
anc/ディレクトリに.texファイルがない- 埋め込み JavaScript を含む PDF がない
.texソースからanc/ディレクトリへの内部参照がない- 合計サイズが妥当である
パス 9 — よくあるエラーのスキャン
- PS/EPS ファイルの先頭に
%%BoundingBoxがある(末尾ではない) newtxmathとamssymbの間に\Bbbkの競合がない- 曖昧な二重下付き文字/上付き文字がない(
a_x_y→a_{x}_y) - ソースファイルが連結されていない
- Scientific Workplace の
.rapファイルがない - 標準スタイルファイル(
epsf.sty、epsfig.sty)の改変版がない - 複雑なセクション名で
hyperrefを使う場合:bookmarks=falseを指定するか、PDF 文字列を適切に処理する
3. レポートの生成
構造化されたレポートを作成します:
# arXiv Preflight Report
**Project:** [directory name]
**Date:** [date]
**Processor:** [detected processor]
**Verdict:** [READY / NEEDS FIXES / BLOCKED]
## Summary
| Category | Pass | Fail | Warn | N/A |
|----------|------|------|------|-----|
| File Organization | | | | |
| TeX Compliance | | | | |
| Figures | | | | |
| Bibliography | | | | |
| Metadata | | | | |
| PDF | | | | |
| 00README | | | | |
| Ancillary Files | | | | |
| Common Errors | | | | |
## Blocking Issues (FAIL)
[Each with file, line number, specific violation, exact fix]
## Warnings (WARN)
[Advisory items that may cause processing issues]
## All Checks
[Full pass/fail/warn/N/A status for every checkpoint]
4. 出力
レポートをプロジェクトディレクトリに arxiv-preflight-report.md として保存します。
判定結果とブロッキング問題の件数を提示します。READY の場合は、投稿を進められることを確認します。 NEEDS FIXES の場合は、必要な修正を優先度順に列挙します。
基本原則
- 二値判定による準拠確認。 arXiv の要件は提案ではありません。FAIL は投稿が却下されるか、処理が失敗することを意味します。WARN は問題が生じる可能性があることを意味します。
- 具体的な修正方法。 各 FAIL には、必要なコマンド、行、ファイルの変更を具体的に記載します。
- 誤検知をしない。 文書化された arXiv の要件に対する違反のみを指摘します。スタイル上の好みやベストプラクティスを FAIL として扱わないでください。
- プロセッサーを考慮する。 検出された TeX プロセッサーに合わせてすべてのチェックを行います。PDFLaTeX のルールは DVI モードの投稿には適用せず、その逆も同様です。