summaryrefslogtreecommitdiff
path: root/language/japanese/BX/bxjaholiday/bxjaholiday-ja.tex
blob: 6c6d713986551860e337cb5fb870f8e58da39c26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
% +++
% latex = "uplatex"
% extra_clean_files = [
%   "%B.dvi", "%B.synctex.gz", "%B.hd", "%B.glo"
% ]
% +++
\documentclass[uplatex,dvipdfmx]{wtpl3doc}

% packages
\usepackage[verb]{bxghost}
\usepackage{bxjaholiday}
\usepackage{caption}

% logos
\usepackage{bxtexlogo}
\bxtexlogoimport{*}

% syntax
\newenvironment{code}{\quote\small}{\endquote}

% cross-refs
\usepackage{wtref}
\newref{tab,sec}

% macros
\newcommand{\PkgName}{\pkg{bxjaholiday}}
\newcommand{\Ie}{i.\,e.}
\newcommand{\Eg}{e.\,g.}

\ExplSyntaxOn
\cs_set_eq:NN \_ \c_underscore_str
\cs_new:Npn \__bxjh_doc_holiday_line:nn #1#2
  {
    % first column: holiday
    \tl_use:c { g_bxjh_#2_tl } &
    % second column: variable
    \cs { g_bxjh_#2_tl } \\
  }
\cs_new:Npn \__bxjh_doc_week_of_day_line:nn #1#2
  {
    % first column: week of day
    \tl_use:c { g_bxjh_#2_tl } &
    % second column: int variable
    \cs { c_bxjh_ \tl_lower_case:n{ #1 } _int } &
    % third column: int value
    \int_use:c { c_bxjh_ \tl_lower_case:n{ #1 } _int } &
    % fourth column: tl variable
    \cs { g_bxjh_#2_tl } &
    % fifth column: tl value
    \tl_use:c { g_bxjh_#2_tl } \\
  }
\cs_new_eq:NN \HolidayLine \__bxjh_doc_holiday_line:nn
\cs_new_eq:NN \WeekofdayLine \__bxjh_doc_week_of_day_line:nn
\ExplSyntaxOff

% metadata
\GetFileInfo{bxjaholiday.sty}
\title{{\PkgName}パッケージ}
\author{朝倉卓人 (wtsnjp)}
\date{\fileversion \quad [\filedate]}

\begin{document}

\maketitle

\begin{abstract}
このパッケージは日付から日本の祝日名を得るためのコマンドと,その副産物である
日付から曜日を取得するコマンドを提供する.expl3向けには,これらのコマンドと
同等の機能を有する関数と,追加の低級関数も用意されている.
\end{abstract}

%\tableofcontents

\begin{documentation}

%\section{Introduction}

\section{動作要件}

BXプレフィックス\footnote{BXシリーズは主として八登祟之 (a.k.a.~ZR) 氏によって
開発されている\LaTeX パッケージ群である.``BX'' は ``\underline{b}abel
e\underline{x}tensions'' を意味し,BXシリーズに含まれるパッケージは通常,日本語
に特化したもの(\pTeX 系列)に限らず多様な\TeX 処理系をサポートしている.}の示す
通り,本パッケージは様々な\TeX 処理系のサポートを意図しており,expl3がサポート
するすべての\TeX 処理系をサポートしている(つまり\eTeX 拡張は必要である).
具体的には以下のシステムがサポートされている:
%
\begin{itemize}
\item \TeX フォーマット:\LaTeXe
\item \TeX 処理系:{\pdfTeX}, {\XeTeX}, {\LuaTeX},\footnote{\pTeX 系列以外の
処理系で和文文字を表示するには,別途フォントやその他の設定を行う必要がある.}
{\pTeX}, {\upTeX}
\end{itemize}

\section{パッケージ読み込み}

本パッケージの読み込みは\LaTeXe の標準的な方法で行う.オプションは存在しない.
%
\begin{code}
|\usepackage{bxjaholiday}|
\end{code}

\section{{\LaTeXe}インターフェース}

\begin{function}[EXP]{\jaholidayname}
\begin{syntax}
|\jaholidayname|\marg{year}\marg{month}\marg{day}
\end{syntax}
%
与えられた日付が日本の祝日に該当する場合,その祝日の名前に展開される.日付が
祝日でない場合は展開後には何も残らない(空のトークンに展開される).
表\tabref{holidays}に展開結果となり得る祝日名の一覧を示す.

引数の\meta{year}, \meta{month}, \meta{day}には明示的な数値またはカウンタ
(例えば|\year|, |\month|, |\day|)を与えることができる.正確には,任意の
\meta{integer expression}が許される.
\end{function}

\begin{function}[EXP]{\jadayofweek}
\begin{syntax}
|\jadayofweek|\marg{year}\marg{month}\marg{day}
\end{syntax}
%
日付を曜日名(月・火・水・木・金・土・日のいずれか)に変換する.
引数の仕様は|\jaholidayname|と同一である.
\end{function}

\begin{function}[EXP]{\IfJaHolidayTF,\IfJaHolidayT,\IfJaHolidayF}
\begin{syntax}
|\IfJaHolidayTF|\marg{year}\marg{month}\marg{day}\marg{true code}\marg{false code}
|\IfJaHolidayT|\marg{year}\marg{month}\marg{day}\marg{true code}
|\IfJaHolidayF|\marg{year}\marg{month}\marg{day}\marg{false code}
\end{syntax}
%
祝日か否かの判定を行う.なお,この条件分岐では振替休日も祝日として扱われる.
\end{function}

\section{expl3インターフェース}

本パッケージが提供するすべてのインターフェースは\texttt{bxjh}モジュールに属する.

\subsection{関数}

\begin{function}[EXP]{\bxjh_holiday_name:nnn}
\begin{syntax}
|\bxjh_holiday_name:nnn| \marg{year} \marg{month} \marg{day}
\end{syntax}
%
|\jaholidayname|のexpl3関数版である.日付を祝日名に変換する.
\end{function}

\begin{function}[EXP]{\bxjh_day_of_week_name:nnn,\bxjh_day_of_week:nnn}
\begin{syntax}
|\bxjh_day_of_week_name:nnn| \marg{year} \marg{month} \marg{day}
|\bxjh_day_of_week:nnn| \marg{year} \marg{month} \marg{day}
\end{syntax}
%
|\bxjh_day_of_week_name:nnn|は|\jadayofweek|のexpl3関数版で,日付を曜日名に変換
する.曜日の情報をexpl3内で利用したい場合(例えば条件分岐したい場合)には
|\bxjh_day_of_week:nnn|を用いるのがより適切である.この関数は内部的な
整数値 (\texttt{int}) を返す.この値は本パッケージが提供する定数と比較することが
できる(\secref{variables}節参照).
\end{function}

\begin{function}[EXP,TF]{\bxjh_if_holiday:nnn}
\begin{syntax}
|\bxjh_if_holiday:nnnTF| \marg{year} \marg{month} \marg{day} \marg{true code} \marg{false code}
\end{syntax}
%
|\IfJaHoliday(TF)|のexpl3関数版である.
\end{function}

\begin{function}[EXP]{\bxjh_apply_prev_day:Nnnn,\bxjh_apply_next_day:Nnnn}
\begin{syntax}
|\bxjh_apply_prev_day:Nnnn| \meta{function} \marg{year} \marg{month} \marg{day}
|\bxjh_apply_next_day:Nnnn| \meta{function} \marg{year} \marg{month} \marg{day}
\end{syntax}
%
これらの関数は与えられた日付の前日または翌日の日付に\meta{function}を適用する.
\meta{function}は3つの引数を,年月日の順にとる関数である必要がある.例えば
%
\begin{code}
|\bxjh_apply_next_day:Nnnn \bxjh_holiday_name:nnn { 2019 } { 12 } { 31 }|
\end{code}
%
は以下と同じ結果となる:
%
\begin{code}
|\bxjh_holiday_name:nnn { 2020 } { 1 } { 1 }|
\end{code}
\end{function}

\subsection{変数と定数}\seclabel{variables}

\paragraph{祝日名}

すべてグローバルな\texttt{tl}型変数として提供される(表\tabref{holidays}).
%
\begin{table}[b]
\centering\small
\caption{日本の祝日}
\tablabel{holidays}
\begin{tabular}{ll}
\hline
祝日名 & 変数 \\ \hline
\HolidayLine{New Year's Day}{ganjitsu}
\HolidayLine{Coming of Age Day}{seijin}
\HolidayLine{National Foundation Day}{kenkoku}
\HolidayLine{The Emperor's Birthday}{tennou}
\HolidayLine{Vernal Equinox Day}{shunbun}
\HolidayLine{Showa Day}{showa}
\HolidayLine{Greenery Day}{midori}
\HolidayLine{Constitution Memorial Day}{kenpou}
\HolidayLine{National Holiday}{kokumin}
\HolidayLine{Children's Day}{kodomo}
\HolidayLine{(substitute holiday)}{furikae}
\HolidayLine{Marine Day}{umi}
\HolidayLine{Mountain Day}{yama}
\HolidayLine{Autumnal Equinox Day}{shubun}
\HolidayLine{Respect for the Aged Day}{keirou}
\HolidayLine{Sports Day}{sports}
\HolidayLine{Health and Sports Day}{taiiku}
\HolidayLine{Culture Day}{bunka}
\HolidayLine{Labor Thanksgiving Day}{kinrou}
\HolidayLine{National Mourning of Showa}{showa\_taisou}
\HolidayLine{National Wedding of Akihito}{akihito\_kekkon}
\HolidayLine{National Wedding of Naruhito}{naruhito\_kekkon}
\HolidayLine{Core Enthronement Ceremony}{sokuirei}
\HolidayLine{Coronation Day}{sokui}
\hline
\end{tabular}
\end{table}

\paragraph{曜日名}

本パッケージは曜日を表す際,内部的には整数値を用いている.これらの内部整数値に
対応する\texttt{int}型の定数が定義されている.また各曜日名を格納するグローバル
\texttt{tl}変数も提供されている(表\tabref{dayofweek}).
%
\begin{table}[b]
\centering\small
\caption{曜日}
\tablabel{dayofweek}
\begin{tabular}{c|lr|ll}
\hline
曜日 & 定数 (\texttt{int}) & & 変数 (\texttt{tl}) & \\ \hline
\WeekofdayLine{Monday}{getsu}
\WeekofdayLine{Tuesday}{ka}
\WeekofdayLine{Wednesday}{sui}
\WeekofdayLine{Thursday}{moku}
\WeekofdayLine{Friday}{kin}
\WeekofdayLine{Saturday}{do}
\WeekofdayLine{Sunday}{nichi}
\hline
\end{tabular}
\end{table}

\end{documentation}

%\PrintChanges

\end{document}
% vim: spell: