diff options
author | Karl Berry <karl@freefriends.org> | 2019-02-25 22:26:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-02-25 22:26:39 +0000 |
commit | 23d1d2da15a18a0d962cf36ea062faabcb5c6e9a (patch) | |
tree | aacfbfb1c3ce7b7fcb0fc26f0724a625b60b1c8e /Master/texmf-dist/source/latex/realhats/realhats.dtx | |
parent | fe0b0e790cbce1f301d0c0fe0fa3f94b553f596c (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.dtx | 102 |
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 |