%% %% This is file `realhats.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% realhats.dtx (with options: `realhats') %% Copyright (c) 2019 Matthew Scroggs & Adam Townsend %% %% Permission is hereby granted, free of charge, to any person obtaining a copy %% of this software and associated documentation files (the "Software"), to deal %% in the Software without restriction, including without limitation the rights %% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell %% copies of the Software, and to permit persons to whom the Software is %% furnished to do so, subject to the following conditions: %% %% The above copyright notice and this permission notice shall be included in all %% copies or substantial portions of the Software. %% %% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR %% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, %% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE %% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER %% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, %% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE %% SOFTWARE. %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{realhats}[2019/04/14 realhats] \RequirePackage{amsmath} \RequirePackage{graphicx} \RequirePackage{ifthen} \RequirePackage[first=0, last=8]{lcg} \RequirePackage{calc} \RequirePackage{stackengine} \newcommand\myhat{} \newlength{\hshif} %horizontal shift \newlength{\vshif} %vertical shift \global\def\hatused{-1} \DeclareOption{beret}{\global\def\hatused{0}} \DeclareOption{santa}{\global\def\hatused{1}} \DeclareOption{scottish}{\global\def\hatused{2}} \DeclareOption{sombrero}{\global\def\hatused{3}} \DeclareOption{witch}{\global\def\hatused{4}} \DeclareOption{tophat}{\global\def\hatused{5}} \DeclareOption{mlga}{\global\def\hatused{6}} \DeclareOption{fez}{\global\def\hatused{7}} \DeclareOption{cowboy}{\global\def\hatused{8}} \DeclareOption{crown}{\global\def\hatused{9}} \ProcessOptions\relax \renewcommand{\hat}[2][]{% \ifthenelse{\equal{#1}{}}{% \ifthenelse{\equal{\hatused}{-1}}% {\rand\hatn{#2}{\arabic{rand}}}% {\hatn{#2}{\hatused}}% }{% \ifthenelse{\equal{#1}{beret}}{\hatn{#2}{0}}{}% \ifthenelse{\equal{#1}{santa}}{\hatn{#2}{1}}{}% \ifthenelse{\equal{#1}{scottish}}{\hatn{#2}{2}}{}% \ifthenelse{\equal{#1}{sombrero}}{\hatn{#2}{3}}{}% \ifthenelse{\equal{#1}{witch}}{\hatn{#2}{4}}{}% \ifthenelse{\equal{#1}{tophat}}{\hatn{#2}{5}}{}% \ifthenelse{\equal{#1}{mlga}}{\hatn{#2}{6}}{}% \ifthenelse{\equal{#1}{fez}}{\hatn{#2}{7}}{}% \ifthenelse{\equal{#1}{cowboy}}{\hatn{#2}{8}}{}% \ifthenelse{\equal{#1}{crown}}{\hatn{#2}{9}}{}% }% } \newcommand{\hatn}[2]{\hatnoptions{#1}{#2}{0ex}{0ex}} \newcommand{\hatnoptions}[4]{% \setlength{\hshif}{1pt} \ifthenelse{\equal{#2}{0}}{\renewcommand\myhat{hats/realhats-beret}\setlength{\vshif}{-0.6ex} \setlength{\hshif}{0.5ex} }{}% \ifthenelse{\equal{#2}{1}}{\renewcommand\myhat{hats/realhats-santa}\setlength{\vshif}{-0.1ex} }{}% \ifthenelse{\equal{#2}{2}}{\renewcommand\myhat{hats/realhats-scottish}\setlength{\vshif}{-0.7ex} \setlength{\hshif}{0.6ex}}{}% \ifthenelse{\equal{#2}{3}}{\renewcommand\myhat{hats/realhats-sombrero}\setlength{\vshif}{-0.17ex} \addtolength{\hshif}{-1pt}}{}% \ifthenelse{\equal{#2}{4}}{\renewcommand\myhat{hats/realhats-witch}\setlength{\vshif}{-0.12ex} \addtolength{\hshif}{-1pt}}{}% \ifthenelse{\equal{#2}{5}}{\renewcommand\myhat{hats/realhats-tophat}\setlength{\vshif}{-0.6ex} \addtolength{\hshif}{-1pt}}{}% \ifthenelse{\equal{#2}{6}}{\renewcommand\myhat{hats/realhats-makelatexgreatagain}\setlength{\vshif}{-0.6ex} \addtolength{\hshif}{-1pt}}{}% \ifthenelse{\equal{#2}{7}}{\renewcommand\myhat{hats/realhats-fez}\setlength{\vshif}{-0.4ex} \addtolength{\hshif}{-1pt}}{}% \ifthenelse{\equal{#2}{8}}{\renewcommand\myhat{hats/realhats-cowboy}\setlength{\vshif}{-0.3ex} \setlength{\hshif}{0.2ex}}{}% \ifthenelse{\equal{#2}{9}}{\renewcommand\myhat{hats/realhats-crown}\setlength{\vshif}{-0.3ex} \setlength{\hshif}{0.2ex}}{}% \addtolength{\hshif}{#3}% \addtolength{\vshif}{#4}% \stackMath % \stackon[\vshif]{#1}{\hspace{\hshif}\includegraphics[width=2ex]{\myhat}} } \endinput %% %% End of file `realhats.sty'.