LaTeX Extra > LaTeX Pakete > Pixel Art


1. pixelart

Das pixelart Paket (v0.2.0 2018/02/25) ist ein Paket zum Zeichen von Pixel Art in LaTeX.[1] Dabei sind nicht nur schwarz-weiß Zeichnungen möglich, sondern es ist auch möglich zusätzliche Farben zu verwenden. Daneben gibt es auch die Möglichkeit die Größe des Bildes anzupassen, was insbesondere bei diesen Bildern, also Pixel Art Bildern, zum Teil benötigt wird.

1.1 Paket einbinden

Das Paket wird mit \usepackage{pixelart} eingebunden und bindet selbst weitere Pakete ein, unter anderem die Pakete pgf und tikz. Das Paket hat nur eine Option, die draft Option. Wird diese Option gesetzt, wird kein Bild erzeugt.

1.2 bwpixelart Befehl

Die Pixel Art Bilder werden mit dem Befehl \bwpixelart[Optionen]{Pixel} in dem Dokument gesetzt. Der Befehl selbst verfügt über drei mögliche Optionen color, scale und raise. Wobei mit der Option color die Farbe des Bildvordergrundes gesetzt werden kann. In der Standardeinstellung ist die Farbe schwarz, was bedeutet das Pixel in der Farbe Schwarz gesetzt werden. Der Hintergrund ist transparent. Die Option scale beeinflusst die Größe der Pixel, in der Grundeinstellung entspricht die Größe eines Pixeles der default Einheitengröße innerhalb der tikzpicture Umgebung, also 1 cm. Mithilfe der Option raise lässt sich der Abstand zur Grundlinie festlegen beziehungsweise verändern. In der Grundeinstellung ist der Abstand 0pt (null Punkte). Die Pixel werden in Form von Nullen und Einsen im Pflichtargument gesetzt, wobei eine 1 dafür steht, dass an dieser Position ein Pixel gesetzt werden soll und die 0 für die freibleibenden Positionen verwendet wird.

 
\documentclass[margin=1cm]{standalone}
%...
\usepackage{pixelart}
%...
\begin{document}
%...
\bwpixelart{
010
111
010
}
%...
\end{document}
Das Bild zeigt ein Pluszeichen welches aus 5 einzelnen Pixeln zusammengesetzt wurden
\documentclass[margin=1cm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pixelart}
\begin{document}
%...
Das ist Text \bwpixelart[color=blue,scale=0.1]{
010
111
010
}

Das ist Text \bwpixelart[color=blue,scale=0.1,raise=3pt]{
010
111
010
}
%...
\end{document}
Ein Taxt mit blauen Pluszeichen die jeweils aus 5 einzelnen Pixeln zusammengesetzt wurden

1.3 \tikzbwpixelart Befehl

Der Befehl \tikzbwpixelart[Optionen]{Koordinaten}{Pixel} ermöglicht das Setzen von Pixel Art innerhalb der \tikzpicture Umgebung. Die Optionen color und scale entsprechen den gleichnamigen Optionen des \bwpixelart Befehls. Die Option raise gibt es in Ermangelung einer fehlenden Grundlinie nicht.

\documentclass[margin=1cm]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pixelart}
\begin{document}
%...
\begin{tikzpicture}
\fill[blue] (1,1) circle (2);
\tikzbwpixelart{(-0.5,2.5)}{
010
111
010
}
\end{tikzpicture}

\begin{tikzpicture}
\fill[red] (1,1) circle (2);
\tikzbwpixelart[color=blue,scale=0.1]{(0.925,1.075)}{
010
111
010
}
\end{tikzpicture}
%...
\end{document}
Zwei farbige Kreise mit einem Pluszeichen darauf.

1.4 Pixel Art mit mehr Farben

Die Befehle \bwpixelart beziehungsweise \tikzbwpixelart lassen nur die Verwendung einer Farbe zu. Im Fall, dass ein Pixel Art Bild erstellt werden soll, welches mehrere Farben verwendet, kann dies durch mehrere Einzelbilder erfolgen. Die Einzelbilder werden vereinfacht formuliert, übereinander gelegt und ergeben so das gewünschte mehrfarbige Pixel Art Bild.

\documentclass[margin=1cm]{standalone}
%...
\usepackage{pixelart}
\begin{document}
%...
\begin{tikzpicture}
\tikzbwpixelart[color=blue]{(0,0)}{
010
000
010
}
\tikzbwpixelart[color=red]{(0,0)}{
000
111
000
}
\tikzbwpixelart[color=violet]{(0,0)}{
000
010
000
}
\end{tikzpicture}
%...
\end{document}
Einfaches Beispiel für mehrfarbige Pixelart.
Hinweis

