Saturday, December 20, 2014

LaTeXでカレンダー自作

次年度用に以下のようなカレンダーを自炊した.

日本語の解説があまりなかった上ヘルプも少し不親切なため,以下作り方をメモしておく.
  1. CTANからcalendarパッケージをダウンロード.コマンドプロンプトでallcal.insを実行しインストール.
  2. 必要に応じて作業用フォルダにstyファイルとcldファイルをコピー.
    • たとえば私の場合月次カレンダーを作りたかったので,demomont.tex, calendar.sty, dates.sty, monthly.sty, overword.sty, demo1997.cld, demoapt.cld, demoaptr.cld, demoevt.cld, demoevtr.cld, demolist.cld, を使用.
  3. いろいろ編集してtexファイルをコンパイル.以上.
編集するファイルは大きく3種類に分かれる.
  1. texファイル (e.g., demomont.tex)
  2. 日付のレンジを指定するファイル (e.g., demo1997.cld)
  3. 予定を書き込むファイル (e.g., demoaptr.cld, demoevtr.cld)

日付のレンジは,2015年度全体,2015年度前期,2015年度後期,と3種類ぐらい用意しておくと便利だ.たとえば
April 1 2015 to August 10 2015 {Spring}
とだけ書いたテキストファイルを,2015spring.cldなどと名付けてtexと同じディレクトリに入れておく.

春学期用の予定を書き込むファイルのほうでは,
range 2015spring {Spring}
every Friday 9:00-16:10 {lecture}
every Wednesday 10:30-14:30 {lecture}
every second Wednesday 15:00-16:00 {fac.meeting}

などと書く.一行目でレンジを指定,2行目以降は予定を適宜書き込む.

日本の祝日ファイルも別途作成した.たとえばこんな感じ:
range 2015range {all}
%fixed date
every January 1 {元日}
every February 11 {建国記念の日}
every April 29 {昭和の日}
every May 3 {憲法記念日}
every May 4 {みどりの日}
every May 5 {こどもの日}
%every August 11 {山の日}
every November 3 {文化の日}
every November 23 {勤労感謝の日}
every December 23 {天皇誕生日}

%2015 specific date:
January 12 2015 {成人の日}
March 21 2015 {春分の日}
May 6 2015 {振替休日}
July 20 2015 {海の日}
September 21 2015 {敬老の日}
September 22 2015 {国民の休日}
September 23 2015 {秋分の日}
September 24 2015 {振替休日}
October 12 2015 {体育の日}


texファイルでは,\begin{document}の後に
\begin{landscape}

\begin{monthly}

{texttype=\footnotesize}
{2015lecture1:BlueViolet,2015lecture2:BlueViolet, 2015evtr1:OliveGreen,2015evtr2:OliveGreen,2015holiday:Mahogany}
January 2015 to April 2016

\end{monthly}

\end{landscape}
などを挿入すれば良い.つまり,予定を書き込んだcldファイルをそれぞれ読み込ませればよい.ここでは予定の種類ごとにBlueVioletなどの色を付けている.その他レイアウトは好みで.私の場合,booktabsとcolortblを使いながらmonthly.styの180行目あたりを編集した.

現時点でよくわからないのは,第四週目の指定の仕方(first, second, thirdまでは使えるがfourthや4thが使えない)だ.若干不便である.あと,Google Calendarと連動させることができればよいんだけれどそんなテクニックは持っていない.

No comments:

Post a Comment