Closed aminophen closed 7 years ago
\relax を足す方法だと、先日の #31 のときのように目次で後ろの空白が喰われるみたいです。半角スペースの方だと喰われないのでそちらの方がいいのかな?と考え中です。
ためしに半角スペースを足してみました。(明らかにバグなので master ブランチ。)
\def\@Kanji#1{\expandafter\kansuji\number #1 }
TeX 言語の <number>
(より正確には <integer denotation>
)は <one optional space>
を取れるので半角スペースを入れても構わないはずです.
しかし,疑問なのはそもそもなぜ \@Kanji
が \number
を噛ませる実装になっているかです.少なくとも plext.sty 内では \@Kanji
は \Kanji
内でしか用いられておらず,必ず \c@<foo>
というカウンタレジスタを引数として受け取るので \number
を噛ませる必要はありません.
\@roman
は latex.ltx 内でシンプルに
\def\@roman#1{\romannumeral #1}
と実装されています.これに倣うのであれば \@Kanji
も
\def\@Kanji#1{\kansuji #1}
で十分なはずです.
TeX 言語の
(より正確には )は を取れるので半角スペースを入れても構わないはずです.
ありがとうございます。私も同じ考えです。
疑問なのはそもそもなぜ
\@Kanji
が \number を噛ませる実装になっているかです.
私もこれは疑問を持っています。一つの可能性としては \kansuji がプリミティブから外された時期があったことです。今でこそ \kansuji は \romannumeral と \number と同様の「整数を文字列に変換するプリミティブ」ですが、そうでなかった時期に \number が必要だったのでは…というあくまで推測です。
もし上記が正しいならば、プリミティブとして定着してから既に十年以上たっていることを加味して \@roman
に倣ったシンプルな定義の方がよいという主張は妥当で、好ましいという気もします。他の方々からも別の理由が出ないようであれば変更しましょう。
\@roman
に倣ったシンプルな定義
6166151 でシンプルな定義に変更しました。テストケース tests/plext_kanji.tex も問題ありません。
abenori さんからです。
漢数字をラベルに使った二段階の enumerate を定義すると
がエラーになります。
もっと簡単な例だと
などで、引数でない後続の 6 まで漢数字になります。
の最後の
#1
の後に \relax または半角スペースを足せばよいようです。(ついでにいうと plext.dtx の \Alpha は \Alph のタイポですね。)