%\iffalse meta-comment %Copyright (c) 2018 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. %\fi %\lstinline{realhats} is a package for \LaTeX{} that makes the \lstinline{\hat} put real hats on symbols. %For example, the input \lstinline@\hat{a}=\hat{b}@ will produce the output: %\[\hat{a}=\hat{b}\] %To make a vector with a hat, the input \lstinline@\hat{\mathbf{a}}@ produces: %\[\hat{\mathbf{a}}\] % %The command \lstinline{\hat} will choose a hat randomly from six hats: %\begin{itemize} %\item \(\hatn{a}{0}\) - A beret %\item \(\hatn{a}{1}\) - A Santa hat %\item \(\hatn{a}{2}\) - A Scottish hat %\item \(\hatn{a}{3}\) - A sombrero %\item \(\hatn{a}{4}\) - A wizard's hat %\item \(\hatn{a}{5}\) - A top hat %\end{itemize} % %Variables can be given a non-random hat, using the command \lstinline{\hatn}: %\begin{itemize} %\item \lstinline@\hatn{a}{0}@ produces \(\hatn{a}{0}\) %\item \lstinline@\hatn{a}{1}@ produces \(\hatn{a}{1}\) %\item \lstinline@\hatn{a}{2}@ produces \(\hatn{a}{2}\) %\item \lstinline@\hatn{a}{3}@ produces \(\hatn{a}{3}\) %\item \lstinline@\hatn{a}{4}@ produces \(\hatn{a}{4}\) %\item \lstinline@\hatn{a}{5}@ produces \(\hatn{a}{5}\) %\end{itemize} % %\iffalse %<*documentation> \documentclass{article} \usepackage{realhats} \usepackage{doc} \usepackage{listings} \lstset{basicstyle=\ttfamily\footnotesize,commentstyle=\color{white},language=TeX} \title{realhats v\input{VERSION}} \author{Matthew W.~Scroggs \& Adam K.~Townsend} \begin{document} \maketitle \DocInput{realhats.dtx} \end{document} % %\fi %\iffalse %<*realhats> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{realhats}[2019/02/02 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 \renewcommand{\hat}[1]{\rand\hatn{#1}{\arabic{rand}}} \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}}{}% \addtolength{\hshif}{#3}% \addtolength{\vshif}{#4}% \stackMath % \stackon[\vshif]{#1}{\hspace{\hshif}\includegraphics[width=2ex]{\myhat}} } % %\fi