@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

= Excelに嫌気がさしてLaTeXで書き直した話 #texadvent

[2012-12-05 19:02:14]

これはTeX & LaTeX Advent Calendar : ATNDの12/5の分の記事です.
遅くなってしまいすみません.
前日はmunepiさんの絵もいいけど、文字もいいよ♪ - I’m just another TeXnician.でした.
次の日はkurokyさんです.

LaTeXでなんか書くこと無いかなって考えたらこれしか思いつきませんでした.

経緯

Excelでこんな感じの書類を毎月3種類提出する必要がありました.

(勤務月,勤務した日付1ヶ月分,曜日,勤務時間,時間数,時間の合計)×担当授業の数(私は3つだった)を

毎回入力して,曜日が間違ってないか,この週は休んでないか,確認するのが面倒でした.
ちょっと不規則な時間があると合計時間の計算を忘れてそのまま出してしまったりと,
なかなかイライラがつのったので,TeXの勉強がてらTeXで同じフォーマットを作ってみました.

使い方

こんな感じで使います.

ta-report.sty(後述)を読み込んで,自分の名前,授業名等々を指定した後に,

\makereport

で授業一つが1ページタイプセットされるので,これを繰り返します.

指定できる設定はこんな感じです.

% TA氏名
\taname{野比 のび太}
%科目名.情報活用基礎で良ければ省略可
\taclass{$\circ\times$小学校}
%科目名.情報活用基礎で良ければ省略可
\taclassname{頭の良くなる方法}
% 教員所属
\affiliation{5年3組}
% 教員氏名
\teachername{出木杉 英才}
% 曜日
\weekday{}
% 時限
\period{1}
% 欠勤した週の指定(コンマ区切りで何週目かを書く)
\absent{2,4}

出来上がりはこんな感じになります.
ta-report.pdf

スタイルファイル

中身はこんな感じです.

  • ツェラーの公式で曜日を求める(eukdate.styより引用) line.20-88
  • 設定用変数の定義と初期化 line.129-142
  • 何時限目が何時から何時までか line.143-162
  • 閏年の判定(その月が終わる日付を求めるため) line.163-196
  • 曜日名(月とか)からツェラーの公式の曜日番号への変換 line.206-245
  • 年,月,曜日から日にちを求めるマクロ line.246-254
  • 表の各行を出力するマクロ(勤務日の出力と,欠勤日のスキップ) line.255-287
  • 合計時間の計算 line.288-294
  • カンマ区切りの文字列から数値にするマクロ line.295-323
  • 全体を出力するテンプレート出力のマクロ line.325-420

LaTeXで変数とかif文,while文を使ったりするときの参考になればいいかな.くらいの気持ちでした.
特に解説してるわけじゃなくてすみません.比較的コメント書いてる方だと思うので参考にしてもらえればと思います.
(本音は去年作ったスタイルファイルで,あんまり覚えてない)