\newif\ifdr
\drtrue
\makeatletter
\def\@kkana#1{
\ifcase#1\or ア\or イ\or ウ\or エ\or オ\or カ\or キ\or ク\or ケ\or コ\or
サ\or シ\or ス\or セ\or ソ\or タ\or チ\or ツ\or テ\or ト\or
ナ\or ニ\or ヌ\or ネ\or ノ\or ハ\or ヒ\or フ\or ヘ\or ホ\or
マ\or ミ\or ム\or メ\or モ\else\@ctrerr\fi}
\def\kkana#1{\expandafter\@kkana\csname c@#1\endcsname}
\makeatother
\def\xxbox#1#2#3#4{{\fboxsep=0pt \fboxrule=#1
\fbox{\hbox{$\vcenter{\vbox to #2{\vss\hbox to #3{#4}\vss}}$}}}}
\newcommand{\xbox}[5][c]{
\ifx#1l \xxbox{#2}{#3}{#4}{\,#5\hss\,}\else
\ifx#1r \xxbox{#2}{#3}{#4}{\,\hss#5\,}\else
\ifx#1c \xxbox{#2}{#3}{#4}{\hss#5\hss}\fi\fi\fi}
\makeatletter
\newcounter{markcnt}
\def\shikaku#1{
\def\marklbl{\empty}
\@tempcnta\z@
\@tfor \@tempa:=#1\do{\advance\@tempcnta\@ne
\addtocounter{markcnt}{1}
\edef\marklbl{\marklbl\kkana{markcnt}}}
\ifnum\@tempcnta=6 \def\markwd{60mm}\else
\ifnum\@tempcnta=5 \def\markwd{30mm}\else
\ifnum\@tempcnta=4 \def\markwd{25mm}\else
\ifnum\@tempcnta=3 \def\markwd{20mm}\else
\ifnum\@tempcnta=2 \def\markwd{15mm}\else
\def\markwd{10mm}\fi\fi\fi\fi\fi
\thinspace\xbox{1pt}{5.7mm}{\markwd}{\marklbl\ifdr\textcolor{red}{\tt\footnotesize#1}\fi}\thinspace}
\makeatother
\makeatletter
\AtBeginDocument{\let\temp@sqrt\sqrt
\newsavebox{\myroot}
\def\temp@Sqrt[#1]#2{\sbox{\myroot}{\ensuremath{#2}}\temp@sqrt[#1]{\usebox{\myroot}}}
\def\temp@SQrt#1{\sbox{\myroot}{\ensuremath{#1}}\temp@sqrt{\usebox{\myroot}}}
\def\sqrt{\@ifnextchar[\temp@Sqrt\temp@SQrt}}
\makeatother