EDITAR

EDITAR

Creo que esta sería una buena pregunta sobre cómo llevar un diagrama de flujo personalizado (el suyo) en MS Word a LaTeX. Bueno, he adjuntado un archivo World y estoy intentando convertirlo a LaTex. La opción Guardar como "tipo" LaTeX no funcionó y generó un PDF sin sentido. Entonces, ¿cuál sería la mejor manera?

ingrese la descripción de la imagen aquí

No sé cómo adjuntar un archivo de Word aquí. así que he puesto una instantánea de eso.

Una forma es volver a escribir esto en LaTeX, pero no me siento seguro de hacerlo (siento dificultad para tener estas flechas). Claramente, cuando traigo esto como figura al archivo fuente de LaTeX, las fuentes no coinciden con otras cosas en papel. Por lo tanto, quiero convertir eso (tal vez como la forma más sencilla)

Respuesta1

la respuesta de alanfunciona bien, pero con la versión actual de Forest no es necesario definirlo edge pathdesde cero. En su lugar, podemos usar la edgesbiblioteca con la opción forked edges. Además, podemos eliminarlo growth parent anchor=eastporque no hace nada (incluso en la versión anterior de Forest), y podemos usar los anclajes parenty childrenen lugar de easty westpara hacer el código más flexible.

parent anchor=children,
child anchor=parent,
forked edges,
edge={->,>=latex},

De hecho, grow=eastes suficiente por sí solo, por lo que podemos eliminar parent anchorlas child anchorespecificaciones por completo.

Esto nos proporciona el siguiente código para el mismo resultado que Alan mostró en su respuesta.

\documentclass[tikz,multi,border=10pt]{standalone}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
  for tree={
    grow=east,
    math content,
    edge={->,>=latex},
  },
  forked edges
  [\tau>\tau^0
    [A_x<\tau<A_l
    ]
    [D
      [E]
      [F]
    ]
    [\tau<A_x
      [{\zeta^n=\zeta^n-1}
      ]
    ]
  ]
\end{forest}
\end{document}

Sin embargo, si se mira más de cerca, las líneas podrían ser mejores:

flecha rizada

La definición predeterminada de forked edgeses

  forked edges/.style={
    for tree={parent anchor=children},
    for descendants={child anchor=parent,forked edge}
  },

Entonces, intentemos redefinirlo para que forked edgesolo se use si un nodo tiene más de un hijo agregando esta redefinición:

\forestset{
  forked edges/.style={
    for tree={parent anchor=children},
    for descendants={
      child anchor=parent,
      if={n_children("!u")==1}{}{
        forked edge
      },
    }
  },
}

Esta es mejor:

menos pervertido

Sin embargo, la flecha todavía está en ángulo: no es del todo horizontal. Lo que debemos hacer es definir una alternativa edge pathpara el caso en el que haya precisamente un niño.

El borde predeterminado se dibuja desde el ancla principal del nodo padre (!u.parent anchor)hasta el ancla hijo del nodo hijo (.child anchor). Nos gustaría que el inicio de la flecha esté alineado horizontalmente con (.child anchor). (En su lugar, podríamos alinear el punto final con el ancla principal del padre, por supuesto).

\forestset{
  forked edges/.style={
    for tree={parent anchor=children},
    for descendants={
      child anchor=parent,
      if={n_children("!u")==1}{
        edge path'={
          (!u.parent anchor |- .child anchor) -- (.child anchor)
        },
      }{
        forked edge,
      },
    }
  },
}

Esto produce la flecha horizontal que estamos buscando:

flecha sin doblar

Sin embargo, esta puede no ser la mejor solución. Si los nodos padre e hijo tienen tamaños demasiado diferentes, es posible que obtengamos una alineación extraña. Entonces, tal vez deberíamos decirle a Forest que alinee al niño con el padre para que el ancla hijo del niño se alinee con el ancla padre del padre.

\forestset{
  forked edges/.style={
    for tree={parent anchor=children},
    for descendants={
      child anchor=parent,
      if={n_children("!u")==1}{
        !u.calign=child edge,
      }{
        forked edge,
      },
    }
  },
}

