
Tengo el siguiente MWE de una diapositiva Beamer:
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,shapes,calc}
\usetheme{Singapore}
\begin{document}
\begin{frame}
\begin{tikzpicture}[node distance=15mm, >=latex',
block/.style = {draw, rectangle, minimum height=10mm, minimum width=28mm,align=center},]
\node [block] (dose_reduction) {Dose reduction};
\node [block, below left=of dose_reduction] (filtering) {Filtering techniques};
% issues with either of these lines
%\node [block, below right=of dose_reduction] (reconstruction) {Reconstruction techniques};
\node [block, right=of filtering] (reconstruction) {Reconstruction techniques};
\draw[->] (filtering) edge (dose_reduction);
\draw[->] (reconstruction) edge (dose_reduction);
\end{tikzpicture}
\end{frame}
\end{document}
Me gustaría que el cuadro superior esté centrado horizontalmente. Además, la distancia desde el borde izquierdo de la diapositiva hasta el cuadro izquierdo debe ser tan grande como la distancia desde el borde derecho de la diapositiva hasta el cuadro derecho. Probé dos variantes pero ninguna funcionó.
Respuesta1
Probablemente el método más sencillo sea colocar los nodos below right
y below left
el .south
anclaje del nodo superior para centrar el bloque superior con respecto a los inferiores.
Para centrar el bloque superior con respecto al marco, probablemente sea más fácil dibujar primero los bloques inferiores y luego centrar el bloque superior con respecto al cuadro delimitador actual.
También actualicé la sintaxis para usar en lugar de la biblioteca arrows.meta
obsoleta .arrows
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning}
\usetheme{Singapore}
\begin{document}
\begin{frame}
\centering
\begin{tikzpicture}[node distance=15mm, >=Latex,
block/.style = {draw, rectangle, minimum height=10mm, minimum width=28mm,align=center},]
\node [block] (dose_reduction) {Dose reduction};
\node [block, below left=of dose_reduction.south] (filtering) {Filtering techniques};
\node [block, below right=of dose_reduction.south] (reconstruction) {Reconstruction techniques};
\draw[->] (filtering) edge (dose_reduction);
\draw[->] (reconstruction) edge (dose_reduction);
\end{tikzpicture}
\end{frame}
\begin{frame}
\centering
\begin{tikzpicture}[node distance=15mm, >=Latex,
block/.style = {draw, rectangle, minimum height=10mm, minimum width=28mm,align=center},]
\node [block] (filtering) {Filtering techniques};
\node [block, right=of filtering] (reconstruction) {Reconstruction techniques};
\node [block, above=of filtering.north -| current bounding box.center] (dose_reduction) {Dose reduction};
\draw[->] (filtering) edge (dose_reduction);
\draw[->] (reconstruction) edge (dose_reduction);
\end{tikzpicture}
\end{frame}
\end{document}
La imagen en ambas diapositivas se centra con respecto al marco usando \centering
. El primer marco centra el bloque superior con respecto a los bloques inferiores.
El segundo marco centra el bloque superior con respecto al marco.