summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/realhats/realhats.sty
blob: 171969837e439d3ceaef60658b81443f2d431e9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
%%
%% 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'.