マクロの組み合わせ

名前: Kay
日時: 2015-01-31 14:14:36
IPアドレス: 123.230.37.*

あまりマクロは詳しくないのですが,本を見よう見まねで,\hanate{} を作りました。 縦書きで,引数内の半角文字を1文字ずつ縦書きにするものです。 1文字ずつにしたくなければ,その塊を {} で囲むと,「縦中横」のようになります。 さらに,\SDate{}はよく本にある,「2015/1/31」を「2015年1月31日」に直すマクロです。 ここでは,\hantate{} と組み合わせて,年は(4文字なので)1文字ずつ縦書き, 月・日は(2文字以内なので)縦中横にしたつもりです(\hantate{{...}}にした)。 ところが,実際は,年も「2015」が縦中横になってしまいました。 年は1文字ずつ縦書きにするには,どう修正すべきでしょうか? \documentclass[a4paper,12pt]{utarticle} \usepackage[jis2004,uplatex]{otf} \makeatletter \def\hantate#1{% \@tfor\@tempa:=#1\do{% \hspace{\kanjiskip}% \ifvmode \leavevmode \fi \iftdir% \hskip\kanjiskip% \hbox to1zw{\hss\hbox{\yoko\@tempa}\hss}% \hskip\kanjiskip\relax% \else \hbox{\@tempa}% \fi% }% } \def\SDate#1{\@SDate#1///\@nil} \def\@SDate#1/#2/#3/#4\@nil{% \def\@year{#1}% \def\@month{#2}% \def\@day{#3}% \hantate{\@year}年\hantate{{\@month}}月\hantate{{\@day}}日% } \makeatother \begin{document} \hantate{AKB{48}} \hantate{2015}年\hantate{1}月\hantate{{31}}日 \SDate{2015/1/31} \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)