Finomaton - Draw Finite State Machines ====================================== This is free software, and you are welcome to redistribute it under certain conditions; see "COPYING" for more information. Finomaton comes WITHOUT ANY WARRANTY. Requirements ------------ You need Tcl/Tk and MetaPost. Using Finomaton --------------- Start Finomaton: wish finomaton.tcl + RETURN To add states, click "New state" and then on the canvas. Click "Select" and then on the states to select and move them. Analogous for lines and text items. Add a line, and you see three circles: two end-points, and one control point. When you click on a state or somewhere on the canvas, control points become invisible. When you select a line, its control points become visible and can be moved. Add a second control point to a line by clicking "Control point" and then on a line. Any item can be removed by clicking "Remove" and then on the item you want to remove, or by selecting an item and then pressing "DEL". To obtain a straight line, remove its control points. Select multiple items and toggle selections by holding CONTROL while clicking on an item. Click "|" to assign all selected items the X-coordinate of the first selected item (analogous for "--" and Y-coordinate). Press "h" to spread (i.e., make equidistant between leftmost and rightmost) selected items horizontally, "v" to spread vertically. Double-click on a state, text item or line for attributes. States have a label for display on the canvas, and a "TeX" attribute that can contain any valid TeX-string. If specified, it is used instead of the canvas label when exporting. Include the TeX-command "\strut" if states turn out too small. Lines can have labels. The label will be typeset nearby the line (depending on the anchor position you choose), and you can choose a percentage to select how far along the line the label will be placed. The label will NOT be displayed on the canvas, and a setting of 50% does NOT necessarily mean the optical mid-point of the line. States act like magnets for control points. When you move a state, all its attached control points move with it. If you move a control point by using the arrow keys, it is not affected by magnetic states. Via "File => Settings...", you adjust parameters that affect the MetaPost output. These settings are saved on a per-file basis. Typesetting the Generated Graph ------------------------------- Having exported a graph to MetaPost-format, say "graph.mp", you: a) Invoke MetaPost: mpost graph.mp ("mp graph.mp" on some systems) This creates a new (PostScript) file, "graph.1". b) Include "graph.1" in TeX and LaTeX-documents: *) pdftex (requires ConTeXt): \input supp-pdf.tex \convertMPtoPDF{graph.1}{1}{1} Syntax is \convertMPtoPDF {filename} {x scale} {y scale}. *) pdflatex (requires ConTeXt): \usepackage{graphics} \convertMPtoPDF{graph.1}{1}{1} *) tex: \special{psfile=graph.1} *) latex: \usepackage{graphics} \includegraphics{graph.1} You can also try dvips, dvipdf, gs and ps2pdf on generated graphs and documents. Key bindings ------------ Ctrl + m Export MetaPost... Ctrl + o Open... Ctrl + s Save Alt + x Exit DEL Remove selected items c Control point e Select h Spread selected items horizontally l New line r Remove s New state t New text v Spread selected items vertically x Same X coordinate for all selected items y Same Y coordinate for all selected items When you use Ctrl + m, you are prompted for a file name only on the first export. The same path is used when you use the binding again. For batch-conversions, use ./finomaton.tcl -exportmp file1.fin file2.fin ... to create file1.mp, file2.mp, ... . If a file's suffix is not "fin", then ".mp" is appended to the filename. Latest Version and Contact -------------------------- The latest version of Finomaton is available from http://www.ctan.org Good luck, Markus Triska (triska@gmx.at) October 9th, 2003