diff options
author | Karl Berry <karl@freefriends.org> | 2017-12-06 23:54:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-12-06 23:54:10 +0000 |
commit | b0705239ae82574e1415ec6398074121d41bcb32 (patch) | |
tree | 56088ae632ea25353896138a82e793d603705ff7 /Master/texmf-dist/tex/latex | |
parent | 67c7246d76c71b0a37485565aa8a917e606caf20 (diff) |
pixelart (7dec17)
git-svn-id: svn://tug.org/texlive/trunk@45998 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/pixelart/pixelart.sty | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pixelart/pixelart.sty b/Master/texmf-dist/tex/latex/pixelart/pixelart.sty new file mode 100644 index 00000000000..4045c6e672b --- /dev/null +++ b/Master/texmf-dist/tex/latex/pixelart/pixelart.sty @@ -0,0 +1,110 @@ +%% +%% 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} + [2017/12/05 v0.1.0 A package to draw pixel-art pictures] % TODO Date + +\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, 0); + \coordinate (@pixelart@startline) at (@pixelart); + + \pgfparserparse{@bwpixelart} #3 @ + \end{scope} + \end{scope} +} + +\makeatother + +\endinput +%% +%% End of file `pixelart.sty'. |