
Para mostrar que la probabilidad de lanzar dos dados y obtener una suma de 7 es 1/6, quería hacer una tabla usando la opción "foreach" en TikZ
. El siguiente código me da una tabla de todos los rollos posibles.
Los rectángulos de pares adyacentes se superponen. Esto le da una apariencia indecorosa. ¿Cómo puedo agregar espacio horizontal para separar los rectángulos?
Usando este código, ¿puedo reemplazar los rectángulos que contienen los seis pares de números que suman 7 con un círculo o una elipse?
¿Cómo puedo hacer que el primer número sea azul y el segundo verde?
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,shapes,positioning,intersections,quotes,decorations.markings}
\begin{document}
\begin{tikzpicture}
\node foreach \x in {1,...,6} foreach \y in{1,...,6} [draw] at (\x-6,6-\y)
{(\x, \, \y)};
\end{tikzpicture}
\end{document}
Respuesta1
% arara: pdflatex
\documentclass{amsart}
\usepackage{tikz}
\usepackage{xcolor}
\begin{document}
\begin{tikzpicture}[x=1.5cm,y=1.5cm]
\node foreach \x in {1,...,6} foreach \y in{1,...,6} [draw, circle] at (\x-6,6-\y)
{(\textcolor{blue}{\x}, \, \textcolor{green}{\y})};
\end{tikzpicture}
\end{document}
% arara: pdflatex
\documentclass{amsart}
\usepackage{tikz}
\usepackage{xcolor}
\begin{document}
\begin{tikzpicture}[x=1.8cm,y=1cm]
\foreach \x in {1,...,6} {%
\foreach \y in {1,...,6} {%
\draw (\x-6,6-\y) ellipse (.8cm and .3cm) node {$(\textcolor{blue}{\x},\textcolor{green}{\y})$};
}
}
\end{tikzpicture}
\end{document}
Editar:
Lo siento, te entendí mal en primer lugar. Aquí estás:
% arara: pdflatex
\documentclass{amsart}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{xifthen}
\begin{document}
\begin{tikzpicture}[x=1.8cm,y=1cm]
\foreach \x in {1,...,6} {%
\foreach \y in {1,...,6} {%
\pgfmathtruncatemacro{\test}{\x+\y};
\ifthenelse{\test=7}
{\draw (\x-6,6-\y) ellipse (.8cm and .3cm) node {$(\textcolor{blue}{\x},\textcolor{green}{\y})$};}
{\draw (\x-6,6-\y) node [draw] {$(\textcolor{blue}{\x},\textcolor{green}{\y})$};}
}
}
\end{tikzpicture}
\end{document}
Respuesta2
También puedes usar una matriz y directivas de celda vacía.
\documentclass[tikz]{standalone}
\usetikzlibrary{matrix,shapes.geometric}
% shorthand for less typing
\def\mcr{\pgfmatrixcurrentrow}\def\mcc{\pgfmatrixcurrentcolumn}
\begin{document}
\begin{tikzpicture}
\matrix (a) [execute at empty cell={\ifnum7=\numexpr\mcc+\mcr\relax
\node[ellipse,draw,inner sep=1pt]
{(\textcolor{blue}{\the\mcc},\textcolor{green}{\the\mcr})};
\else
\node[draw,inner sep=1pt]{(\textcolor{blue}{\the\mcc},\textcolor{green}{\the\mcr})};
\fi}]{&&&&&\\&&&&&\\&&&&&\\&&&&&\\&&&&&\\&&&&&\\};
\end{tikzpicture}
\end{document}
Respuesta3
Un intento con MetaPost, lo más sobrio posible. Para ser procesado con LuaLaTeX.
\documentclass[border=2mm]{standalone}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\begin{document}
\begin{mplibcode}
u := 1.25cm; v := -cm; pair pos; path box; picture dices;
beginfig(1);
for i = 1 upto 6:
for j = 1 upto 6:
pos := ((i+1)*u, (j+1)*v);
dices := thelabel(decimal i & ", " & decimal j, pos);
box := bbox dices;
if i+j <> 7: draw box;
else:
d1 := xpart(lrcorner box - llcorner box) + labeloffset;
d2 := ypart(urcorner box - lrcorner box) + labeloffset;
draw fullcircle xscaled d1 yscaled d2 shifted pos;
fi
draw dices;
endfor
endfor
endfig;
\end{mplibcode}
\end{document}