upLaTeX: 本日の曜日を日本語で自動的に出力する
やりたいこと
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につき月~日) - それを
\ifcaseで分岐させて対応する曜日を表示させたい形式で代入する\makeatletterと\makeatother間でなので,改行手前に%を入れないと改行記号が空白扱いされてレイアウトが崩れる- 英語3文字版とかにも応用できそう