summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/realhats/realhats.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-02-25 22:26:39 +0000
committerKarl Berry <karl@freefriends.org>2019-02-25 22:26:39 +0000
commit23d1d2da15a18a0d962cf36ea062faabcb5c6e9a (patch)
treeaacfbfb1c3ce7b7fcb0fc26f0724a625b60b1c8e /Master/texmf-dist/source/latex/realhats/realhats.dtx
parentfe0b0e790cbce1f301d0c0fe0fa3f94b553f596c (diff)
realhats (25feb19)
git-svn-id: svn://tug.org/texlive/trunk@50134 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/realhats/realhats.dtx')
-rw-r--r--Master/texmf-dist/source/latex/realhats/realhats.dtx102
1 files changed, 102 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/realhats/realhats.dtx b/Master/texmf-dist/source/latex/realhats/realhats.dtx
new file mode 100644
index 00000000000..fd8c7360a97
--- /dev/null
+++ b/Master/texmf-dist/source/latex/realhats/realhats.dtx
@@ -0,0 +1,102 @@
+%\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}
+%</documentation>
+%\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}}
+}
+%</realhats>
+%\fi