summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/realhats/realhats.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/realhats/realhats.dtx')
-rw-r--r--Master/texmf-dist/source/latex/realhats/realhats.dtx63
1 files changed, 53 insertions, 10 deletions
diff --git a/Master/texmf-dist/source/latex/realhats/realhats.dtx b/Master/texmf-dist/source/latex/realhats/realhats.dtx
index fd8c7360a97..7380964e141 100644
--- a/Master/texmf-dist/source/latex/realhats/realhats.dtx
+++ b/Master/texmf-dist/source/latex/realhats/realhats.dtx
@@ -20,7 +20,8 @@
%SOFTWARE.
%\fi
-%\lstinline{realhats} is a package for \LaTeX{} that makes the \lstinline{\hat} put real hats on symbols.
+%\lstinline{realhats} is a package for \LaTeX{} that makes the \lstinline{\hat} command
+%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:
@@ -34,18 +35,29 @@
%\item \(\hatn{a}{3}\) - A sombrero
%\item \(\hatn{a}{4}\) - A wizard's hat
%\item \(\hatn{a}{5}\) - A top hat
+%\item \(\hatn{a}{6}\) - A make {\LaTeX} great again hat
+%\item \(\hatn{a}{7}\) - A fez
+%\item \(\hatn{a}{8}\) - A cowboy hat
+%\item \(\hatn{a}{9}\) - A crown
%\end{itemize}
%
-%Variables can be given a non-random hat, using the command \lstinline{\hatn}:
+%Variables can be given a non-random hat, using the command \lstinline{\hat} with an optional parameter:
%\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}\)
+%\item \lstinline@\hat[beret]{a}@ produces \(\hat[beret]{a}\)
+%\item \lstinline@\hat[santa]{a}@ produces \(\hat[santa]{a}\)
+%\item \lstinline@\hat[scottish]{a}@ produces \(\hat[scottish]{a}\)
+%\item \lstinline@\hat[sombrero]{a}@ produces \(\hat[sombrero]{a}\)
+%\item \lstinline@\hat[wizard]{a}@ produces \(\hat[wizard]{a}\)
+%\item \lstinline@\hat[tophat]{a}@ produces \(\hat[tophat]{a}\)
+%\item \lstinline@\hat[mlga]{a}@ produces \(\hat[mlga]{a}\)
+%\item \lstinline@\hat[fez]{a}@ produces \(\hat[fez]{a}\)
+%\item \lstinline@\hat[cowboy]{a}@ produces \(\hat[cowboy]{a}\)
+%\item \lstinline@\hat[crown]{a}@ produces \(\hat[crown]{a}\)
%\end{itemize}
%
+%You can also pass these same options when loading the package.
+%For example, \verb@\usepackage[mlga]{realhats}@ will cause the package to use make {\LaTeX} great again hats
+%everywhere (unless an different hat is given to the \verb@\hat@ command).
%\iffalse
%<*documentation>
\documentclass{article}
@@ -65,7 +77,7 @@
%\iffalse
%<*realhats>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{realhats}[2019/02/02 realhats]
+\ProvidesPackage{realhats}[2019/04/14 realhats]
\RequirePackage{amsmath}
\RequirePackage{graphicx}
@@ -78,7 +90,37 @@
\newlength{\hshif} %horizontal shift
\newlength{\vshif} %vertical shift
-\renewcommand{\hat}[1]{\rand\hatn{#1}{\arabic{rand}}}
+\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}}
@@ -93,6 +135,7 @@
\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 %