```markdown
# make_kpoints.py Documentation

## 1. プログラムの動作
`make_kpoints.py`は、CIF (Crystallographic Information File) ファイルからVASP (Vienna Ab initio Simulation Package) のバンド構造計算用のKPOINTSファイルを生成するプログラムです。このプログラムは、`pymatgen`ライブラリの`HighSymmKpath`ユーティリティを使用して、高対称k点パスを生成します。

## 2. 必要な非標準ライブラリとインストールコマンドとインストール方法
このプログラムは、`pymatgen`ライブラリを使用しています。`pymatgen`は非標準ライブラリであり、以下のコマンドでインストールできます。

```bash
pip install pymatgen
```

## 3. 必要な入力ファイル
- **CIFファイル**: 結晶構造情報を含むCIFファイルが必要です。このファイルは、プログラムの引数として指定します。

## 4. 実行後に生成される出力ファイル
- **KPOINTSファイル**: 指定された出力ファイル名（デフォルトは`KPOINTS`）で生成されます。このファイルは、VASPのバンド構造計算に使用されます。

## 5. コマンドラインでの使用例 (Usage)
以下は、`make_kpoints.py`の使用例です。

```bash
python make_kpoints.py example.cif
```

上記のコマンドは、`example.cif`というCIFファイルからKPOINTSファイルを生成します。オプションを指定することで、出力ファイル名や他のパラメータを変更できます。

### オプション一覧
- `--primitive_on_read`: CIFファイルを読み込む際に基本格子に変換します。
- `-c`, `--conventional`: CIFファイルから読み込んだセルをそのまま使用します。
- `--international-monoclinic`: 構造を標準化する際に国際モノクリニック規約を使用します。
- `--keep-site-properties`: 原子セルを標準化する際に元のサイトプロパティを保持します。
- `-f`, `--frac_tolerance`: 構造パラメータの許容誤差（デフォルト: 1e-4）。
- `-d`, `--max_den`: 逆空間での分数座標の丸めに使用する最大分母（デフォルト: 4）。
- `-s`, `--symprec`: 対称性検出のための位置許容誤差（デフォルト: 1e-4）。
- `-a`, `--angle-tol`: 対称性検出のための角度許容誤差（デフォルト: 0.1度）。
- `-n`, `--ndivisions`: 各パスセグメントに沿ったk点分割数（デフォルト: 20）。
- `-p`, `--path-type`: 高対称パスの規約を指定（デフォルト: `setyawan_curtarolo`）。
- `-o`, `--output`: KPOINTSファイルの出力ファイル名（デフォルト: `KPOINTS`）。

### 例
```bash
python make_kpoints.py example.cif --primitive_on_read -n 30 -o custom_kpoints
```
このコマンドは、`example.cif`を読み込み、原子セルに変換し、各パスセグメントに沿ったk点分割数を30に設定し、`custom_kpoints`という名前でKPOINTSファイルを出力します。
```