マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

サイズが変えられる表の作り方

表の行数と列数(これもサイズの一種であろう)を変えられるようにしてみた。


\documentclass[a4paper]{article}
\makeatletter
%% \MKTable{}{}
\newcommand\MKTable[2]{{\@tempcntb=#2\@tempcnta-#1\advance\@tempcnta123
\ifnum\@tempcnta<`a\@tempcnta`a \fi\ifnum\@tempcnta>`z\@tempcnta`z \fi
\ifnum\@tempcntb<\tw@\@tempcntb\@ne\else\advance\@tempcntb\m@ne\fi
\edef\xx@mc{\the\@tempcntb}%
\edef\xx@tl{\noexpand\begin{tabular}{|c*{\xx@mc}{|c}|}\noexpand\hline}%
\@whilenum\@tempcnta<123\do{\xx@mktbl@app{\char\the\@tempcnta}%
\@tempcntb\z@\@whilenum\@tempcntb<\xx@mc\do{%
\xx@mktbl@app{&\the\@tempcntb}\advance\@tempcntb\@ne}%
\xx@mktbl@app{\noexpand\\\noexpand\hline}\advance\@tempcnta\@ne}%
\xx@mktbl@app{\noexpand\end{tabular}}\xx@tl}}
\def\xx@mktbl@app#1{\edef\xx@tmp{#1}\toks\tw@\expandafter{\xx@tmp}%
\toks@\expandafter{\xx@tl}\edef\xx@tl{\the\toks@\the\toks\tw@}}
\makeatother
\begin{document}
\begin{flushleft}
\MKTable{3}{8}\par
\MKTable{5}{5}\par
\setlength{\tabcolsep}{1pt}\fontsize{5}{5}\selectfont
\MKTable{26}{40}\par
\end{flushleft}
\end{document}

該当の形式の大きな表を非常にコンパクトに記述できて、とっても便利。