研究室用のLaTeXクラスを作ったときの話

具体的なクラスの作り方はいつかまとめてQiitaにもあげたいなと思いながらちょっと愚痴をこぼす

はじめに

僕は高専の専攻科2年生20218月時点です本科5年生のときから研究室所属し気付いたら3年目で今年で卒業です

そんな研究室には10年以上前から卒論修論用のLaTeXスタイルファイルが用意されていましたそのファイルは古くLuaLaTeX等では動かせないなどの問題がありました

そうだ新しいテンプレートを作ろう!

テンプレートの作り方

テンプレートを作るには大きく2つの方法があります

  1. 既存のクラスjsarticlejlreqなどと自作スタイルファイルで作成
  2. 既存のクラスをベースに新しいクラスファイルの作成

自由度が高く勉強にもなる2つ目の方法でテンプレートを作成することにしました

jlreqをベースにしました理由は新しくクラスで対応している調整が多いからですまたpLaTeXupLaTeXLuaLaTeXに対応しているからです

作り方は誰から学ぶ?

クラスファイルの作成方法はそこまで情報が無いので主に英語の内容で調査することが多かったですまあ情報があるのでそこまで困りません

言語処理学会の年次大会予稿集用LaTeXクラスのNLProceedingsjlreqをベースだったので凄く参考になりました7割はこのソースコードから学びました

expl3について

expl3エクスペルスリーとはLaTeX3チームが開発しているプログラミング言語ですTeX言語で実装されていてTeX上で動作しますTeXのマクロは地獄みたいに辛いですがexpl3快適なTeX生活を送れます詳しくはググれ

変数とか関数が定義できるので非常に便利です卒論クラスの作成に伴い勉強しました他のプログラミング言語に比べたらなかなかしんどいですがTeXより幸せなので我慢できました

さて愚痴でもこぼすか

今日(u)pLaTeXが使えなくなるだろうと言われている中あらゆる学会等で(u)pLaTeXのテンプレートを配布していますupLaTeXならともかくpLaTeXだけの学会も少なくありません今後のことを考えると日本語LaTeXをどうするかLaTeXユーザは考えなければ行けないのでは無いでしょうか?

今回卒論クラスの作成に当たって簡単な体裁の設定をするクラスファイルは作れると感じましたjlreqが使える環境TeX Live 2017以降?では問題なく動作します学会用クラスは新しく作り直す必要があると感じます僕が出る学会の予稿もゴミみたいなクラスファイルしか用意されていまでした皆さんが所属する学会のクラスファイルを作ることが今後の日本を支えると思っています

そういえば学内の研究発表用のテンプレはMS Wordだけですしかも拡張子がdocxがついてないほど古いですフォントはMS Minchoを強制したりなどクソがクソするくらいクソ1です卒業までにどうにかしていきたいなと思ってます

今後について

今後は↓のことをやっていきたいですこんな愚痴をこぼしてないで手を動かさないとですね

  • クラスファイルを作るための方法を具体的にまとめていきたいですソースコードを公開できるといいですね
  • 実はクラスファイル以外に論文の書き方についても簡単に執筆しましたそれも公開できるといいなと思ってます
  • 学内の予稿クラスを作成するMS Word用も新しくする
  • 僕が出る学会用の予稿クラスも作成できれば学外での活躍になって嬉しいですね

文献

  1. jlreq (GitHub)
  2. NLProceedings (GitHub)
  3. expl3 (CTAN)

  1. 詳しく話すと長いので簡略化してます ↩︎