%% %% This is file `scsnowman.sty', part of scsnowman package. %% Maintained on GitHub: %% https://github.com/aminophen/scsnowman %% %% Copyright (c) 2015-2023 Hironobu Yamashita %% Email : h.y.acetaminophen[a t]gmail.com %% GitHub : https://github.com/aminophen %% Blog : http://acetaminophen.hatenablog.com/ %% Twitter : @aminophen %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{scsnowman}[2023/02/23 v1.3c Snowman variants using TikZ] \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sctkzsym-base}} \ProcessOptions\relax \RequirePackage{sctkzsym-base}[2017/08/08] % % make document snowman (joke) \ifsctkzsym@document \def\makedocumentsnowman{% \ifx\documentclass\@notprerr % Already after \begin{document}, throw an error \def\sctkzsym@documentsnowman{% \PackageError{scsnowman}{% Use of \noexpand\makedocumentsnowman too late!\MessageBreak Try using before \string\begin{document}}{% I'll try to stop processing, but this attempt can fail.\MessageBreak\@ehc}% % If the above error is ignored, there's no way to % exit successfully in all cases. So, try to continue % processing by ignoring all LaTeX errors. % TeX errors still remain; therefore, \makedocumentsnowman % in internal vertical mode or math mode will fail. \let\@latex@error\@gobbletwo\par \scsnowman[init,scale=14,hat,muffler,buttons,snow]% \scsnowman[init,scale=14,hat,muffler,buttons,arms]% \scsnowman[init,scale=14,body,hat,muffler,buttons,snow]% \end{document}}% \else\ifx\documentclass\@twoclasseserror \ifx\AtBeginDocument\@firstofone % In preamble, inside \AtBeginDocument; avoid infinite loop \def\sctkzsym@documentsnowman{% \centering \scsnowman[init,scale=14,hat,muffler,buttons,snow]% \scsnowman[init,scale=14,hat,muffler,buttons,arms]% \scsnowman[init,scale=14,body,hat,muffler,buttons,snow]% \end{document}}% \else % In preamble; start document \def\sctkzsym@documentsnowman{% \pagestyle{empty}% \begin{document}% \centering \scsnowman[init,scale=14,hat,muffler,buttons,snow]% \scsnowman[init,scale=14,hat,muffler,buttons,arms]% \scsnowman[init,scale=14,body,hat,muffler,buttons,snow]% \end{document}}% \fi \else % Before \documentclass{...}; load class and start document \def\sctkzsym@documentsnowman{% \documentclass{minimal}% \begin{document}% \centering \scsnowman[init,scale=18,hat,muffler,buttons,snow]% \scsnowman[init,scale=18,hat,muffler,buttons,arms]% \scsnowman[init,scale=18,body,hat,muffler,buttons,snow]% \end{document}}% \fi\fi \sctkzsym@documentsnowman } \fi % % change QED symbol (joke) \ifsctkzsym@qed \def\sctkzsym@snowman@qedsymbol{\scsnowman[init,hat=true,muffler=red]} \newcommand{\makeqedsnowman}{% \ifx\qedsymbol\sctkzsym@snowman@qedsymbol\else \let\sctkzsym@saved@qedsymbol\qedsymbol \let\qedsymbol\sctkzsym@snowman@qedsymbol \fi } \fi % % change item label (joke) \ifsctkzsym@item \def\sctkzsym@snowman@labelitemi{\scsnowman[init,hat=true,muffler=red]} \def\sctkzsym@snowman@labelitemii{\scsnowman[init,hat=true,muffler=blue]} \def\sctkzsym@snowman@labelitemiii{\scsnowman[init,hat=true,muffler=green]} \def\sctkzsym@snowman@labelitemiv{\scsnowman[init,hat=true,muffler=yellow]} \newcommand{\makeitemsnowman}{% \ifx\labelitemi\sctkzsym@snowman@labelitemi\else \let\sctkzsym@saved@labelitemi\labelitemi \let\sctkzsym@saved@labelitemii\labelitemii \let\sctkzsym@saved@labelitemiii\labelitemiii \let\sctkzsym@saved@labelitemiv\labelitemiv \let\labelitemi\sctkzsym@snowman@labelitemi \let\labelitemii\sctkzsym@snowman@labelitemii \let\labelitemiii\sctkzsym@snowman@labelitemiii \let\labelitemiv\sctkzsym@snowman@labelitemiv \fi } \fi % %------------------------------- ZR something BEGIN % change enumerate label using \scsnowmannumeral (joke) % (this feature is `scsnowman'-specific, so the name-space % is intentionally set to \scsnowman@...) % unique token \def\scsnowman@end{\scsnowman@end@} \let\scsnowman@eight\relax %% \scsnowman@scan@option\CScontinue{} \def\scsnowman@scan@option#1#2{% \scsnowman@scan@option@a#2[]\scsnowman@end#1% } \def\scsnowman@scan@option@a#1[#2]#3\scsnowman@end#4{% #4{#2}% } \def\enumsnowman#1#{% \scsnowman@scan@option\scsnowman@enumsnowman{#1}% } \def\scsnowman@enumsnowman#1#2{% \scsnowmanNumeral{#1}{\@nameuse{c@#2}}% } % For use with \pagenumbering. \def\@enumsnowman{% \scsnowmanNumeral{}% } \def\scsnowmannumeral#1#{% \scsnowman@scan@option\scsnowmanNumeral{#1}% } % \scsnowmanNumeral{