Mit dem Paket pxpic lassen sich auf einfachere Art und Weise mehrfarbige Pixel Art Bilder setzen.

2. pxpic

Bei dem pxpic Paket (2021-12-12 V1.3) handelt es sich ebenfalls um ein Paket zum Erstellen von Pixel Art in LaTeX.[2]Einer der wesentlichen Unterschiede zum bereits gezeigten pixelart Paket ist die deutlich einfachere Erstellung von Pixel Art Bilder die mehrere verschiedene Farben enthalten.

2.1 Paket einbinden

Das Paket wird mit \usepackage{pxpic} eingebunden. Das Paket selbst bindet seinerseits nur die noch die Pakete expkv und xcolor ein. Zurzeit verfügt das Paket über keine Optionen.

2.2 pxpic Befehl

Mit dem Befehl \pxpic[Optionen]{Pixelliste} werden die Pixel Art Bilder gesetzt. Der Befehl verfügt über eine Vielzahl an Optionen. Die Pixellisten besteht aus den einzelnen Zeilen des Bildes, wobei jede Zeile einzelnen geklammert werden muss.

2.2.1 Farben

Mit der Option colors beziehungsweise colours kann eine Liste mit Farben gesetzt werden.
\pxpic[colors= {0 = farbe0, 1 = farbe1 ,..., 9 = farbe9}]{Pixelliste} Alternativ ist es möglich, mit dem Befehl \pxpicnewcolorlist{Name der Farbliste}{0 = farbe0, 1 = farbe1 ,..., 9 = farbe9} ein Farbliste zu definieren, die dann über die Option color-list beziehungsweise colour-list in dem Befehl gesetzt werden kann.
Als Farben kommen die Farben aus dem xcolor Paket in Frage.
Ein farbloses (transparentes) Pixel kann mit der skip Option gesetzt werden.

\documentclass[margin=1cm]{standalone}
%...
\usepackage{pxpic}
%...
\begin{document}
\pxpic[colors={0 = white, 1=black}]{
{010}
{111}
{010}
}
%...
\end{document}
Einfaches pxpic Pixel Bild.

Alternativ mit der color-list Option.

\documentclass[margin=1cm]{standalone}
%...
\usepackage{pxpic}
%...
\begin{document}
\pxpicnewcolorlist{Farben}{0=blue,1=red,2=green,3=yellow}
%...
%...
\pxpic[color-list=Farben]{
{0123}
{1230}
{2301}
{3012}
}
%...
\end{document}
Einfaches pxpic Pixel Bild mit color-list.

Alternativ mit der color-list und skip Option.

\documentclass[margin=1cm]{standalone}
%...
\usepackage{pxpic}
%...
\begin{document}
\pxpicnewcolorlist{Farben}{0=blue,1=red,2=green,3=yellow}
%...
%...
\pxpic[color-list=Farben,skip=s]{
{01s23}
{1s230}
{s2301}
{3012s}
}
%...
\end{document}
Einfaches pxpic Pixel Bild mit color-list und skip.

2.2.2 Pixel Größe

Die Größe eines Pixels ist hier ein pt Punkt, das bedeutet das dargestellte Pixel ist in der Standardeinstellung 1 Punkt hoch und 1 Punkt breit. Mit der Option ht lässt sich die Höhe und mit der Option wd die Breite des Pixels verändern. Die Option size setzt ht und wd auf den gleichen Wert und hat als Standardeinstellung 1 Punkt.

\documentclass[margin=1cm]{standalone}
%...
\usepackage{pxpic}
%...
\begin{document}
%...
\pxpic[colors={0 = white, 1=black}]{
{010}
{111}
{010}
}
vs.
\pxpic[colors={0 = white, 1=black}, size=2pt]{
{010}
{111}
{010}
}
%...
\end{document}
Effekt der size Option bei pxpic Bildern.

2.2.3 Modus

Die Option mode beschreibt, wie die Pixelliste aussieht und verarbeitet wird. Der Standardwert ist dabei px und entspricht der Gestaltung und Verarbeitung der Pixelliste wie in dem pixelart Paket. Eine detaillierte Darstellung findet sich auf Seite 5f. der Dokumentation [2].
\documentclass[margin=1cm]{standalone}
%...
\usepackage{pxpic}
%...
\begin{document}
%...
\pxpic[colours={0=red,1=green,2=blue}]{{012}}
\pxpic[mode=rgb]{{{1,0,0}{0,1,0}{0,0,1}}}
\pxpic[mode=cmy]{{{0,1,1}{1,0,1}{1,1,0}}}
%...
\end{document}
Verschieden Modi bei pxpic Bildern.

2.2.4 weitere Optionen

Mit der Option gap-hack kann die vermeintliche Lücke, die zwischen den einzelnen Pixeln je nach verwendetem PDF Betrachter erscheinen kann, unterdrückt werden.

\documentclass[margin=1cm]{standalone}
%...
\usepackage{pxpic}
%...
\begin{document}
%...
\pxpicnewcolorlist{Farben}{0=blue,1=red,2=green,3=yellow}
%...
\pxpic[color-list=Farben,skip=s,size=10pt]{
{00000}
{11111}
{11111}
{00000}
}
%...
\pxpic[color-list=Farben,skip=s,size=10pt,gap-hack=0.2pt]{
{00000}
{11111}
{11111}
{00000}
}
%...
\end{document}

Literatur

[1]
PixelArt A package to draw pixel-art pictures. Louis Paternault, February 25, 2018
[2]
pxpic draw pixel pictures Jonathan P. Spratte, 2021-12-12 V1.3

Anhang

\documentclass[margin=0.2cm]{standalone}
%...
\usepackage{pxpic}
%...
\begin{document}
\pxpic[gap-hack=0.2pt,
colours = { 
0 = [HTML]{e6c193},
1 = [HTML]{ffffff},
2 = [HTML]{93c8db},
3 = [HTML]{1477a1},
4 = [HTML]{1a267d},
5 = [HTML]{ab9171},
6 = [HTML]{695b49}}
]
{
{0000000000000000000000000000000000}
{0000000000000000000000000000000000}
{0000000000000000000000000000000000}
{0000000000000000000000000000000000}
{0000000000000000000000000000000000}
{0000000000000000000000000000000000}
{0000000000000011111100000000000000}
{0000000000001111111111000000000000}
{0000000000111111112111111100000000}
{0000001111111111212212121110000000}
{0000011111111122222112222121110000}
{0011111111111111221111112222211100}
{0111111111111221122121111211120100}
{1111111111111122112222121211200000}
{1111111112112222122211112212200000}
{1111111112211134122111211111110011}
{1112211111233134441112211211111111}
{1111222121114444441112112221221122}
{1122124412211443311441222121222112}
{1122234444341434444411211112112212}
{2221114443344344143113321122121222}
{1111121443444344433444431111222112}
{1224441433443444334444331221211211}
{2443444334443443344443312211221111}
{4443444344434443441433330200210010}
{4434444344434433444433000000111000}
{4434443344344434444330000000101000}
{4444443444344434444330000000000000}
{1444141114344434443330000000000000}
{1111111241344344443300000000010100}
{1111211444341344443300000000000000}
{1111222144344344433500000000000001}
{2221114441114344433500000000000000}
{2222111111444344433550000001101000}
{2222221111341111433555000000010011}
{2211121121111144133555550000000000}
{4111112221121244433555555000000000}
{4134144411211111433515555555555000}
{4434144111124341433555155555555555}
{4443444441111344431555555555155555}
{4411144414141344433555555551515155}
{1111114444144434433355555555555555}
{1122111144444434433355555555555555}
{1121244144444434443355555555555551}
{1211114444344443443335515555555555}
{1144413444431143414335555155555555}
{1114443444411114344433611666666555}
{4441444344111111114443366616166665}
{4444444431111111111443366661666166}
{3344144411111111111444336666666666}
{3334444111111111111144433666666666}
{4433441111111111111114433666666666}
{4444311111111111111111443336666666}
{4441111111211111111113114433666666}
{4411111111112111111112111111166666}
{1111111111221111111111211111116666}
{1111111111111111121111221122111666}
{1111221122211121122111122112221166}
{1111222112221221222211112111111111}
{1111122212222211211111111212311111}
{1121111222112211121112111122231144}
{1112221211111122122122211113344114}
{1111222111121122222222312111344411}
{2111111111112122221332331111114433}
{2211112211112222213343231121111444}
{2211122221212222213443231221111144}
{2112111221222222111441333221221111}
{1112221222211122111444333432222111}
{1111222211222112211144334433213313}
{2221222111133221111144314443311331}
{2211222144133111211114433444334133}
{2222221143332231121114443344433444}
{1122211114344233121111444434443334}
{1111111111444443311212114443344433}
{2111111111114444311322211444434444}
{2214411112111144413332111114443344}
{2221441111441111441333111111144433}
{3321241341431241443344411212111144}
{3322211331132244444344441221211111}
{1144222111111224444434441332331111}
{1114422111221221114444443343333133}
{4414411411122211111444443344433333}
{4444441444122112121114444334443444}
{4444441441144222222114444434444444}
{4444414444442222442211144443444444}
{3444444434444444444222224444434444}
{3444444443334444444444442444444444}
{3344444444433333334444444444444444}
{3334444444443333333334444444444444}
}

\end{document}

Die große Welle vor Kanagawa als PixelArt Bild