マクロツイーター

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

scsnowmanで☃にサンタ帽をかぶせる話

これは「TeX & LaTeX Advent Caleandar 2021」の28日めの記事です(えっ)
(27日めは CareleSmith9 さん でした。)

TeX言語者の間でトッテモ有名なクリスマスソングとして「Twelve Days of Christmas」というものがあります。この歌のテーマである「クリスマスの12日」(“Twelvetide”とも呼ばれる)というのはクリスマスの日(12月25日)から始まる12日間のことを指し、欧米においてはこれをもって「クリスマス期間」とするのが一般的です。

カントカでサンタ帽する方法

というわけで、まだクリスマス期間中なので、欧米のTeX者たちはアヒルにサンタ帽を被せたいかもしれません。tikzducksパッケージ\duck命令にはsantaオプションがあり、これを使えば“santa ducks”を簡単に実現できます。

%#!pdflatex
\documentclass[margin=10pt]{standalone}
\usepackage{xcolor,tikzducks}
\pagecolor{green!95!red!30!black}
\begin{document}
\tikz{\duck[santa]}% santaオプションを指定するだけ
\end{document}

f:id:zrbabbler:20211228235432p:plain
サンタアヒル

※余談ですが、今年も例のアヒル者たちが例のアレを公開してますね🦆

ナントカでサンタ帽する方法

さて、日本のTeX者としてはやはりscsnowmanの素敵なゆきだるま☃にサンタ帽を被せたいところです。ところが\scsnowmanにはsantaオプションがありません。「サンタアヒル」はあるのに「サンタゆきだるま」がないのは由々しき事態ですね。

実は、scsnowman本体ではサポートされていないものの、「帽子(hat)をサンタ帽に変える」ための拡張ライブラリzrchristmasどっかの誰かによって既に作られています。なので、現状ではこのzrchristmasを利用するのが最も手軽に「サンタゆきだるま」を出力する方法になるでしょう。

※scsnowman-zrchristmas.defのファイルは「TeXから見える場所」に置けばOKです。
※サンタ帽のデザインはpuripuri2100氏のSATySFi用の画期的な文書クラスの出力用のものに従っています。

%#!pdflatex
\documentclass[margin=10pt]{standalone}
\usepackage{scsnowman}
\usescsnowmanlibrary{zrchristmas}% 拡張ライブラリ読込
\begin{document}
\scsnowman[scale=10, muffler=red, arms, buttons, note,
  shape=zrchristmas,%shapeにzrchristmasを指定
  hat=red]%hatでサンタ帽を描く
\end{document}

f:id:zrbabbler:20211228235457p:plain
サンタゆきだるま

素敵😊

もうチョット素敵な例

%#!pdflatex
\documentclass[margin=0]{standalone}
\usepackage[svgnames]{xcolor}
\usepackage{graphicx,scsnowman,pgfmath,bxcoloremoji}
\usescsnowmanlibrary{zrchristmas}
\colorlet{mydgreen}{green!95!red!30!black}
\begin{document}
\begin{tikzpicture}[x=1bp, y=1bp]
\fill[mydgreen, use as bounding box]
  (0,0) rectangle (400,400);
 % stars
\foreach \pos in {
  (33,289),(312,210),(200,189),(156,96),(256,249),(361,361),(338,131),(221,330),(351,40),(23,377),(129,310),(65,134),(122,222),(122,41),(370,234),(85,151)
} {\node[scale=4] at \pos {\coloremojicode{2728}};}
% the merry snowman
\node at (200,200) {\scsnowman[scale=45,
  body=white, mouth=false]};
\node at (200,200) {\scsnowman[scale=45,shape=zrchristmas,
  hat=Red,muffler=Red,arms=DarkOrange,buttons=Green]};
\end{tikzpicture}
\end{document}

f:id:zrbabbler:20211228235515p:plain
メリーゆきだるま!

まとめ

日本では25日を過ぎればクリスマスでなくなる感じですが、クリスマスであろうがなかろうが、とにかく「メリーゆきだるま☃」はトッテモ素敵😊

(つづく)