Hace el truco.

En este momento, el resultado se ve así:

árbol provisional

Esto es mejor, pero sería bueno si pudiéramos alinear al hijo del medio con el padre cuando el padre tiene un número impar de hijos. Por ejemplo, si Del borde de estaba alineado con la línea trazada desde el nodo raíz.

Esto es un poco más complicado, pero no tanto. Podemos usar el calign=child edgetruco nuevamente y establecer que el hijo del medio sea el hijo "principal" de sus padres.

Podemos agregar esto en el preámbulo al comienzo de nuestro forestentorno:

\begin{forest}
  for tree={
    ...
    if={isodd(n_children())}{
      calign primary child/.pgfmath={(n_children()+1)/2},
      calign=child edge,
    }{},
  },

De hecho, dado que cualquier nodo con exactamente 1 hijo tiene un número impar de hijos, también podemos eliminar la redefinición de forked edgesya que de todos modos obtendremos una flecha recta:

arbol final

\documentclass[tikz,multi,border=10pt]{standalone}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
  for tree={
    grow=east,
    math content,
    edge={->,>=latex},
    if={isodd(n_children())}{
      calign primary child/.pgfmath={(n_children()+1)/2},
      calign=child edge,
    }{}
  },
  forked edges
  [\tau>\tau^0
    [A_x<\tau<A_l
    ]
    [D
      [E]
      [F]
    ]
    [\tau<A_x
      [{\zeta^n=\zeta^n-1}
      ]
    ]
  ]
\end{forest}
\end{document}

Robar código griego descaradamentemarco:

\begin{forest}
  for tree={
    grow'=east,
    math content,
    edge={->,>=latex},
    if={isodd(n_children())}{
      calign primary child/.pgfmath={(n_children()+1)/2},
      calign=child edge,
    }{}
  },
  forked edges
  [\tau>\tau^0
    [\tau<A_x
      [{\zeta^n=\zeta^{n-1}}]
      [{\zeta^n=\zeta^{n-1}}]
      [{\zeta^n=\zeta^{n-1}}]
    ]
    [A_x<\tau<A_l
      [\sigma<C_{a}(T-A_{x})
        [{\zeta^n=\zeta^{n-1}}]
        [{\zeta^n=\zeta^{n-1}}]
        [{\zeta^n=\zeta^{n-1}}]
      ]
      [\sigma>C_{a}(T-A_{x})
        [{\xi^{n}=\frac{\xi^{0}}{2}\cos \left ( a_{A}\left (\Gamma-A_{x}-\frac{\sigma}{C_{a}}  \right ) \right )}]
        [{\xi_{s}^{n}=\xi_{s}^{n}-\frac{\xi_{s}^{n}}{\xi_{s}^{n}}-(\xi^{0}-\xi^{n})}]
        [{\xi_{s}^{n}=\xi_{s}^{n}-\frac{\xi_{s}^{n}}{\xi_{s}^{n}}-(\xi^{0}-\xi^{n})}]
      ]
    ]
  ]
\end{forest}

mas arbol

EDITAR

Su código produce 'espacios en blanco' porque [[<something>]]produce un nodo vacío y luego un nodo con [<something>]. Para eliminar el nodo vacío, simplemente diga [<something>].

