+SHELL := bash
PROJECT = spec
all: protocol
-protocol: $(subst .dia,.png,$(shell ls *.dia))
- pdflatex $(PROJECT)
- pdflatex $(PROJECT)
+protocol: $(PROJECT).tex $(subst .dia,.png,$(shell ls *.dia)) $(subst .tex,.pdf,$(shell ls sm/*.tex))
+ pdflatex $(PROJECT).tex
+ pdflatex $(PROJECT).tex
%.png: %.dia
dia $< -e $@ -t png
+%.pdf: %.tex
+ latex -output-directory=sm $<
+ dvips $(subst .tex,.dvi,$<) -o $(subst .tex,.ps,$<)
+ ps2pdf $(subst .tex,.ps,$<) $@
+ pdfcrop $@ $(subst .pdf,.pdf2,$@)
+ mv $(subst .pdf,.pdf2,$@) $@
+ rm sm/{*.dvi,*.ps,*.aux,*.log}
+
clean:
- -rm -f *.aux *.log *.dvi *.toc *.out *.pdf *.png
+ -rm -f {,sm/}{*.aux,*.log,*.dvi,*.toc,*.out,*.pdf,*.png}
--- /dev/null
+% http://ftp.univie.ac.at/packages/tex/graphics/pstricks/base/doc/pstricks-doc.pdf
+% http://www.tug.org/PSTricks/main.cgi?file=doc/docs
+
+% 18:59:41 <martinp> http://pastebin.com/tcp16Gp minimales "sample"
+% 01:53:07 <martinp> die nodes werden deine lieblinge sein ;)
+% 01:53:19 <martinp> ncline, ncarc und nccircle
+% 01:53:32 <martinp> angle und arcangle als parameter sind ganz nützlich ;)
+% 01:54:08 <martinp> rest siehst eh in dem "sample" von mir ;)
+% 01:55:08 <martinp> aja, was du auf jedenfall vermeiden solltest sind leere reihen in der psmatrix
+% 01:55:14 <martinp> da kommt dann immer blödsinn raus
+% 01:55:39 <martinp> wennst mehr platz zwischen den nodes brauchst solltest colsep und rowsep verändern
+% 01:56:02 <martinp> eine \mbox{ } als knoten hab ich noch nicht probiert, könnte vlt aber auch gehen
+% 01:56:40 <martinp> \ncarc[arcangle=20]{rs}{i}^{bla} setzt bla als label über die linie
+% 01:56:45 <martinp> \ncarc[arcangle=20]{rs}{i}_{bla} unter die linie
+% 01:57:07 <martinp> die ncput in dem sample in die linie (ohne * wird die linie auch nicht ausgeblendet)
+% 01:57:55 <martinp> ^ und _ sind eigentlich nur abkürzungen für naput oder so in die richtung
+% 01:58:13 <martinp> [npos=.4] ist auch ganz nett für die puts, damit veränderst die pos. der label auf der
+% linie (zwischen start und ende)
+% 01:58:33 <martinp> und wennst böse kanten hast die du stark biegen musst
+% 01:59:03 <martinp> da ist es besser ncurv zu erhöhen als den arcangle (zumindest ab einem bestimmten arcangle
+% auch die einzige möglichkeit mehr "kurve" zu bekommen)
+\documentclass{minimal}
+\pagestyle{empty}
+
+\usepackage{pstricks}
+\usepackage{pst-node}
+
+\begin{document}
+
+\begin{psmatrix}[mnode=circle, colsep=2cm, rowsep=2cm]
+[mnode=R,name=res]{RESET} & [name=i]{idle} & [name=rsp]{\shortstack{read \\ Stop-Bit}} \\
+& [name=rs]{\shortstack{read \\ Start-Bit}} & [name=rb]{read Bit}\\
+\end{psmatrix}
+
+\psset{arrows=->, shortput=nab}
+
+\ncline[linestyle=dotted]{res}{i}
+
+\ncarc[arcangle=25]{i}{rs}\ncput*[npos=.38]{\shortstack{falling\\edge rxd}}
+\ncarc[arcangle=25]{rs}{i}\ncput*[npos=.36]{rxd=1}
+
+\ncline{rs}{rb}\ncput*{rxd=0}
+
+\ncline{rb}{rsp}\ncput*{bitcount=8}
+\nccircle[angle=180]{rb}{.7cm}\ncput*{bitcount$<$8}
+
+\ncline{rsp}{i}
+\end{document}