From 2078a75953f731893934afc940d49350dcc457ee Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 5 May 2019 18:03:23 +0000 Subject: realhats (14apr19) git-svn-id: svn://tug.org/texlive/trunk@51004 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/realhats/realhats.dtx | 63 ++++++++++++++++++---- 1 file changed, 53 insertions(+), 10 deletions(-) (limited to 'Master/texmf-dist/source') 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 % -- cgit v1.2.3