
Estoy usando TikZ
para hacer un diagrama de flujo que demuestra mi esquema paso a paso. Noto que el ajuste de palabras no es automático en un nodo. Es decir, la línea puede ser extremadamente larga a lo largo de toda la página.
El MWE es el siguiente.
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage{tikz}
\title{Your Paper}
\begin{document}
\maketitle
\begin{tikzpicture}[block/.style={draw, fill=white, rectangle, minimum width=0.95*\columnwidth, anchor=west}, font=\small]
\node[block, minimum width=0.95\columnwidth, minimum height=1cm, fill=white, opacity=1, text opacity=1, rounded corners, thick](step1) at (0,0){};
\node[below=0cm of step1.north, align=left]{\textbf{Step 1}: This is Step one, which is a very very very long sentence. I really hate it when it does not automatically do the wrapping.};
\node[block, minimum width=0.95\columnwidth, minimum height=1cm, below right=0.9cm and 0cm of step1.south, fill=white, opacity=1, text opacity=1, rounded corners, thick](step2) at (0,0){};
\node[below=0cm of step2.north, align=left]{\textbf{Step 2}: Step 2 is cute and short.};
\draw[-stealth](step1.south)--(step2.north)node[pos=0.5, above=0cm]{};
\end{tikzpicture}
\end{document}
que se presenta como
Mi solución actual es insertar manualmente una nueva línea, lo cual es muy problemático.
Por lo tanto, deseo encontraruna forma elegante de lograr el ajuste automático de palabras en un nodo deTikZ
.
Respuesta1
No estaba obteniendo el ajuste de texto automático esperado que uno esperaría usar align=<option>
, porque estaba configurando la minimum width
clave. Proporcione un valor apropiado para text width
(no para minimum width
); luego align=<option>
proporcionará la alineación deseada:
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage{tikz}
\title{Your Paper}
\begin{document}
\maketitle
\begin{tikzpicture}[
block/.style={
draw,
fill=white,
text width=0.95*\columnwidth,
anchor=west,
minimum height=1cm,
rounded corners
},
font=\small
]
\node[block,align=left]
(step1)
{\textbf{Step 1}: This is Step one, which is a very very very long sentence. I really hate it when it does not automatically do the wrapping.};
\node[block,below=2cm of step1.north,align=center]
(step2)
{\textbf{Step 2}: Step 2 is cute and short.};
\draw[-stealth]
(step1.south)--(step2.north)node[pos=0.5, above=0cm]{};
\end{tikzpicture}
\end{document}
También hice algunas simplificaciones al código original, suprimiendo algunos nodos (aparentemente innecesarios).