マクロツイーター

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

フィボナッチの日

…ということらしい。

\documentclass[a4paper,dvipdfmx]{article} % ドライバは適宜指定
\usepackage{pict2e,color,type1cm}
\pagestyle{empty}
\definecolor{fibspr}{rgb}{0,0.45,0} % 螺旋の色
\definecolor{fibtxt}{rgb}{0.92,0,0} % 文字の色
\newcommand*{\FibFigFont}{% 文字のフォント指定
  \usefont{OT1}{cmfib}{m}{n}\fontsize{5}{5}\selectfont}
\makeatletter%--------------------------
%
\newcommand*{\FibFigure}{\xxfb@figure}
\newcount\xxfb@n \newcount\xxfb@x \newcount\xxfb@y
\newcount\xxfb@cur \newcount\xxfb@pre \newcount\xxfb@ppre
\newcount\xxfb@xx \newcount\xxfb@yy \newcount\xxfb@dir
\newdimen\xxfb@chrm \newdimen\xxfb@dim
\def\xxfb@cbase{0.75} \def\xxfb@cstep{0.9}
\def\xxfb@figure(#1,#2)(#3,#4)#5#6#7{%
  \begingroup \setlength{\unitlength}{#5}%
    \begin{picture}(#1,#2)(#3,#4)\relax
      \linethickness{#6}\xxfb@n=#7\relax \xxfb@figure@a
  \end{picture}\endgroup}
\def\xxfb@figure@a{%
  \xxfb@x\z@ \xxfb@y\z@ \xxfb@dir\z@
  \xxfb@pre\@ne \xxfb@cur\z@ \xxfb@chrm\xxfb@cbase\p@
  \@whilenum\xxfb@n>\z@\do{\advance\xxfb@n\m@ne
    \xxfb@figure@b}}
\def\xxfb@step@param#1#2#3#4#5#6#7{%
  \advance\xxfb@x#1\advance\xxfb@y#2%
  \xxfb@xx\xxfb@x\advance\xxfb@xx\xxfb@cur
  \xxfb@yy\xxfb@y\advance\xxfb@yy\xxfb@cur
  \let\xxfb@xc#3\let\xxfb@yc#4\def\xxfb@sa{#5}\def\xxfb@ea{#6}%
  \xxfb@chrm\xxfb@cstep\xxfb@chrm\xxfb@dir#7\relax}
\def\xxfb@figure@b{%
  \xxfb@ppre\xxfb@pre \xxfb@pre\xxfb@cur \advance\xxfb@cur\xxfb@ppre
  \ifcase \xxfb@dir \xxfb@step@param
       {\z@}{-\xxfb@cur}{\xxfb@xx}{\xxfb@yy}{180}{270}{1}%
  \or \xxfb@step@param
       {\xxfb@pre}{\z@}{\xxfb@x}{\xxfb@yy}{270}{360}{2}%
  \or \xxfb@step@param
       {-\xxfb@ppre}{\xxfb@pre}{\xxfb@x}{\xxfb@y}{0}{90}{3}%
  \or \xxfb@step@param
       {-\xxfb@cur}{-\xxfb@ppre}{\xxfb@xx}{\xxfb@y}{90}{180}{0}%
  \fi
  \xxfb@dim\p@ \advance\xxfb@dim-\xxfb@chrm
  \edef\xxfb@cr{\strip@pt\xxfb@dim}%
  \xxfb@dim\xxfb@cur\unitlength \advance\xxfb@dim-0.2\unitlength
  \put(\xxfb@x,\xxfb@y){\makebox(\xxfb@cur,\xxfb@cur){%
    \color[rgb]{\xxfb@cr,\xxfb@cr,1}\rule{\xxfb@dim}{\xxfb@dim}}}%
  \put(\xxfb@xc,\xxfb@yc){\color{fibspr}
    \arc[\xxfb@sa,\xxfb@ea]{\xxfb@cur}}%
  \ifnum\xxfb@cur>4
    \put(\xxfb@x,\xxfb@y){\makebox(\xxfb@cur,\xxfb@cur){%
      \color{fibtxt}\FibFigFont \number\xxfb@cur}}%
  \fi}
%
\makeatother%---------------------------
\begin{document}

\begin{center}
\textcolor{fibtxt}{\usefont{OT1}{cmfib}{m}{n}\small
  Happy Fibonacci Day! 11/23}\par
%% \FibFigure(大きさ)(左下座標){単位長}{線幅}{個数}
\FibFigure(89,55)(-24,-40){2pt}{0.4pt}{10}
\end{center}

\end{document}

\FibFigure の最後の引数の値(10)を増やすともっと「先」まで描かれるはず。

使用フォントは当然「Computer Modern Roman Fibonacci」(OT1/cmfib)。だけど普通の CM Roman との違いが余りよく解らない。