133

I'm trying to convert some friends to LaTeX and have come up against a (to me) unexpected objection: there are too few packages that support "fun" (really), to which I responded:

enter image description here

I know there are examples of clever and creative (and a bit silly) output coaxed out of otherwise quite sertious packages like TikZ, but I also wonder: Are there other packages, like Hanno Rein's coffee package, that demonstrate LaTeX's lighter side?

8

17 Answers 17

26

What about Peter Wilson's sudokubundle? You can print, create and SOLVE! sudokus.

68

Not a package, but could be packaged pretty easily: beamerduck!

The following presentation will show a progress by having a duck walk from left side of the screen to the right side, saying annoying things every once a while. You can of course replace the duck picture by any other animal (I am thinking about a man carrying a sack on his back. On specific slides, the ones I plan to spend more time on, I want to have him drop the sack to the ground and rest).

\documentclass{beamer}
\usepackage{tikz}
\usepackage{lipsum}

% Duck stuff

\usetikzlibrary{shapes.callouts, calc}

% Parameters: file, number of pages, width
\newcommand\DuckSetup[3]{%
\foreach \n in {1,...,#2}{
\pgfdeclareimage[width=#3,page=\n]{duck\n}{#1}}
\def\ducknumberofpages{#2}}

\DuckSetup{duck}{2}{1cm} % "duck" is a pdf file with 2 pages that will 
                         % alternate as they move from slide to slide.

\newcommand\duck{%
\tikz[remember picture]{\node (duck) {%
\pgfmathparse{int(mod(\thepage-1,\ducknumberofpages)+1)}%
\pgfuseimage{duck\pgfmathresult}};}
}

\setbeamertemplate{footline}
{%
\pgfmathparse{(\thepage-1)*\paperwidth/\insertdocumentendpage}%
\hspace{\pgfmathresult pt}%
\duck
}

\setbeamertemplate{navigation symbols}{}

\newcommand<>{\ducksez}[1]{%
\uncover#2{\tikz[remember picture,overlay]{\node[ellipse callout, draw, fill=white, overlay,
callout absolute pointer={($ (duck.north east) + (1,0) $)}] at ($ (duck.north east) + (3,1)
$) {#1};}}}

\newcommand<>{\ducksezrev}[1]{%
\uncover#2{\tikz[remember picture,overlay]{\node[ellipse callout, draw, fill=white, overlay,
callout absolute pointer={(duck.north west)}] at ($ (duck.north west) + (-3,1) $) {#1};}}}
% End of duck stuff

\author{Egon Ipse}
\title{The Importance of Being a Duck}
\begin{document}
\begin{frame}
   \maketitle
   \ducksez<2>{Hello!}
\end{frame}
\begin{frame}
   \frametitle{Purpose}
   \begin{enumerate}[<+->]
      \item Purpose of Ducks
      \item Purpose of Duckweed
   \end{enumerate}
   \ducksez<3>{Quack!}
\end{frame}

\foreach \i in {1,...,10}{
\begin{frame}
   \frametitle{Frame \i}
   \lipsum[\i]
   \ifnum \i=5 \ducksez{Five!} \fi
   \ifnum \i=9 \ducksezrev{Nine!} \fi
\end{frame}
}

\begin{frame}
   \frametitle{The last frame}
   \ducksezrev{See Ya!}
\end{frame}

\end{document}

A "duck" presentation

3
  • 3
    No, the duck is the best appropriate to TeX.SX, read carefully the comments below the question above! ;-)
    – Speravir
    Commented Mar 8, 2013 at 4:05
  • 24
    OMG TEH DUCKS! ♥ Commented Mar 8, 2013 at 11:38
  • Hahahaha! You're awesome! Will definitely try it! And with this one! ^_^
    – user101590
    Commented Jul 28, 2016 at 8:15
41

Hope this counts. Cow font anyone :-)? It's part of TL Contrib.

http://www.tug.org/TUGboat/tb27-1/tb86hoekwater-cows.pdf

3
  • 3
    So now, not only that you can make your documents coffe-stained, you can as well pretend you were pretty bored during your manipulation with the document, and you drew few cows on the paper margins...
    – yo'
    Commented Aug 24, 2012 at 11:11
  • 1
    My son loves cows, this is totally awesome! For all others which want to use it with LaTeX, you may find this: newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2009-06/… helpful.
    – math
    Commented Oct 4, 2012 at 9:03
  • 1
    TE Question regarding installation issues
    – Carel
    Commented Sep 14, 2016 at 10:21
31

I like the chickenize package, which can do a lot of useless things, among others it can print in rainbowcolors. See yourself, works only with Lua(La)TeX.

enter image description here

3
  • 6
    The text looks mangled. Is this the final result of using this package? Commented Oct 15, 2013 at 8:02
  • 1
    @Exeleration-G No, as far as I remember that occured while makeing the jpg, which is displayed here.
    – Keks Dose
    Commented Oct 15, 2013 at 9:25
  • 5
    ::Eyes melt out of sockets::
    – auden
    Commented May 17, 2017 at 2:12
29

The search "ducks are fun" yields 15,600,000 hits on google - so it seems evident that ducks are fun.

And latex can do ducks with the brand new tikzducks package (of which I am the author): https://github.com/samcarter/tikzducks and https://www.ctan.org/pkg/tikzducks

A small example:

\documentclass{article}
\usepackage{tikzducks}

\begin{document}
\begin{tikzpicture}
    \duck[body=yellow!50!brown!40!white,
        crazyhair=gray!50!white,
        eyebrow,
        glasses=brown!70!black,
        book=\scalebox{0.2}{$E=mc^2$},
        bookcolour=red!20!brown]
\end{tikzpicture}
\end{document}

enter image description here


There is also the younger sibling of the tikzducks, the tikzmarmots (https://github.com/samcarter/tikzmarmots and https://www.ctan.org/pkg/tikzmarmots)

enter image description here


And even more family members are on the way: the tikzlings (https://github.com/samcarter/tikzlings)

enter image description here

26

Well, there's always the package skull, which makes available a skull symbol for you to use in math mode. Fun, and of course extremely useful!

0
22

One of my students has taught himself TeX programming by developing:

In my opinion this is the most strange thing one can possibly do just for fun!

(But I am biased, of course :-)

From the package readme:

Let's say we want to program our document in C on top of TeX. Then there would be the need to interpret the C semantics. Basically we would have to write a compiler for C in TeX. Not a very promising future, if you start this. But, we can use a normal C compiler to compile the C code to some simple platform. Like AVRs Atmega. Since I have other things to do than writing an AVR Emulator in TeX, here it is!

Actually, I even considered using this (!). In one of my lectures, I present lots of small AVR programs on beamer slides together with their "output" on a specific device with some LEDs and a 7 seg display. I already have been using LaTeX macros to typeset the status of the LED array and the 7 seg display, so the interpreter could, given the binary code, automatically derive the parameters for these macros. A special listings environment could automatically invoke the C-compiler (via \write18) to generate the respective binary code. The result would be truly "self-contained" slides: Whenever I change the given example code, the typesetting of the "output" would automatically be updated.

However, other deadlines were approaching, so in the end I dropped the idea.

1
  • 1
    I did not try it, but it sounds awesome.
    – Andy
    Commented Apr 8, 2015 at 15:23
19

You can have fun drawing Feynman diagrams with the feyn package... or is that just me?

3
  • 3
    I think that this is more fun-ctional than fun. I think the aim here is "frivolous and playful". Commented Aug 18, 2012 at 21:12
  • 1
    Can it not be both fun and functional? I also realised that my answer was, perhaps, not exactly what the OP was looking for, but I thought it was a useful addition (and so did someone else).
    – User 17670
    Commented Aug 18, 2012 at 21:45
  • My rule of thumb is this: of the number of documents it's used for, how many are using it to accomplish anything more than decoration or nonsense? I would imagine, at least, that the functional:fun ratio of feyn is quite high. Commented Aug 18, 2012 at 22:27
17

I like the Tower of Hanoi, classical algorithm problem, illustrated and computed, via LaTex.

Tower of Hanoi in LaTex

You can also have the Simpsons family Demo here

You know what would be cool? A package for torn paper!

1
14

run texdoc pst-fun, it shows some funny macros

2
13

With a lack of confidence, I present my own. However, it has not been bundled into a package. :-D

2
  • 2
    Warning: strobe lighting in effect when following that link! Commented Aug 22, 2012 at 10:03
  • To avoid strobe lighting I provide another one. Commented Aug 22, 2012 at 13:57
13

Since @samcarter has mentioned her tikzducks package, I thought that, perhaps, I could cite my halloweenmath package as well.

1
7

After @samcarter and @GuM presented their work, I present you my ducksay and duckuments packages:

\documentclass[border=2mm,preview]{standalone}

\usepackage{ducksay}[2018/09/21]
\DucksayOptions
  {
    ,arg=box
    ,vpad=1
  }

\usepackage{duckuments}
\usepackage{microtype}

\usepackage[]{graphicx}

\AddAnimal{marmot}
{  \
    \   %%% /////*%%%
     \  %///////////%
        //////////////
      /////%%////%%////
     .//((///(%%///((///
     ///((/,,(%%,,/((///
    //////,,%,,,(,,//////
    //////////*//////////
   .////////,,,,,/////////
   //%%#/,,,,,,,**/,//%%//
   /#%%%%,,.....,**/#%%%%/
   //%%%%/,.....,**(#%%%%/
   //(%%%(*,,,,,**/##%%%//
   ///,%%,/******///#%,///
    //,,,,,//////((,,,,///   %%
    ///,,,,,,,,,,,,,,,///%%%%%
     /////,,,,,,,,,*////%%%,
       ////////////////
     %%%%%%(//////(%%%%%} 

\begin{document}
\duckthink[marmot]{\includegraphics{example-image-duck}}
\ducksay[wd=20,msg-align=j,msg=\normalfont]{\blindduck}
\end{document}

enter image description here

6

Well, as you can see in some of the other answers, there are a lot of font packages out there with what some may call a questionable amount of uses.

A lot of the fonts mentioned in the other answer, and some other "silly" fonts are grouped under the The font-novelty topic on CTAN.

Not all fonts that can be considered "just for fun" or "silly" are listed under font-novelty, though. Here is some "fun" stuff outside of font-novelty :

  • The font-invented topic on CTAN lists fonts for fictional/invented languages, it includes packages for Klingon and several of J.R.R. Tolkien's Middle-Earth alphabets. There are also typesetting support packages for some of these languages listed under the CTAN's lang-invented topic.

P.S. I intended to post more links while typing this up, but SX won't let me post more than two links because I'm still a greenhorn over here. I'm planning to update this answer once I rack up some more reputation :)

1
  • 1
    While the language/usage might be fictional but they are proper fonts. So it doesn't really classify as fun I would say. Besides they are also in TeX-SX logo so known to people here pretty much.
    – percusse
    Commented Mar 17, 2015 at 14:26
6

enter image description hereOne of my favourite "fun" packages is the typewriter package, the one mimicking a party working mechanical typewriter.

https://ctan.math.illinois.edu/macros/luatex/latex/typewriter/typewriter-guide.pdf

5

For lobsters fans:

LobLib is a TeX package for creating lobster themed documents and inserting a wide range of lobster images into papers.

https://github.com/bae43/LobLib/

2

Not really a fun package, because it's most likely the best ever invented drawing package for LaTeX, but here is pxpic:

\documentclass[border=3.14]{standalone}

\usepackage{pxpic}

\begin{document}
\pxpic[colours=r=green!60!black,skip=.,size=3.14pt,t]
  {
    {.....rrrrrrr}
    {....rrrrrrrrr}
    {....rrrrrrrr}
    {....rrr}
    {....rrr}
    {....rrrrrrr.....r...r....r}
    {....rrrrrrrr...rrr.rrr..rrr..rr}
    {....rrrrrrr....rrr.rrr..rrrrrrrr}
    {....rrr........rrrrrrr..rrrrrrrrr}
    {....rrr........rrrrrrr..rrrrrrrrr}
    {....rrr.........rrrrr...rrr...rrr}
    {....rrr.................rrr...rrr}
    {.....r...................r....rrr}
    {...............................r}
    {}
    {..rrrrr......................r}
    {.rrrrrrr....................rrr}
    {rrrrrrrrr...................rrr}
    {rrr...rrrr..................rrr}
    {rrrrrrrrrr..................rrr}
    {rrrrrrrrr...................rrr}
    {rrrrrrrr....................rrr}
    {rrr.......rrrrr.......rrr...rrr...r.....rrrrrr.......rrr......rrrr}
    {rrr......rrrrrrr....rrrrrr..rrr.rrrr...rrrrrrrr.....rrrrr....rrrrrr}
    {rrr......rrrrrrr...rrrrrr...rrrrrrr....rrrrrrrr....rrrrrrr..rrrrrrrr}
    {rrr.....rrrr..rrr..rrr......rrrrrr.....rrr..rrr....rrr..rrr.rrr..rrr}
    {rrr.....rrr...rrr..rrr......rrrrrrr....rrr..rrrr...rrr..rrr.rrrrrrrr}
    {rrr.....rrr...rrr..rrr......rrr.rrrr...rrr.rrrrr...rrr..rrr.rrrrrrr}
    {rrrr....rrrrrrrrr..rrrrrr...rrr..rrrr..rrrrrrrrr...rrrrrrrr.rrrrrr}
    {.rr......rrrrrrrrr.rrrrrrr..rrr...rrr..rrrrrrrrr...rrrrrrrr.rrr}
    {..........rrrrrrrr..rrrrr...rrr....r....rrrr..rrr...rrrrrrr..rrrrr}
    {................r............r.................r.......rrr...rrrrrr}
    {.....................................................rrrrr....rrrrr}
    {...................................................rrrrrr........r}
    {..................................................rrrrrr}
    {...................................................rrr}
  }
  \llap
    {%
      Created with \pxpiclogo
      \raise1ex\pxpic
        [
           colours=
            {
               1=[HTML]{E4E4E4},2=[HTML]{C8C8C8},3=[HTML]{ADADAD}
              ,4=[HTML]{919191},5=[HTML]{767676},6=[HTML]{555555}
              ,7=[HTML]{373737},8=[HTML]{121212},9=[HTML]{000000}
            }
          ,skip=.
          ,size=0.05pt
        ]
        {
          {.................1235678765431}
          {..............1369999999999999742}
          {............14999999999999999999962}
          {...........49999974211....12359999951}
          {.........16999942.............13799983}
          {........2899951..................389994}
          {.......399972.....................169995}
          {......299971........................59994}
          {.....189961..........................49993}
          {.....69971.....233333333221...........59992}
          {....39992......499999999999841........17997}
          {...18994.......4999999999999993........29993}
          {...49971.......49999999999999993........49981}
          {..18993........499999999999999981.......19993}
          {..39981........49999.....14999993........4997}
          {..6994.........49999.......299995........29992}
          {.19992.........49999........79997.........7994}
          {.29991.........49999........59999.........4996}
          {.3997..........49999........59997.........29991}
          {.4995..........49999.......189995.........19991}
          {.5994..........49999.......499993.........19992}
          {.6993..........49999....12599996...........9992}
          {.7993..........49999999999999971...........9993}
          {.7993..........4999999999999961............9993}
          {.6993..........49999999999993..............9992}
          {.5994..........49999999999994.............19992}
          {.4995..........49999....599991............19991}
          {.3997..........49999....199995............29991}
          {.29991.........49999.....499992...........4997}
          {.19993.........49999.....189997...........6994}
          {..6995.........49999......399993.........19992}
          {..39991........49999.......799981........49991}
          {..19994........49999.......299995.......18994}
          {...49991.......49999........699992......49991}
          {...18995.......49999........299996.....29995}
          {....39993......49999.........599993...169981}
          {.....69992.....47777.........1777771..59993}
          {.....189982..........................49995}
          {......299982........................599961}
          {.......399993.....................1699961}
          {........2999962..................3999961}
          {.........16999952.............13799994}
          {..........149999974211....12359999972}
          {............15999999999999999999973}
          {..............1369999999999999952}
          {.................12356787654321}
        }%
    }
\end{document}

enter image description here

(no real trademarks apply)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .