1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
%%
%% This is file `pixelart.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% pixelart.dtx (with options: `package')
%% Copyright 2017 Louis Paternault
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% 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.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Louis Paternault
%%
%% This work consists of the files pixelart.dtx and pixelart.ins
%% and the derived file pixelart.sty.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pixelart}
[2018/01/13 v0.1.2 A package to draw pixel-art pictures]
\RequirePackage{pgf}
\usepgfmodule{parser}
\RequirePackage{tikz}
\usetikzlibrary{calc}
\RequirePackage{pgfkeys}
\RequirePackage{etoolbox}
\makeatletter
\pgfkeys{
/PIXELART/BWPIXELART/.is family,
/PIXELART/BWPIXELART,
scale/.value required,
scale/.code={\pgfkeyssetvalue{/PIXELART/BWPIXELART/scale}{#1}},
scale=1,
raise/.code={\pgfkeyssetvalue{/PIXELART/BWPIXELART/raise}{#1}},
raise/.value required,
raise=0pt,
color/.value required,
color/.code={\pgfkeyssetvalue{/PIXELART/BWPIXELART/color}{#1}},
color=black,
}
\pgfkeys{
/PIXELART/TIKZBWPIXELART/.is family,
/PIXELART/TIKZBWPIXELART,
scale/.value required,
scale/.code={\pgfkeyssetvalue{/PIXELART/TIKZBWPIXELART/scale}{#1}},
scale=1,
color/.value required,
color/.code={\pgfkeyssetvalue{/PIXELART/TIKZBWPIXELART/color}{#1}},
color=black,
}
\pgfparserdef{@bwpixelart}{initial}{blank space \space}{
\@bwpa@newline
}
\pgfparserdef{@bwpixelart}{initial}{the character 0}{
\coordinate (@pixelart) at ($(@pixelart) + (1, 0)$);
}
\pgfparserdef{@bwpixelart}{initial}{the character 1}{
\fill (@pixelart) rectangle ++(1, 1);
\coordinate (@pixelart) at ($(@pixelart) + (1, 0)$);
}
\pgfparserdef{@bwpixelart}{initial}{the letter @}{
\pgfparserswitch{final}
}
\newcommand{\@bwpa@newline}{
\coordinate (@pixelart) at ($(@pixelart@startline) + (0, -1)$);
\coordinate (@pixelart@startline) at (@pixelart);
}
\newcommand{\bwpixelart}[2][]{{%
\pgfkeys{/PIXELART/BWPIXELART, #1}%
\raisebox{\pgfkeysvalueof{/PIXELART/BWPIXELART/raise}}{%
\tikz[
scale=\pgfkeysvalueof{/PIXELART/BWPIXELART/scale},
]{
\tikzbwpixelart[%
color=\pgfkeysvalueof{/PIXELART/BWPIXELART/color},
]{(0, 0)}{#2}
}%
}%
}}
\newcommand{\tikzbwpixelart}[3][]{
\pgfkeys{/PIXELART/TIKZBWPIXELART, #1}
\begin{scope}[shift={#2}]
\begin{scope}[#1]
\coordinate (@pixelart) at (0, 1);
\coordinate (@pixelart@startline) at (@pixelart);
\pgfparserparse{@bwpixelart}
#3 @
\end{scope}
\end{scope}
}
\makeatother
\endinput
%%
%% End of file `pixelart.sty'.
|