【LaTeX】KETpicの現状と代用，そして環境構築

:::note 
現在[最新版](https://github.com/NXVZBGBFBEN/KeTCindyBook/blob/main/out/KeTCindyBook.pdf)を執筆中です．
ここに記されている内容は古すぎる可能性があります．
:::
:::note 
KeTCindyに関する情報は[ホームページ](https://nxvzbgbfben.pages.dev/works/ketcindy)で更新中です．
:::

## KETpic の現状

### KETpicとは
以下 KETpic の使い方[^1] より引用(一部改変)

> KETpic は，LaTeX 文書へ図を挿入するために開発された数式処理システム（CAS）のマクロパッケージであり，印刷配付教材の作成を支援することを目的として，その開発が進められている．  
> 2006 年に初めて Maple版 KETpic が開発された．現在では，Mathematica 版，Maxima 版，Risa/Asir 版，Scilab 版，Matlab 版，R 版が開発されている．  
> KETpic で作成された描画の特徴は
> + モノクロ，線画である．
> + 正確な長さで描ける．
> + LaTeX と同じフォントが使える．
> + 斜線塗りや点描ができる．
> + 3D 表現が豊かである．

つまり，数学などで用いる図を，お絵かきソフト等を用いて手描きで作成した画像ファイルを取り込むのではなく，Scilab や Maxima などの数式処理システムで作成した正確な図を，TeXファイルとして取り込むことのできるマクロパッケージである．  
詳細な情報は下記リンクを参照されたい．
+ [KETpic による教材作成と Symbolic Thinking](https://core.ac.uk/download/pdf/39298137.pdf)
+ [KETpic による作図プログラミング書法について](https://research.kosen-k.go.jp/file/629)
+ [CIEC Special 第7回 学生が何を感じるかに思いを馳せた教材作成を目指して](https://www.ciec.or.jp/special/entry-1041.html)

### KETpic を使うには
KETpic を使うには，http://ketpic.com にアクセスして，パッケージ一式をダウンロードする必要があるのだが，2021年4月頃から，サイトが利用できない状態になっている．
詳しい状況などは下に示すツイートにまとめてあるため，別途参照されたい．

https://twitter.com/NXVZBGBFBEN/status/1562586407654543361

## KETpicの代用 
前述した通り，現在は KETpic のパッケージを利用することができない．
そこで，代用することができるのが KETpic の進化版である KeTCindy だ．

### KETpic の進化版，KeTCindy
以下 KeTCindy Home[^2] より引用(一部改変)

> + Cinderellaのライブラリで，TeXの図を簡単に作成できます
> + KeTCindyJSで対話的なHTMLを簡単に作成することもできます
> + KeTCindyから，Maximaやgccを利用することができます
> + 数学プリント作成マクロemathを簡単に組み込むことができます
> + YouTubeの[ketcindy](https://www.youtube.com/results?search_query=ketcindy) にいくつかの紹介動画があります

KETpic は，数式処理ソフトで描画した図を取り込む仕組みだったが，KeTCindy は Cinderella を使って図形を描き，TeX の図版ファイルを作るためのシステム[^3]だ．  
Cinderella は 動的幾何学ソフトと呼ばれ，数学の作図に特化したツールであり，GUI や CindyScript という作図専用プログラミング言語が提供されている．  
KeTCindy では，Cinderella を用いることにより，KETpic に比べて簡単に図が描画できるようになった．  
また，R や C，Maxima などと連携することにより，複雑な処理をすることも可能である．  
詳細な情報は下記リンクを参考にされたい．
+ [Maxima を活用したPDFスライド教材の作成について](https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/2105-20.pdf)
+ [Cinderella](https://sites.google.com/site/cinderellajapan/)

## KeTCindy を利用するための環境構築
KeTCindy は，非常に便利で強力なツールである反面，環境構築が少々大変でもある．  
ここでは，KeTCindy の導入から，TeX 文書に図を取り込むところまでを解説する．TeX の導入方法はここでは説明しない．  
また，開発者である高遠節夫氏による KeTCindy Home[^2] にて最新のインストール方法が掲載されているため，参照されたい． 

### 1. 基本環境
<table>
    <thead>
        <tr>
            <td></td>
            <td style="text-align: center;">環境</td>
            <td style="text-align: center;">備考</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="text-align: center;">OS</td>
            <td style="text-align: left;">Windows 11 Pro</td>
            <td style="text-align: left;">64bit, Version 21H2</td>
        </tr>
        <tr>
            <td style="text-align: center;">TeX ディストリビューション</td>
            <td style="text-align: left;">TeX Live 2022</td>
            <td></td>
        </tr>
        <tr>
            <td style="text-align: center;">TeX 処理系</td>
            <td style="text-align: left;">e-pTeX</td>
            <td style="text-align: left;">dvipdfmx を使用</td>
        </tr>
        <tr>
            <td style="text-align: center;">エディタ</td>
            <td style="text-align: left;">Visual Studio Code</td>
            <td style="text-align: left;">Latexmk を使用</td>
        </tr>
    </tbody>
</table>

### 2. ダウンロード
<table>
    <thead>
        <tr>
            <td style="text-align: center;">ソフトウェア類</td>
            <td style="text-align: center;">バーション</td>
            <td style="text-align: center;">備考</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="text-align: center;"><a href="https://github.com/ketpic/ketcindy/releases">KeTCindy</a></td>
            <td style="text-align: center;">4.4.13</td>
            <td style="text-align: left;">Source Code (zip) を選択</td>
        </tr>
        <tr>
            <td style="text-align: center;"><a href="https://cran.r-project.org/bin/windows/base/">R</a></td>
            <td style="text-align: center;">4.2.1</td>
            <td style="text-align: left;">Download R-4.2.1 for Windows を選択</td>
        </tr>
        <tr>
            <td style="text-align: center;"><a href="https://beta.cinderella.de/">Cinderella</a></td>
            <td style="text-align: center;">3.0b</td>
            <td style="text-align: left;">Windows 64 Bit Installer を選択</td>
        </tr>
        <tr>
            <td style="text-align: center;"><a href="https://sourceforge.net/projects/maxima/files/Maxima-Windows/5.46.0-Windows/">Maxima</a></td>
            <td style="text-align: center;">5.46.0</td>
            <td style="text-align: left;">maxima-5.46.0-win64.exe を選択<br>数式処理に用いる<br>必須ではないが推奨しておく</td>
        </tr>
        <tr>
            <td style="text-align: center;"><a href="https://sourceforge.net/projects/mingw-w64/files/mingw-w64/">MinGW</a></td>
            <td style="text-align: center;">8.1.0</td>
            <td style="text-align: left;">x86_64-posix-sjlj を選択<br>曲面描画に用いる<br>必須ではないが推奨しておく</td>
        </tr>
        <tr>
            <td style="text-align: center;"><a href="https://www.sumatrapdfreader.org/download-free-pdf-viewer">SumatraPDF</a></td>
            <td style="text-align: center;">3.4.6</td>
            <td style="text-align: left;">SumatraPDF-3.4.6-64-install.exe を選択<br>他のPDFビューアで代用可能<br>Acrobat Reader DC を用いる方法を併せて解説する</td>
        </tr>
        <tr>
            <td style="text-align: center;"><a href="http://emath.s40.xrea.com/">emath</a></td>
            <td style="text-align: center;">f051107c</td>
            <td style="text-align: left;">こちら>入口>丸ごとパック とたどり<br>emathf051107c.zip を選択<br>今回は導入しないが，必要な場合はダウンロードする</td>
        </tr>
    </tbody>
</table>

### 3. インストール

#### KeTCindy のインストール
:::note warn
ファイル名に``-``が含まれていると正常に設定できない場合がある
:::
1. ダウンロードしてきた``ketcindy-4.4.13.zip``を C ドライブ直下に移動する
2. ``ketcindy-4.4.13.zip``を展開 (新規フォルダには展開しない)
3. 展開された``ketcindy-4.4.13``の``-``を削除

#### R のインストール
:::note info
既定以外の場所にインストールした場合は検証していない
:::
1. ダウンロードしてきた``R-4.2.1-win.exe``を実行
2. 「日本語」がデフォルトで選択されているため，[OK] で続行
3. ライセンスを読んで [次へ] で続行
4. インストール先は変更せずに [次へ] で続行
5. すべての項目にチェックが入っていることを確認して [次へ] で続行
6. 「いいえ」がデフォルトで選択されているため， [次へ] で続行
7. アイコンの設定のみお好みで変更して [次へ] でインストール
8. [完了] でインストーラを終了

#### Cinderella のインストール
:::note info
既定以外の場所にインストールした場合は検証していない
:::
1. ダウンロードしてきた``Cinderella-3.0b.2055-64bit.exe``を **管理者として** 実行
2. [次へ] で続行
3. インストール先は変更せずに [次へ] で続行
4. お好みで設定を変更して [次へ] で続行
5. [終了] でインストーラを終了

#### Maxima のインストール
:::note info
既定以外の場所にインストールした場合は検証していない
:::
1. ダウンロードしてきた``maxima-5.46.0-win64.exe``を実行
2. [次へ] で続行
3. 契約書を読んで [同意する] で続行
4. インストール先は変更せずに [次へ] で続行
5. スタートメニューフォルダはお好みで変更して [次へ] で続行
6. すべての項目にチェックが入っていることを確認して [インストール] で続行
7. [閉じる] でインストーラを終了

#### MinGW のインストール
:::note info
今回は``C:\Program Files``に展開する
別の場所に展開した場合はパスを適宜読みかえること
:::
1. ダウンロードしてきた``x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z``をお好みの場所に展開
2. 展開された``mingw64``を開き，``\bin``の中に``gcc.exe``が存在することを確認する
3. スタートメニューを右クリックし，「システム」を開く
4. 「デバイスの仕様」の下の方にある「システムの詳細設定」を開く
5. [環境変数] を開く
6. 「システム環境変数」の``Path``を選択した状態で [編集] を開く
7. [新規] を選択し，``gcc.exe``が存在するフォルダ名``C:\Program Files\mingw64\bin``を入力する
8. それぞれのウィンドウで [OK] を押して，すべて閉じる

#### PDF ビューアのインストール
<details>
    <summary>
        SumatraPDF を用いる場合
    </summary>

:::note alert
``Program Files (x86)``または``Program Files``以外の場所にインストールしないようにすること
:::
1. ダウンロードしてきた``SumatraPDF-3.4.6-64-install.exe``を実行する
2. [オプション] を開く
3. インストール先フォルダに``C:\Program Files (x86)\SumatraPDF``を入力する
4. すべての項目にチェックが入っていることを確認して [SumatraPDFをインストール] でインストール
5. 右上の [✕] でウィンドウを閉じる
</details>
<details>
    <summary>
        Acrobat Reader DC またはその他の PDF ビューアを用いる場合
    </summary>

:::note info
ここではインストール済みの Acrobat Reader DC を例に，扱い方をまとめておく．
他の PDF ビューアを用いる場合は，適宜読みかえること．
:::
1. スタートメニューを開き， [すべてのアプリ] を開く
2. 「Adobe Acrobat DC」を右クリックし，[詳細] から [ファイルの場所を開く] を開く
3. ハイライトされたショートカットを右クリックし，[ファイルの場所を開く] を開く
4. ハイライトされた``Acrobat.exe``を右クリックし，[パスのコピー] を選択する
5. クリップボードにパスがコピーされたため，どこか分かりやすい場所にペーストして保存しておく
</details>

#### コンピュータの再起動
1. 今開いているアプリケーションやフォルダをすべて閉じる
2. コンピュータを再起動する

### 4. 設定
:::note info
Acrobat Reader DC または またはその他の PDF ビューアを用いた場合は，
``!! SumatraPDF not in 'Program Files( x86)'!!``と表示されているのが正常．
:::
:::note info
``gcc not found`` と表示されている場合があるが，このまま進めてよい．
:::
1. ``C:\ketcindy4.4.13\doc\ketcindysettings.cdy``を開く
2.  [Texlive] を押す
3.  [Mkinit] を押す
4.  [Update] を押す
5.  [Work] を押す
6. 右上の [✕] で Cinderella を終了する
7. ユーザフォルダ直下に<code>ketcindy.ini</code>と<code>ketcindy<em>yyyy</em><em>MMM</em><em>dd</em></code>が作成されていることを確認する
8. ``ketcindy.ini``を下のように書き換える
```diff:ketcindy.ini
PathThead="C:/texlive/2022/bin/win32";
Dirhead="C:/texlive/2022/texmf-dist/scripts/ketcindy";
Homehead="";
setdirectory(Dirhead);
import("setketcindy.txt");
PathT=PathThead+"/platex";
GPACK="pict2e";
Pathpdf="C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe";          ; SumatraPDF をインストールした場合．
- Pathpdf="";                                                        ; Acrobat Reader DC またはその他の PDF ビューアを用いる場合．
+ Pathpdf="C:/Program Files/Adobe/Acrobat DC/Acrobat/Acrobat.exe";   ; 事前にコピーして保存しておいたパスをペースト．
PathR="C:/Program Files/R/R-4.2.1/bin";
PathM="C:/maxima-5.46.0/bin/maxima.bat";
PathC="gcc";                                      ; 設定時に gcc not found と表示されなかった場合．
- PathC="";                                       ; 設定時に gcc not found と表示された場合．
+ PathC="C:/Program Files/mingw64/bin/gcc.exe";   ; gcc.exe のパスを指定する．フォルダを表す記号が「/」であることに注意．
PathV3="";
PathAd="";
PathA="C:/Program Files/asir/bin/asir";
//PathW="";
PathF="C:/cygwin/bin";
Helplist("read",[],"helpJ");
setdirectory(Dircdy);
```

### 5. 実際に Cinderella を用いて作成した図を TeX で出力する

#### Cinderella を用いて作図する
ここでは，Cinderella のテンプレートを用いて平面幾何の作図をしてみる．  
下準備の方法のみ下に示す．具体的な Cinderella の操作方法は，ユーザフォルダ直下にある<code>ketcindy<em>yyyy</em><em>MMM</em><em>dd</em>\KeTCindyGuideJ.pdf</code>に詳しくまとめられているため，それを参考にしてプレビュの PDF が出力されるところまで自力でたどり着いてほしい．  
1. 好きな場所に，自由な名前でフォルダを作成する (ここでは，デスクトップに``work``という名のフォルダを作成した)
2. ``C:\texlive\2022\texmf-dist\scripts\ketcindy\template1basic.cdy``を``work``にコピー
3. ユーザフォルダ直下の``ketcindy.ini``を``work``にコピー
4. ``template1basic.cdy``を開く
:::note info
作成される図形に x 軸と y 軸が含まれてしまう場合，``Addax(0);``と記述すると消去することができる．
:::
正常にプレビュされたら，PDF ビューアと Cinderella を閉じる (変更は保存する)．  

#### TeX 文書に作成した図形を取り込む
実際に TeX 文書に取り込む方法を示す．
1. ``work``内に任意の名前で TeX ファイルを作成する．(ここでは``template.tex``とする．)
2. ``template.tex``を下のように記述する．
```tex:template.tex
\documentclass[a4j,dvipdfmx]{jsarticle}
\usepackage{pict2e}
\usepackage{ketpic2e, ketlayer2e}
\usepackage{graphicx, color}
\usepackage{wrapfig}
\begin{document}
  \begin{wrapfigure}{r}{75mm}
    \input{fig/innercircle.tex}
  \end{wrapfigure}
  Cinderellaで作成した図形を\\
  A4 サイズの\TeX 文書に取り込むことができた．
\end{document}
```
この TeX ファイルを処理することによって，このような文書が得られる．  
![KeTCindy1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663103/691ffc3d-f756-e4b3-06e2-2186cbde5790.png)
具体的な TeX コマンド等はユーザフォルダ直下にある<code>ketcindy<em>yyyy</em><em>MMM</em><em>dd</em>\KeTPicStyleJ.pdf</code>に詳しくまとめられているため，別途参照されたい．

## 最後に
```math
\text{Let's happy TeXing!}
```

[^1]: 高遠節夫，ほか．『KETpic の使い方』．https://oku.edu.mie-u.ac.jp/texconf10/presentations/yamashita.pdf
[^2]: KeTCindy Home．「KeTCindy Home」．https://s-takato.github.io/ketcindyorg/indexj.html
[^3]: KeTCindy．「KeTCindy」．https://sites.google.com/site/ketcindy/home