aminophen/gentombow

\hour / \minute カウンタ?

Opened this issue · 0 comments

gentombow は「pLaTeX と互換な物を pdfLaTeX でもそのまま使えるように」という動作を考えていたのですが,悩んでいる部分があるので備忘録として書いておく:「\hour と \minute というカウンタが pLaTeX カーネルによって宣言だけされる(値は設定されない)」という点について。

% \begin{macro}{\hour}
% \begin{macro}{\minute}
% 何時か(|\hour|)を得るには、|\time|を60で割った商をそのまま用います。
% 何分か(|\minute|)は、|\hour|に60を掛けた値を|\time|から引いて算出します。
% ここではカウンタを宣言するだけです。実際の計算は、クラスやパッケージの中
% で行なっています。
%    \begin{macrocode}
\newcount\hour
\newcount\minute
%    \end{macrocode}
% \end{macro}
% \end{macro}
  • 実際に pLaTeX が設置したカウンタが使われているのは,「トンボに出す時刻」のためだけらしい。
  • 従って,トンボを出さない限りカウンタは不要で,むしろ別の物と衝突しやすくなっている。
    • 例えば「単位を出力するパッケージ」unitsdef や SIunits は,\hour や \minute を定義しようとするので,\usepackage しただけで "Command \minute already defined." になる。
    • なお,より新しい siunitx は使い方が少し違う分,問題が起きない。
  • フォーマット作成中に計算しない理由は,多分「カウンタの値がフォーマット作成時刻に固定されるのを防ぐため」だと思われるが,\everyjob に遅らせれば設定可能なはずなので,なぜかクラスファイルやパッケージに任せている理由がよくわからない。