2015-01-23 15 views
6

Sto cercando uno strumento basato su console in grado di elaborare un semplice file di testo contenente la notazione testuale di un diagramma di diagramma di flusso e generare un file PNG (o altro formato). Potrebbe esserci anche un pacchetto LaTeX, ma, se possibile, preferirei uno strumento in grado di generare un PNG indipendente che poi posso importare come documento in un documento LaTeX.strumento per generare il diagramma del diagramma di flusso da notazione testuale

risposta

5

Sarebbe più pulito lasciare LaTeX generare il diagramma di flusso invece di generare/importare un file png. In questo modo non avrai problemi di risoluzione o sottocampionamento e tutto sarà in formato vettoriale.

È possibile utilizzare il pacchetto TikZ di LaTeX. Il sito texexample.net fornisce il seguente esempio.

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

l'unica cosa è che la produzione di un file PNG (al contrario di un documento PDF) mi avrebbe permesso di usarlo in modo indipendente in altri contesti come bene (ad esempio, in una pagina web), vale a dire che produrrebbe un artefatto più autonomo e riutilizzabile. –

Problemi correlati