nodist: extract desktop and web from overview.pdf
authorNicola Fontana <ntd@entidi.it>
Tue, 31 Dec 2013 17:41:19 +0000 (31 18:41 +0100)
committerNicola Fontana <ntd@entidi.it>
Tue, 31 Dec 2013 17:42:50 +0000 (31 18:42 +0100)
Convert the PDF pages of overview.pdf into their raster representations
using ImageMagick. Moved the needed commands into the custom makefile.

nodist/Makefile
nodist/overview.tex

index 54ed04f..4bd71d7 100644 (file)
@@ -1,20 +1,29 @@
 TEX2PDF=latexmk -silent -quiet -rules- -pdf > /dev/null
 MP2MPS=mpost -interaction=batchmode > /dev/null
+CONVERT=convert -flatten -density 150 -quality 90
 
-all: overview.pdf
+all: overview.pdf desktop.png web.png
 
 overview.pdf: overview.tex symbols-0.mps ALWAYS_OUTDATED
-       @echo "  DOC    overview" ; \
+       @echo "  DOC    overview.pdf" ; \
        $(TEX2PDF) overview.tex
 
 symbols-0.mps: symbols.mp
        @echo "  DOC    symbols" ; \
        $(MP2MPS) symbols.mp
 
+desktop.png: overview.pdf
+       @echo "  DOC    desktop.png" ; \
+       $(CONVERT) overview.pdf[0] desktop.png
+
+web.png: overview.pdf
+       @echo "  DOC    web.png" ; \
+       $(CONVERT) overview.pdf[1] web.png
+
 clean:
        @echo "  RM     ." ; \
        latexmk -C -silent ; \
-       rm -f *.mps symbols.log
+       rm -f *.mps symbols.log desktop.png web.png
 
 # ALWAYS_OUTDATED is a dummy phony target needed to force the build:
 # latexmk is the one that will take care of the dependencies.
index ce26ba7..7e5988c 100644 (file)
@@ -1,22 +1,26 @@
-\documentclass[tikz=true,border=20pt]{standalone}
+\documentclass[tikz=true,border=12pt]{standalone}
 
 % Set some useful default
 \tikzset{%
-    node distance=150,
     font=\sffamily\scriptsize,
+    shorten >= 5,
+    shorten <= 5,
+    every label/.style={
+       label distance=20
+    },
     every path/.style={
        very thick,
        >=stealth
     },
     every label/.style={
-       font=\sffamily\normalsize
+       font=\sffamily\small
     }
 }
 
 \begin{document}
-\begin{tikzpicture}
+\begin{tikzpicture}[node distance=150]
 
-\node[align=center, label=APPLICATION] (gear)
+\node[label=APPLICATION] (gear)
     {\includegraphics[scale=0.2]{symbols-9}};
 \node[below of=gear, label=below:DATABASE] (database)
     {\includegraphics[scale=0.2]{symbols-1}};
     {\includegraphics[scale=0.2]{symbols-2}};
 
 \draw [<->] (gear) -- (database);
-\draw [<->] (gear) -- (workstation);
+\draw [<->, shorten <= -5, shorten >= 8] (gear) -- (workstation);
 \draw [->] (gear) -- (adg);
-\draw [->] (adg) -- node[above] {PDF or PS} node[below]{BACKEND} (sheet);
-\draw [->] (adg) -- node[right, align=left] {XLIB\\BACKEND} (workstation);
+\draw [->] (adg) -- node[above=-2] {PDF or PS} node[below=-2]{BACKEND} (sheet);
+\draw [->] (adg) -- node[right=-2, align=left] {XLIB\\BACKEND} (workstation);
 \draw [->] (sheet) -- (printer);
 
-\node[yshift=75] at (adg)
+\node[yshift=60] at (adg)
     {Overview of a typical \textbf{desktop} application};
 
 \end{tikzpicture}
-\begin{tikzpicture}
+\begin{tikzpicture}[node distance=120]
 
-\node[align=center, label=APPLICATION] (gear)
+\node[label=APPLICATION] (gear)
     {\includegraphics[scale=0.2]{symbols-9}};
 \node[below of=gear, label=below:DATABASE] (database)
     {\includegraphics[scale=0.2]{symbols-1}};
     {\includegraphics[scale=0.2]{symbols-6}};
 
 \draw [<->] (gear) -- (database);
-\draw [<->] (gear) -- (server);
+\draw [<->, shorten <= -5] (gear) -- (server);
 \draw [->] (gear) -- (adg);
-\draw [->] (adg) -- node[above] {PNG, PS or PDF} node[below]{BACKEND} (sheet);
+\draw [->] (adg) -- node[above=-2] {PNG or PDF} node[below=-2]{BACKEND} (sheet);
 \draw [->] (sheet) -- (cloud);
-\draw [<->] (server) -- node[above] {WEB SERVER} (cloud);
+\draw [<->] (server) -- node[above=-2] {HTML} (cloud);
 \draw [<->] (cloud) -- (laptop);
 \draw [<->] (cloud) -- (tablet);
 \draw [<->] (cloud) -- (workstation);
 
-\node[xshift=75, yshift=75] at (adg)
+\node[xshift=75, yshift=60] at (adg)
     {Overview of a typical \textbf{web} application};
 
 \end{tikzpicture}