From b0705239ae82574e1415ec6398074121d41bcb32 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 6 Dec 2017 23:54:10 +0000 Subject: pixelart (7dec17) git-svn-id: svn://tug.org/texlive/trunk@45998 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/pixelart/pixelart.sty | 110 ++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/pixelart/pixelart.sty (limited to 'Master/texmf-dist/tex/latex/pixelart') 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'. -- cgit v1.2.3