2015-01-23 10 views
6

Szukam narzędzia opartego na konsoli, które może przetworzyć prosty plik tekstowy zawierający tekstową notację schematu blokowego i wygenerować plik PNG (lub inny format). Może być również pakiet LaTeX do tego, ale jeśli to możliwe, wolałbym narzędzie, które może generować niezależny plik PNG, który następnie można zaimportować do dokumentu LaTeX jako grafiki.narzędzie do generowania diagramu przepływu z zapisu tekstowego

Odpowiedz

5

Byłoby czystsze, aby LaTeX generował schemat blokowy zamiast generowania/importowania pliku png. W ten sposób nie będziesz miał problemów z rozdzielczością lub niepełnym próbkowaniem, a wszystko będzie w formacie wektorowym.

Możesz użyć pakietu LaTeX TikZ. Witryna texexample.net podaje następujący przykład.

enter image description here

\documentclass{article} 

\usepackage[latin1]{inputenc} 
\usepackage{tikz} 
\usetikzlibrary{shapes,arrows} 
\begin{document} 
\pagestyle{empty} 

% Define block styles 
\tikzstyle{decision} = [diamond, draw, fill=blue!20, 
    text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt] 
\tikzstyle{block} = [rectangle, draw, fill=blue!20, 
    text width=5em, text centered, rounded corners, minimum height=4em] 
\tikzstyle{line} = [draw, -latex'] 
\tikzstyle{cloud} = [draw, ellipse,fill=red!20, node distance=3cm, 
    minimum height=2em] 

\begin{tikzpicture}[node distance = 2cm, auto] 
    % Place nodes 
    \node [block] (init) {initialize model}; 
    \node [cloud, left of=init] (expert) {expert}; 
    \node [cloud, right of=init] (system) {system}; 
    \node [block, below of=init] (identify) {identify candidate models}; 
    \node [block, below of=identify] (evaluate) {evaluate candidate models}; 
    \node [block, left of=evaluate, node distance=3cm] (update) {update model}; 
    \node [decision, below of=evaluate] (decide) {is best candidate better?}; 
    \node [block, below of=decide, node distance=3cm] (stop) {stop}; 
    % Draw edges 
    \path [line] (init) -- (identify); 
    \path [line] (identify) -- (evaluate); 
    \path [line] (evaluate) -- (decide); 
    \path [line] (decide) -| node [near start] {yes} (update); 
    \path [line] (update) |- (identify); 
    \path [line] (decide) -- node {no}(stop); 
    \path [line,dashed] (expert) -- (init); 
    \path [line,dashed] (system) -- (init); 
    \path [line,dashed] (system) |- (evaluate); 
\end{tikzpicture} 
\end{document} 
+0

jedyną rzeczą jest to, że produkuje plik PNG (w przeciwieństwie do dokumentu PDF) pozwoli mi go używać niezależnie w innych kontekstach, jak również (na przykład na stronie internetowej), to znaczy stworzy bardziej samowystarczalny artefakt wielokrotnego użytku. –

Powiązane problemy