やりたいこと
-
YYYY/MM/DD(曜日)
が欲しい-
YYYY
は西暦の年 -
MM
は西暦の月 -
DD
は西暦の日 -
曜日
は日本語版の西暦の曜日(Day Of Week,略してDOW)つまり月火水木金土日
-
-
BXwareki
は曜日に対応していないらしい -
jsarticle
でとりあえず確認済
実装
プリアンブルにこれを入れる
\usepackage{datetime2}
\usepackage{datetime2-calc}
\makeatletter
\newcommand{\DOWjpn}{%
\DTMcomputedayofweekindex{\@dtm@currentyear-\@dtm@currentmonth-\@dtm@currentday}{\DOWindex}%
\ifcase\DOWindex 月\or 火\or 水\or 木\or 金\or 土\or 日\fi%
}
\newcommand{\DTMjpn}{%
\@dtm@currentyear/\@dtm@currentmonth/\@dtm@currentday(\DOWjpn)%
}
\makeatother
例えばタイトルに入れる場合は
\date{\DTMjpn}
コツ
-
datetime2
とdatetime2-calc
を流用する - 内部変数の
\@dtm@current
系から年月日を取得できる,しかし肝心の@dtm@currentdow
はなにもしないままだと-1
のままらしい**-
Current day of week defaults to -1 (that is, ignore it).
from p.121
-
- 上記を
\DTMcomputedayofweekindex
に入れて曜日の値を取得して(1~7につき月~日)\DOWindex
に保存する -
これを実行するとなぜか
@dtm@currentdow
が曜日の値を取得する(0~6につき月~日)- p.170 あたりに
\dtmMondayIndex
から\dtmSundayIndex
が定義されており,こっちも0~6につき月~日となっている…しかしLaTeXの\ifcase
は1
スタートの方が好都合であり,\DTMcomputedayofweekindex
はこの使用方法を想定していたのかも? -
\pgfcalendardatetojulian
と\pgfcalendarjuliantoweekday
が裏で動いた結果…ユリウス暦だと思うけど,ドキュメントには実装が未記載だった
- p.170 あたりに
- それを
\ifcase
で分岐させて対応する曜日を表示させたい形式で代入する-
\makeatletter
と\makeatother
間でなので,改行手前に%
を入れないと改行記号が空白扱いされてレイアウトが崩れる - 英語3文字版とかにも応用できそう
-