\documentclass{article}
\usepackage{forest-1}
\begin{document}
\begin{forest}
  for tree={
    grow=east,
    parent anchor=east,
    child anchor=west,
    math content,
    edge={->, >={latex}},
    edge path={\noexpand\path[\forestoption{edge}] (!u.parent anchor) -- +(5pt,0pt) |- (.child anchor) \forestoption{edge label};}
  }
  [T>T^0
    [T>A_f
      [C_a(T-A_f) <\sigma <C_a (T-A_s)
          [  {\zeta_s^n=\zeta_s^0-\frac{\zeta_s^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
          [  {\zeta_T^n=\zeta_T^0-\frac{\zeta_T^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
          [{\zeta^n=\frac{\zeta^0}{2}(cos \big (\alpha_A(T-A_s-\frac{\sigma}{C_a})\big )+1)} ]
      ]
      [\sigma<C_a(T-A_s)
        [  {\zeta^n=\zeta^{n-1}} ]
        [  {\zeta_s^n=\zeta_s^{n-1}} ]
        [  {\zeta_T^n=\zeta_T^{n-1}} ]
      ]
    ]
    [A_s<T<A_f
      [\sigma<C_a(T-A_s)
            [  {\zeta_s^n=\zeta_s^0-\frac{\zeta_s^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
            [  {\zeta_T^n=\zeta_T^0-\frac{\zeta_T^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
            [{\zeta^n=\frac{\zeta^0}{2}(cos \big (\alpha_A(T-A_s-\frac{\sigma}{C_a})\big )+1)}]
        [\sigma>C_a(T-A_s)
            [  {\zeta^n=\zeta^{n-1}} ]
            [  {\zeta_s^n=\zeta_s^{n-1}} ]
            [  {\zeta_T^n=\zeta_T^{n-1}} ]
        ]
      ]
    ]
    [T<A_s
      [  {\zeta^n=\zeta^{n-1}} ]
      [  {\zeta_s^n=\zeta_s^{n-1}} ]
      [  {\zeta_T^n=\zeta_T^{n-1}} ]
    ]
  ]
\end{forest}
\end{document}

menos espacios

Tenga en cuenta que con la versión 1, ustedhacerEs necesario especificar parent anchor=east, child anchor=westy cambiar el edge path. No hay forked edges. Además, no es fácil eliminar el problema cuando solo hay un hijo porque calign=child edgetiene errores en versiones anteriores a la 2.01. Aún podría hacerlo, pero sería mucho más fácil actualizar que solucionar el error. Esto no es un problema si su árbol no tiene hijos únicos, pero si tiene otros árboles, podría serlo. Tampoco es fácil alinear los bordes por motivos similares. Tendrías que hacer algo para edge pathque funcione.

Con el paquete actual, por otro lado, su árbol se puede ajustar fácilmente para que luzca así y el código también es más simple:

árbol alineado

\documentclass{article}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
  for tree={
    grow'=east,
    math content,
    edge={->,>=latex},
    if={isodd(n_children())}{
      calign primary child/.pgfmath={(n_children()+1)/2},
      calign=child edge,
    }{}
  },
  forked edges
  [T>T^0
    [T>A_f
      [C_a(T-A_f) <\sigma <C_a (T-A_s)
          [  {\zeta_s^n=\zeta_s^0-\frac{\zeta_s^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
          [  {\zeta_T^n=\zeta_T^0-\frac{\zeta_T^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
          [{\zeta^n=\frac{\zeta^0}{2}(cos \big (\alpha_A(T-A_s-\frac{\sigma}{C_a})\big )+1)} ]
      ]
      [\sigma<C_a(T-A_s)
        [  {\zeta^n=\zeta^{n-1}} ]
        [  {\zeta_s^n=\zeta_s^{n-1}} ]
        [  {\zeta_T^n=\zeta_T^{n-1}} ]
      ]
    ]
    [A_s<T<A_f
      [\sigma<C_a(T-A_s)
            [  {\zeta_s^n=\zeta_s^0-\frac{\zeta_s^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
            [  {\zeta_T^n=\zeta_T^0-\frac{\zeta_T^0}{\zeta^0}(\zeta^0-\zeta^n)} ]
            [{\zeta^n=\frac{\zeta^0}{2}(cos \big (\alpha_A(T-A_s-\frac{\sigma}{C_a})\big )+1)}, calign with current]
        [\sigma>C_a(T-A_s)
            [  {\zeta^n=\zeta^{n-1}} ]
            [  {\zeta_s^n=\zeta_s^{n-1}} ]
            [  {\zeta_T^n=\zeta_T^{n-1}} ]
        ]
      ]
    ]
    [T<A_s
      [  {\zeta^n=\zeta^{n-1}} ]
      [  {\zeta_s^n=\zeta_s^{n-1}} ]
      [  {\zeta_T^n=\zeta_T^{n-1}} ]
    ]
  ]
\end{forest}
\end{document}

Respuesta2

Esto no es muy difícil de hacer forest. El siguiente ejemplo debería ayudarle a empezar.

\documentclass{article}
\usepackage{forest}
\begin{document}

\begin{forest}for tree={
    grow=east
    parent anchor=east,
    child anchor=west,
    math content,
    edge path={\noexpand\path[\forestoption{edge},->, >={latex}] 
         (!u.parent anchor) -- +(5pt,0pt) |- (.child anchor)
         \forestoption{edge label};}}
[\tau>\tau^0  [A_x<\tau<A_l ] [D [E ] [F ]][\tau<A_x [  {\zeta^n=\zeta^n-1} ]]]
\end{forest}
\end{document}

salida de código

Respuesta3

Considere que este no es el enfoque correcto en absoluto, pero no soy un experto y esta es la única forma que conozco.

\documentclass[border=0.5cm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    % \draw [help lines] (0,0) grid (13,13);
    \draw [thick] (0,0) -- (0,10);
    \draw [thick,-latex] (0,5) -- + (0.5,0) node [right] {$A<T<A_{f}$};
    \draw [thick,-latex] (2.8,5) -- + (0.5,0);
    \draw [thick] (3.3,3.5) -- (3.3,6.5);
    \draw [thick,-latex] (3.3,3.5) -- + (0.5,0) node [right] {$\sigma<C_{a}(T-A_{x})$};
    \draw [thick,-latex] (3.3,6.5) -- + (0.5,0) node [right] {$\sigma>C_{a}(T-A_{x})$};
    \draw [thick,-latex] (0,10) -- + (0.5,0) node [right] {$T<A$};
    \draw [thick,-latex] (1.8,10) -- + + (0.5,0);
    \draw [thick] (2.3,9) -- (2.3,11);
    \draw [thick,-latex] (2.3,9) -- + (0.5,0) node [right] {$\xi^{n}=\xi^{n-1}$};
    \draw [thick,-latex] (2.3,10) -- + (0.5,0) node [right] {$\xi^{n}=\xi^{n-1}$};
    \draw [thick,-latex] (2.3,11) -- + (0.5,0) node [right] {$\xi_{T}^{n}=\xi_{T}^{n-1}$};
    \draw [thick,-latex] (6.5,6.5) -- + (0.5,0);
    \draw [thick] (7,5.8) -- + (0,1.4);
    \draw [thick,-latex] (7,5.8) -- + (0.5,0) node [right] {$\xi^{n}=\xi^{n-1}$};
    \draw [thick,-latex] (7,6.5) -- + (0.5,0) node [right] {$\xi^{n}=\xi^{n-1}$};
    \draw [thick,-latex] (7,7.2) -- + (0.5,0) node [right] {$\xi_{T}^{n}=\xi_{T}^{n-1}$};
    \draw [thick,-latex] (6.5,3.5) -- + (0.5,0);
    \draw [thick] (7,2.5) -- + (0,2);
    \draw [thick,-latex] (7,2.5) -- + (0.5,0) node [right] {$\xi^{n}=\frac{\xi^{0}}{2}\cos \left ( a_{A}\left (\Gamma-A_{x}-\frac{\sigma}{C_{a}}  \right ) \right )$};
    \draw [thick,-latex] (7,3.5) -- + (0.5,0) node [right] {$\xi_{s}^{n}=\xi_{s}^{n}-\frac{\xi_{s}^{n}}{\xi_{s}^{n}}-(\xi^{0}-\xi^{n})$};
    \draw [thick,-latex] (7,4.5) -- + (0.5,0) node [right] {$\xi_{s}^{n}=\xi_{s}^{n}-\frac{\xi_{s}^{n}}{\xi_{s}^{n}}-(\xi^{0}-\xi^{n})$};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada