!{ meta-comment vim: textwidth=75 ft=predtx ~ NOTE: This file will be pre-processed using awk to perform the following: ~ Comment-out using ~ as the comment character ~ Delete blank lines ~ Put lines between @{ and }@ in a macrocode environment ~ Protect lines between @{ and }@ from auto-commenting ~ Protect lines between #{ and }# from auto-commenting ~ Automatically comment all lines ~ Replace !{ and }! with \iffalse and \fi respectively ~ This is all done with the following awk script: ~ /^@{/ { protect=1; print " \\begin{macrocode}"; next } ~ /^}@/ { protect=0; print " \\end{macrocode}"; next } ~ /^#{/ { protect=1; next } ~ /^}#/ { protect=0; next } ~ { if (protect) { print; next } ~ sub(/~.*/,"",$0); ~ gsub(/!{/,"\\iffalse",$0); ~ gsub(/}!/,"\\fi",$0); ~ if (!match($0, /^[[:blank:]]*$/)) print "% " $0; ~ } <*internal> #{ \iffalse }# <*readme> #{ | -------:| ----------------------------------------------------------------- l4logo:| L4 Logo Author:| Louis A. Burke E-mail:| lburke@labprogramming.net License:| Released under the LaTeX Project Public License v1.3c or later See:| http://www.latex-project.org/lppl.txt Short description: This package is used to render the L4 logo as a tikz picture. It was created by modifying the output of svg2tikz. }# <*internal> #{ \fi \def\nameofplainTeX{plain} \ifx\fmtname\nameofplainTeX\else \expandafter\begingroup \fi }# <*install> #{ \input docstrip.tex \keepsilent \askforoverwritefalse \preamble -------:| ----------------------------------------------------------------- l4logo:| L4 Logo Author:| Louis A. Burke E-mail:| lburke@labprogramming.net License:| Released under the LaTeX Project Public License v1.3c or later See:| http://www.latex-project.org/lppl.txt \endpreamble \postamble Copyright (C) 2021 by Louis A. Burke This work may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this license or (at your option) any later version. The latest version of this license is in the file: http://www.latex-project.org/lppl.txt This work is "maintained" (as per LPPL maintenance status) by Louis A. Burke. This work consists of the file l4logo.dtx and a Makefile. Running "make" generates the derived files README, l4logo.pdf and l4logo.sty. Running "make inst" installs the files in the user's TeX tree. Running "make install" installs the files in the local TeX tree. \endpostamble \usedir{tex/latex/l4logo} \generate{ \file{\jobname.sty}{\from{\jobname.dtx}{package}} } }# \endbatchfile <*internal> #{ \usedir{source/latex/l4logo} \generate{ \file{\jobname.ins}{\from{\jobname.dtx}{install}} } \nopreamble\nopostamble \usedir{doc/latex/l4} \generate{ \file{README.md}{\from{\jobname.dtx}{readme}} } \ifx\fmtname\nameofplainTeX \expandafter\endbatchfile \else \expandafter\endgroup \fi }# }! !{ \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{l4logo}[2021/07/09 v1.00 L4 Logo] <*driver> #{ \ProvidesFile{l4logo.dtx} \documentclass{ltxdoc} \usepackage[a4paper,margin=25mm,left=50mm,nohead]{geometry} \usepackage[numbered]{hypdoc} \usepackage{\jobname} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{\jobname.dtx} \end{document} }# }! \CheckSum{0} \GetFileInfo{\jobname.dtx} \DoNotIndex{\newcommand,\newenvironment} \title{^^A \textsf{l4logo} --- L4 Logo\thanks{^^A This file describes version \fileversion, last revised ^^A \filedate.^^A }^^A } \author{Louis A. Burke\thanks{E-mail: lburke@labprogramming.net}} \date{Released \filedate} \maketitle \changes{v1.00}{2021/07/02}{First public release} \begin{abstract} This package is used to render the L4 logo as a tikz picture. It was created by modifying the output of svg2tikz. \end{abstract} \section{Usage} This package provides a single command |\logo| which renders the L4 logo. \DescribeMacro{\logo} This is the macro that typesets the logo in a tikz picture. \StopEventually{^^A \PrintChanges \PrintIndex } \section{Implementation} <*package> \subsection{Included Packages} This package only depends on tikz: @{ \RequirePackage{tikz} }@ \subsection{Logo Macro} \begin{macro}{\logo} This is the definition of the logo macro, as generated by svg2tikz and manually modified. @{ \newcommand{\logo}{\begin{tikzpicture}[y=0.8pt, x=0.8pt, yscale=-1.0, xscale=1.0, inner sep=0pt, outer sep=0pt] \begin{scope}[fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \begin{scope}[scale=0.500,fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \begin{scope}[scale=0.250,fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \begin{scope}[scale=0.125,fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \begin{scope}[scale=0.062,fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \begin{scope}[scale=0.031,fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \begin{scope}[scale=0.016,fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \begin{scope}[scale=0.008,fill=white] \path[fill,opacity=0.250] (0.0000,0.0000) -- (0.0000,150.0000) -- (100.0000,150.0000) -- (100.0000,125.0000) -- (25.0000,125.0000) -- (25.0000,0.0000) -- cycle; \path[fill,opacity=0.500] (100.0000,0.0000) -- (100.0000,150.0000) -- (200.0000,150.0000) -- (200.0000,125.0000) -- (125.0000,125.0000) -- (125.0000,0.0000) -- cycle; \path[fill,opacity=0.750] (0.0000,150.0000) -- (0.0000,300.0000) -- (100.0000,300.0000) -- (100.0000,275.0000) -- (25.0000,275.0000) -- (25.0000,150.0000) -- cycle; \path[fill] (100.0000,150.0000) -- (100.0000,300.0000) -- (200.0000,300.0000) -- (200.0000,275.0000) -- (125.0000,275.0000) -- (125.0000,150.0000) -- cycle; \end{scope} \end{tikzpicture}} }@ \end{macro} @{ \endinput }@ \Finale