CTAN にパッケージを登録する話

TeX のパッケージを作って、それを CTAN にアップロードし、TeX Live にも取り込まれました。

<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="ja" dir="ltr">入ってたし、TeX Live にも入ってたわ。<a href="https://t.co/v8M73f5nBE">https://t.co/v8M73f5nBE</a> <a href="https://t.co/W8MVaS32rV">pic.twitter.com/W8MVaS32rV</a></p>&mdash; ひとみさん/ささっち逆垢 a.k.a. Carele Smith (@CareleSmith9) <a href="https://twitter.com/CareleSmith9/status/1131085673828454400?ref_src=twsrc%5Etfw">May 22, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ということで、CTAN にパッケージをアップロードする方法について記します。

ちなみに、今回 CTAN にアップロードしたパッケージはこちらです。トランプのカードをいい感じに出力するためのパッケージです。

+ [hmtrump パッケージ](https://ctan.org/pkg/hmtrump)

なお、CTAN にパッケージをアップロードすることに関しては、以下の 2 つのブログ記事も参考になります。

+ [TeX Live で使えるゆきだるま☃のまとめ–Acetaminophen’s diary](http://hak7a3.hatenablog.com/entry/20130305/1362500653)
+ [Load to CTAN（CTANに載るまで）–hak7a3が書き残す何か](http://acetaminophen.hatenablog.com/entry/2016/12/23/144042)

# CTAN にパッケージを登録する流れ

1. パッケージを作る
2. CTAN のページで情報を登録する
3. パッケージをアップロードする
4. 待つ

以下、順に説明します。

## パッケージを作る

このページを読んでいる皆さんには、パッケージの作り方について、改めて説明するまでもないですよね?

CTAN にアップロードするならば、README ファイルは作っておきましょう。別に日本語でも大丈夫らしいですが、私は英語と日本語を併記しました。また、README ファイル（に限らず、サンプルファイルなども）はユニークな名前になるようにしましょう。具体的に言えば、マニュアルを \[packagename\].pdf のような名前にしたり、サンプルファイルを \[packagename\]-sample.pdf のような名前にするとよいでしょう。

あと、他人の成果物をもとにパッケージを作っているときは（例えば、hmtrump パッケージのように、フリーフォントを利用しているときなど）、その成果物のライセンスを明記しましょう。私の場合は、CTAN にアップロードした後に、「フォントのライセンスを英語で書いておいて」と言われたので、英語にライセンスを訳したもの（と、ライセンスの原文）を追加しました。

もう一点。LaTeX のパッケージは、dtx とか ins を使って開発するのが一般的らしいですが、パッケージ本体とマニュアルを端から分離して作成していても大丈夫です。

その他、CTAN のページに[注意点](https://ctan.org/help/upload-pkg)が載っています。（私は目を通す前にアップロードしましたが）

## CTAN に情報を登録する

[アップロードのページ](https://ctan.org/upload) に行って、必要情報を記入しましょう。そして、 zip で固めたものをアップロードします。

以下、どのフィールドに何を記入するかという話。基本的にすべて英語で書きますが、英語の表現がおかしかったりしたら、CTAN 側で修正してくれます。素敵☃

### Summary

英文 1 文程度で、簡単にパッケージの概要を書きます。

### Description

CTAN のパッケージのページで、網掛けしてある部分の上に書かれる、パッケージの説明のところに載ります。

### Suggested CTAN directory

CTAN のどこのディレクトリにアップロードするかっていう話。類似パッケージがあれば、それを真似ればよいですが、わからなかったら /macros/latex/contrib って書いておけばいいはず。

### Announcement via mailing list and RSS (features, changes,...)

パッケージのアップロードを知らせる、メーリスに流すメールに、添付される文章。私は、“You can describe playin cards with this package; For instance, \hmtrump{Q}{H} will write Queen of Hearts.” って書いておきました。 “First Release.” って書いたら、「このパッケージの目的がわかるようにしてくれる?」 って言われました。

Summary より詳しめに書くべきだと思います。「このパッケージで、こんな事ができる」と、みんなに知らしめたいことを強調して書けばよいでしょう。

### License type

ライセンスをどうするかです。

何も無ければ、LPPL (The LaTeX Project Public License 1.3c) にすればいいです。 私は LPPL の中身を理解してなかったので、 CC-BY-SA-4 にしました。

TeX Live に入れたかったら、フリーなライセンスにしましょう。

あと、パッケージに含まれるフォントのライセンスは、独自ライセンスだったわけですが、CTAN の方で、README を読んでくれた結果、“Free li­cense not oth­er­wise listed” が追加されてました。まあ、他人の成果物がまるまる含まれてるパッケージなんて開発する機会は少ないでしょうから、こんなことを気にする人はあまりいないと思いますが。

## 待つ

アップロードしたら、1 時間ぐらいで CTAN から返信が来ます。修正するべき所があれば、それも教えてくれます。

もちろん CTAN からのメールは英語できます。したがって、高確率で迷惑メール判定されます。注意! そのせいで、私は 4 時間ほどメールに気づけませんでした。

メールの返信から、おおよそ 24 時間以内に CTAN に取り込まれるようです。もし、修正する所があれば、24 時間以内にアップデートしてやると、未修正なものが CTAN に入らなくなる（未修正のものが取り込まれる代わりに、アップデートしたやつが取り込まれる）ので、簡単な修正は 24 時間以内にやってしまいましょう。

## CTAN に取り込まれる

メールの返信から 24 時間程度経つと、CTAN に取り込まれます。やったね! ちなみに、取り込まれたことを通知するメールと同時に TeX Live のアップデートをしたら、自分のパッケージが降ってきました。TeX Live にはかなりすばやく取り込まれるらしい。

# まとめ

ということで、CTAN にアップロードするときの流れでした。

CTAN の方もすごく丁寧で、パッケージに不備があれば、丁寧に指摘してくれます。不備を恐れてアップロードしないよりも、指摘されるたびに修正するほうが手っ取り早いし、勉強になります。

あと、長い日本語文を英文に訳す時、Google 翻訳がすごく頼りになります。一発で自然な英語にならないのは確かにそうですが、日本語を調整すると、自然な英語が生成されます。

他に質問があれば、コメントしていただければ回答できる、かも。