mcpField
E
extract-tikz

extract-tikz

github.com/pedrohcgsドキュメント1.7k51 回インストール4 週間前に更新
リポジトリ

extract-tikz について

BeamerのソースからTikZ図を抽出し、複数ページのPDFにコンパイルして、Quartoスライド用のSVGに変換するスキルです。ソースの整合性と作図ルールを確認し、視覚レビューも行います。

主な機能

  1. 01抽出ファイルとBeamerソースの照合
  2. 02TikZの予防ルール確認
  3. 03複数ページPDFへのコンパイル
  4. 04ページごとのSVG変換
  5. 05ファイル同期と視覚レビュー

活用シーン

  1. 01Beamerの図をQuartoスライドで再利用
  2. 02TikZソース変更後のSVG再生成
  3. 03図のラベルと形状の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pedrohcgs/claude-code-my-workflow --skill extract-tikz

インストール後、Claude Code で/extract-tikzを入力して読み込まれたか確認します。

詳細

TikZ 図を SVG に抽出する

Beamer ソースから TikZ 図を抽出し、複数ページの PDF にコンパイルしてから、各ページを Quarto スライドで使用する SVG に変換します。

抽出ではなく、新しい図を作成しますか? /new-diagram を使用してください。事前に適用された防止ルールとともに、templates/tikz-snippets/ からひな形を作成します。

手順

ステップ 0:最新状態の確認(必須)

コンパイルする前に、extract_tikz.tex が現在の Beamer ソースと一致していることを確認してください。

  1. Beamer ソースを探します:ls Slides/$ARGUMENTS*.tex
  2. Beamer からすべての \begin{tikzpicture} ブロックを抽出します
  3. Figures/$ARGUMENTS/extract_tikz.tex と比較します
  4. 差異が1つでもある場合:Beamer ソースから extract_tikz.tex を更新します
  5. extract_tikz.tex が存在しない場合:新規作成します
ステップ 1:防止ルールの事前チェック(必須 — 違反があれば中止)

コンパイルする前に、Figures/$ARGUMENTS/extract_tikz.tex 内のすべての \begin{tikzpicture} ブロックが .claude/rules/tikz-prevention.md の防止ルールを満たしていることを確認します。この事前チェックには、/new-diagram と共有する小さな Python スクリプトを使用します。これにより、両方のスキルで同じ動作が適用されます。

python3 scripts/check-tikz-prevention.py "Figures/$ARGUMENTS/extract_tikz.tex"

チェック項目:

  • P3 — ノードのスケーリングを伴わない scale=X。 scale= のみでは座標は縮小されますが、テキストは縮小されません。許可される形式:scale=X, every node/.style={scale=X} または scale=X, transform shape。チェッカーは、複数行にわたる場合も含め、\begin{tikzpicture}[...] オプションブロック全体を解析します。
  • P4 — エッジラベルの方向キーワード。 すべてのエッジラベル(\draw 内の node)には、above、below、left、right、または複合形(例:above left)を指定する必要があります。midway のみではパス上の位置を示すだけで、方向を示しません。チェッカーは \draw ...; 文全体をスキャンするため、\draw が1行目にあり、node[...]{...} が次の行にある場合も両者を関連付けます。

事前チェックで強制しない項目にも注意してください。P1(ボックス付きノードの明示的な寸法)と P2(座標マップのコメント)は構造的なルールであり、ここではなくステップ 8 の tikz-reviewer が検出します。

終了コード:0 = すべてのファイルが合格、1 = P3/P4 違反が1つ以上(stderr にファイル、行、スニペット、ルールを表示)、2 = 使用方法のエラー。

終了コードが0以外の場合:処理を中止し、該当する行を報告して、Beamer ソース(単一の信頼できる情報源)を修正するようユーザーに依頼します。コンパイルしてはいけません。

ステップ 2:講義の Figures ディレクトリに移動
cd Figures/$ARGUMENTS
ステップ 3:extract_tikz.tex ファイルをコンパイル
TEXINPUTS=../../Preambles:$TEXINPUTS xelatex -interaction=nonstopmode extract_tikz.tex
ステップ 4:ページ数を数える
pdfinfo extract_tikz.pdf | grep "Pages:"
ステップ 5:0始まりのインデックスを使って各ページを SVG に変換

重要:PDF のページ番号は1始まりですが、出力される SVG ファイルは0始まりです!

PAGES=$(pdfinfo extract_tikz.pdf | grep "Pages:" | awk '{print $2}')
for i in $(seq 1 $PAGES); do
  idx=$(printf "%02d" $((i-1)))
  pdf2svg extract_tikz.pdf tikz_exact_$idx.svg $i
done
ステップ 6:デプロイ用に docs/ に同期
cd ../..
./scripts/sync_to_docs.sh $ARGUMENTS
ステップ 7:SVG ファイルを確認
  • SVG ファイルを2~3個読み込み、有効な SVG マークアップが含まれていることを確認します
  • ファイルサイズが妥当であること(0バイトではないこと)を確認します
ステップ 8:視覚的な品質レビュー(tikz-reviewer)

TikZ ソースブロックを tikz-reviewer エージェント(Agent ツールで subagent_type=tikz-reviewer を指定)に渡し、ラベルの重なり、幾何学的な誤り、視覚的な不整合を検出します。レビュー担当者は .claude/rules/tikz-measurement.md の具体的なパスと数式を引用します。NEEDS REVISION または REJECTED が返された場合は、次の手順を繰り返します。

  1. 推奨された修正を Beamer の .tex ソース(単一の信頼できる情報源)に適用します。
  2. 更新したブロックを extract_tikz.tex に再コピーします。
  3. 防止ルールの事前チェック(ステップ 1)を再実行してから、コンパイルします。
  4. SVG を再生成し、再同期します。
  5. tikz-reviewer を再度実行します。

tikz-reviewer が APPROVED を返した時点で終了します(最大5ラウンド)。

ステップ 9:結果を報告

信頼できる情報源に関する注意

TikZ 図は必ず最初に Beamer の .tex ファイルで編集し、その後 extract_tikz.tex にそのままコピーしてください。.claude/rules/single-source-of-truth.md を参照してください。

コメント