`pptx2md.py` プログラムの解析結果を以下に示します。

---

## `pptx2md.py` プログラム解析

### 1) プログラムの動作

`pptx2md.py` は、指定された PowerPoint (`.pptx`) ファイルから以下の要素を抽出し、Markdown (`.md`) 形式のファイルとして出力するPythonスクリプトです。

-   **スライドタイトル**: 各スライドのタイトルを抽出し、Markdownの見出し (`#` または `##`) として出力します。
-   **テキストコンテンツ**: 各スライド内のテキストボックスやプレースホルダーに記述されたテキストを抽出し、Markdownに出力します。
-   **数式**: PowerPointに埋め込まれた Office Math Markup Language (OMML) 形式の数式を検出し、LaTeX形式に変換して出力します。
    -   Unicode 数学記号はASCIIまたはLaTeXコマンドにマッピングされます（例: `∫` → `\int`, `α` → `\alpha`）。
    -   分数 (`\frac`), ルート (`\sqrt`), 上付き/下付き文字 (`^`, `_`), デリミタ（括弧など）、積分、総和、総乗などのn-ary演算子に対応しています。
    -   数式は、Markdownのディスプレイ数式ブロック (`$$ ... $$`) として出力されます。
    -   複数行の数式（`\\` で区切られている場合）は、`$$ ... $$` のブロックごとに分割されて出力されます。
    -   `--xml` オプションを使用すると、変換元のOMML XMLもMarkdown内に出力されます。
-   **画像**: 各スライドに埋め込まれた画像を抽出し、指定されたディレクトリにファイルとして保存します。Markdownファイル内には、それらの画像への相対パスを示すリンクが記述されます。

### 2) 必要な非標準ライブラリとインストールコマンドとインストール方法

このプログラムは、以下の非標準ライブラリを使用しています。

-   `python-pptx`: PowerPointファイル (`.pptx`) の読み込みと解析に使用されます。
-   `lxml`: XMLデータを効率的に解析するために使用されます。PowerPointファイル内部のXML構造（特に数式関連）の処理に必要です。

**インストールコマンド:**

```bash
pip install python-pptx lxml
```

**インストール方法:**

Pythonのパッケージ管理ツールである `pip` を使用します。コマンドプロンプト（Windows）またはターミナル（macOS/Linux）を開き、上記のコマンドを実行してください。これにより、必要なライブラリが自動的にダウンロードされ、Python環境にインストールされます。

### 3) 必要な入力ファイル

-   **PowerPointファイル (`.pptx`)**: 変換元のPowerPointファイル。
    -   コマンドライン引数 `-i` または `--input` でパスを指定します。
    -   例: `my_presentation.pptx`

### 4) 実行後に生成される出力ファイル

-   **Markdownファイル (`.md`)**: PowerPointファイルから抽出されたテキスト、LaTeX形式の数式、および画像へのリンクを含むテキストファイルです。
    -   コマンドライン引数 `-o` または `--output` でファイル名を指定します。
    -   例: `output_notes.md`
-   **画像ファイル群**: PowerPointファイル内に埋め込まれていた画像データ（例: `.png`, `.jpeg`, `.gif` など）。
    -   これらは、`--imagedir` オプションで指定されたディレクトリ（デフォルトは `images`）内に保存されます。
    -   例: `images/slide1_image1.png`, `images/slide2_image1.jpeg`

### 5) コマンドラインでの使用例 (Usage)

`pptx2md.py` は、コマンドライン引数を使用して動作を制御します。

**基本的な使用例:**
入力ファイル `presentation.pptx` を解析し、結果を `output.md` に出力します。画像はデフォルトの `images` ディレクトリに保存されます。

```bash
python pptx2md.py -i presentation.pptx -o output.md
```

**画像保存ディレクトリを指定する例:**
画像ファイルを `figures` という名前のディレクトリに保存します。

```bash
python pptx2md.py -i report.pptx -o report_summary.md --imagedir figures
```

**数式の元のOMML XMLも出力する例:**
Markdownファイルに数式のLaTeX変換結果と、その元のOMML XMLの両方を含めます。

```bash
python pptx2md.py -i math_lesson.pptx -o lesson_notes.md --xml
```

**終了時にENTERキー入力を要求する例:**
スクリプト実行後、コンソールがすぐに閉じないように一時停止します。

```bash
python pptx2md.py -i presentation.pptx -o output.md --pause 1
```

**すべてのオプションを組み合わせて使用する例:**

```bash
python pptx2md.py -i detailed_slides.pptx -o converted_document.md --imagedir slide_images --xml --pause 1
```