% \iffalse meta-comment % Copyright (C) 2022 % by Phelype Oleinik % Paulo Cereda % and samcarter % % This work may be distributed and/or modified under the conditions of % the LaTeX Project Public License, either version 1.3c of this license % or (at your option) any later version. The latest version of this % license is in % % http://www.latex-project.org/lppl.txt % % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work is "maintained" (as per the LPPL maintenance status) % by Phelype Oleinik and Paulo Cereda. % %<*package> \def\sillypageDate{2022-01-20} \def\sillypageVersion{1.3} % %<*driver> \documentclass[a4paper,full]{l3doc} \usepackage[T1]{fontenc} \usepackage{tgbonum} \usepackage[scaled=.85]{beramono} \usepackage{sillypage} \usepackage{hyperref} \begin{document} \DocInput{\jobname.dtx} \end{document} % % \fi % % \GetFileInfo{\jobname.sty} % % \title{^^A % The \pkg{sillypage} package^^A % \thanks{This file has version number \sillypageVersion, % last revised \sillypageDate.} % } % % \author{^^A % Phelype \emph{lemon curry} Oleinik\thanks % {^^A % E-mail: % \href{mailto:phelype.oleinik@latex-project.org} % {phelype.oleinik\meta{at}latex-project.org}^^A % }\\ % Paulo \emph{dictates a letter} Cereda\thanks % {^^A % E-mail: % \href{mailto:cereda.paulo@gmail.com} % {cereda.paulo\meta{at}gmail.com}^^A % }\\ % samcarter \emph{cheesy comestibles}\thanks % {^^A % E-mail: % \href{mailto:sam.carter8@aol.com} % {sam.carter8\meta{at}aol.com}^^A % }^^A % } % % \date{Released \sillypageDate} % \pagenumbering{silly} % % \maketitle % % \begin{documentation} % % \section{Introduction} % % This package is inspired by \emph{The Ministry of Silly Walks}, a famous % sketch from Monty Python. According to the corresponding % \href{https://bit.ly/33jKsl1}{Wikipedia article}: % % \begin{quotation} % The sketch as originally depicted in the series begins with John Cleese % playing Mr.~Teabag, a civil servant who, after purchasing The Times % from the newsagent in the previous sketch, walks through the streets % of London (at the crossing of Thorpebank Road and Dunraven Road) in a % very peculiar manner. He eventually arrives at his place of business: % The Ministry of Silly Walks, on the northern end of Whitehall. In the % hallway, he passes other employees all exhibiting their own silly walks % before arriving at his office. Once there, he finds Mr.~Putey (Michael % Palin) waiting for him and apologizes for the delay, explaining that % his walk has become particularly silly of late and it takes longer for % him to reach his destination. % \end{quotation} % % So we decided to bring this masterpiece of British pop culture to % the \TeX{} world through a silly page numbering style. Make sure to % use this package in your thesis, it will be a success. % % \section{Usage} % % Using a silly package like this is quite straighforward! For starters, % make sure to include it in your document preamble through % % \begin{verbatim} % \usepackage{sillypage} % \end{verbatim} % % \noindent and that is it! The available interface is as follows: % % \begin{function}{\pagenumbering{silly}} % \begin{syntax} % \cs{pagenumbering}\{silly\} % \end{syntax} % Write \cs{pagenumbering}|{silly}| in you document to use the page % numbering style defined by this package. According to Wikipedia, % the typical silly walk gait consists of twelve specific steps to % be performed, so page numbering will cycle through these steps, % in an kineograph fashion. % \end{function} % % \begin{function}{\silly} % \begin{syntax} % \cs{silly} \Arg{counter} % \end{syntax} % Use the macro \cs{silly} on a \LaTeX{} \meta{counter} to typeset the % corresponding image for the value of that counter. As noted above, % the value will be mapped to an image in the silly walk cycle. Also, % observe that this macro is applied to counters and not to integers. % \end{function} % % \begin{function}{\sillystep} % \begin{syntax} % \cs{sillystep} \Arg{integer} % \end{syntax} % Prints the step number \meta{integer} from the sequence of steps. % This macro works exactly like \cs{silly}, but on integers instead % of counters. The integer value will be mapped to an image in the % silly walk cycle. % \end{function} % % \bigskip % % What a silly yet marvellous interface! % % \section{A sample document} % % As a means to demonstrate how straightforward (and of course silly) our package % is, here is a minimal working example: % % \begin{verbatim} % \documentclass{article} % % \usepackage{sillypage} % \usepackage{blindtext} % % \begin{document} % \pagenumbering{silly} % \Blinddocument % \end{document} % \end{verbatim} % % After compiling it, take a look at the page numbering: you will be greeted with % the silly walk routine! To impress your supervisor, use our package in your thesis, % print it and ask them to view those pages in quick succession, so the images appear % to animate by simulating motion! It is known to work with thesis committees as well. % % \section{The silly walk routine} % % This is the complete silly walk routine as described by Jazeen Hollings in the % \href{https://bit.ly/3fc9x46}{corresponding Wikipedia article}. Please note that the % images used in this package are created by samcarter and released under % the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC BY-SA 4.0} license. % Image sources (vector format) are available in the % \href{https://github.com/cereda/sillypage}{package repository} % % \bigskip % % \makeatletter % {\centering % \def\do#1{\ifnum#1>\silly@steps\else % \sillystep{#1} % \expandafter\do\expandafter{%^^A % \number\numexpr#1+1\relax}\fi}\do{1}\par} % \makeatother % % \bigskip % % We also recommend Pilates. % % \end{documentation} % % \begin{implementation} % % \section{Implementation details} % % The implementation is quite straightforward. Feel free to contact us for % suggestions and criticism, code improvements and of course other silly % walk variants. % % \begin{macrocode} %<*package> % \end{macrocode} % % \subsection{Package requirements} % % \begin{macrocode} \ProvidesPackage{sillypage}[\sillypageDate\space\sillypageVersion\space The silly walk as page numbering style] \RequirePackage{graphicx} % \end{macrocode} % % \subsection{Loading} % \begin{macro}{\silly,\sillystep} % \begin{macro}[int]{\@silly} % \begin{macro}{ % \silly@steps, % \silly@picture, % \silly@height} % \begin{macrocode} \newcommand*\silly[1]{\expandafter\@silly\csname c@#1\endcsname} \newcommand*\sillystep[1]{\@silly{#1}} \newcommand*\@silly[1]{\expandafter\@silly@walk \expandafter{\number\numexpr#1\relax}} \newcommand*\silly@steps{12}% \newcommand*\silly@height{.8cm}% \newcommand*\silly@picture{sillywalk-map.pdf}% % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}[int]{\@silly@walk,\@silly@walk@} % \begin{macrocode} \def\@silly@walk#1{% \@ifundefined{texorpdfstring}{\@firstoftwo}{\texorpdfstring}% {\@silly@walk@{#1}}% TeX {#1}}% pdf string \def\@silly@walk@#1{% \ifnum#1>\silly@steps\space \expandafter\@silly@walk@\expandafter {\number\numexpr#1-\silly@steps\expandafter}% \else \includegraphics[height=\silly@height,page=#1]{\silly@picture}% \fi} % \end{macrocode} % \end{macro} % % \begin{macrocode} % % \end{macrocode} % % \end{implementation} % \endinput