Giter VIP home page Giter VIP logo

tikzpingus's Introduction

TikZpingus

made-with-latex GPLv3 License PR's Welcome CTAN build

This package allows you to typeset (cute) little penguins in LaTeX with PGF/TikZ. The documentation contains a reference for all currently available options. See the examples below for a quick overview.


TikZpingus is actively developed by Florian Sihler (contact me at: [email protected]) under the GPLv3 License. I am very happy about every contribution (see CONTRIBUTING.md).



The purpose of this library is to produce one thing: cute penguins. Using the \pingu-macro, you can pass an arbitrary amount of options to endow the penguin with many extras or change its complete appearance. Furthermore, most options allow additional arguments, defining the color, text, ...

While the documentation contains a reference of all options that are available (or at least, that is the plan), most extras should be named relatively intuitive. For example, if you want a small penguin, you add the option small. If the penguin should be large, you write large. If you want the penguin to hold a cup, you write cup. If the cup should have a specific color, like blue, you add this via cup=blue, ...

Currently, most options I have added arose from concrete situations and are not part of "sets". However, some sets do exist, like the santa or devil collection. If there are more sets in the future, I might add them as first-class components. For now, the documentation contains an overview of the larger gadgets.

If you just load the library by \usepackage{tikzpingus} all options will work, and you might want to use the glows-option (\usepackage[glows]{tikzpingus}) so that lightsabers and other glowing elements look waaay nicer (but may produce artifacts in some pdf-viewers). However, if loading the library takes too long for you, using the bare option will drastically reduce the default options available while allowing you to load specific libraries with \pinguloadlibraries{<list of libraries>}.

Not all gadgets and wing positions work together. While I try to get as many of them working as possible, selecting two different styles of glasses or hats probably looks weird, no matter what code I add. Nonetheless, there is code implemented to deal with a lot of interactions (e.g., items in different wings, multiple items on the hat, ...), and there are several options to cope with them yourself if the need arises. Oh, and by the way, when options are named with left and right they are always from the penguin perspective.

Clothes are a work in progress for a long time now. While there are pants, shirts, a cape, and a cloak, they interfere with body types and other interaction codes. They work quite well for "not-too-fancy" and exotic combinations, but for more complex scenarios, I just had no time (for now). So feel free to wrap your head around that and open a PR! I would be happy to assist you!

Testing Files

These are some test files that showcase additional capabilities of the library:

For the title image of a computer science course on software product lines, I created a small and incomplete but really fun feature model:

Contributors

Made with contrib.rocks.

tikzpingus's People

Contributors

chouhartem avatar eagleoutice avatar jensostertag avatar lukaspietzschmann avatar mbertucci47 avatar samcarter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tikzpingus's Issues

Quick-Overview of everything

Using the full reference is cumbersome if some wants to know what extras are available. Therefore, I want a quick overview, showing each penguin with a respective gadget (which is automatically hyperlinked to the respective gadget).

Using ghost-compositions the extras/gadgets itself could be the hyperlinks? That would be really nice.

Selectors from Packages

Currently neither the documentation nor the package is capable of dealing with added eyes, wings, ... (see the emotions lib).

Meditation Penguin

The should be a meditating penguin on a yoga mat.

Furthermore, there should be an alternative version of this penguin where it opened its third eye

Speed up CI

The CI should cache previous compilations so it is a lot faster.
We could use the gh-pages branch for that and merge the branches within the CI before compiling. This way the CI should be a lot faster.

Flip-flops and sneakers

How should the clothes look?
Flip-flops and sneakers like the ones in the pictures

Additional context
Coloring options would be cool.

IMG_0510
IMG_0511

IMG_0512
IMG_0513

Validate changelog generation

Due to the fact, that we do not push the tags, the automatic changelog-gengeration in build.lua might be off by one version! This should be fixed!

Clean up root directory

This way it is just so huge, move the example (but think about the CI building the demo and the Readme linking to them)

Emperor penguin

There should be Emperor penguins. One looking like Caesar and another one looking like the German emperor

Add library to key explanation

Restyle the initial overview of all libraries and link those definitions with the keys.

So e.g. with the documentation of lightsaber left there is some icon identifying it to be part of the "science-fiction" library.

Clipping Issues in documentation

Since the switch to tikzexternal some penguins are clipped (e.g. because light effects of laser extras are not part of the bounding box).

Filled Drawing Style

Add a reliably new drawing style, which sets the penguin to one solid color:

\pingu[body=@,body front=@,feet color=@,bill color=@,eyes color=@,left eye second color=@]

This can be used to create ghost demon-penguins and who does not want that:
minimal

Speed up default values

Move the set of defaults globally, outside of the pgfkeys and use groups to recover them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.