Respuesta1
Lo emplearía tikz
con dos \foreach
bucles. Aquí está el ejemplo:
\documentclass{article}
\usepackage[margin=0.5in, noheadfoot, nomarginpar]{geometry}
\usepackage{tikz}
\usepackage{showframe}
\renewcommand*\ShowFrameLinethickness{0.2pt}
\renewcommand*\ShowFrameColor{\color{blue}}
\tikzset{
every node/.style = {
draw,
red,
text = black,
font = \large,
line width = 1.6pt,
rounded corners,
minimum width = 3cm,
minimum height = 1cm,
}
}
\pagestyle{empty}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\foreach \y [evaluate=\y as \yo using \y*1.25] in {0,...,19} {
\foreach \x [evaluate=\x as \xo using \x*3.75, evaluate=\d using int(\x+5*\y+1)] in {0,...,4} {
\node at (\xo,-\yo) {The day \d}; }}
\end{tikzpicture}
\end{figure}
\end{document}
EDITAR. Aquí hay un código ligeramente modificado, que ahora genera párrafos con filas de nodos, que continuarán en la otra página si es necesario. Se copian en el interior \foreach
para que puedas cambiar cuántas filas necesitas.
Un par de cosas.
Los nodos no añaden saltos de línea ni aceptan \newline
, \\
ni \par
de forma predeterminada, a menos que especifiques el ancho del texto. También agregué un pequeño relleno con inner xsep
y inner ysep
.
El espacio horizontal es extensible y depende del tamaño de sus etiquetas. El espacio vertical está controlado por \lineskip
el cual es igual a 1 punto de forma predeterminada. Lo cambié a 1em
. Llegados a este punto tengo que hacer un comentario. En este ejemplo, es muy probable que el contenido de los párrafos exceda la altura de párrafo estándar, y LaTeX agrega una distancia mínima almacenada \lineskip
para evitar la superposición. Iexplotareste hecho y cambie el espacio mínimo a 1em
. Es casi seguro que esto no funcionará en otros ejemplos.
\documentclass{article}
\usepackage[margin=0.5in, noheadfoot, nomarginpar]{geometry}
\usepackage{tikz}
\tikzset{
every node/.style = {
draw, red, line width = 1.6pt, rounded corners,
text = black, font = \large, align = center,
text width = 4cm,
inner xsep = 3pt, inner ysep = 6pt,
}
}
\newsavebox\textlabel
\NewDocumentCommand\TL{s}{%
\IfBooleanF{#1}{\hfill}%
\begin{tikzpicture}[baseline]
\node {%
Multiple line sample
\par Second line
\par Third line
};
\end{tikzpicture}}
\pagestyle{empty}
\begin{document}
\setlength\parindent{0pt}%
\setlength\lineskip{1em}% % minimum vertical space
\foreach \x in {1,...,20} {\par\TL* \TL \TL \TL};
\end{document}
Tenga en cuenta que esto también se puede ordenar con longtable
.
Respuesta2
MadyYuvi ya le indicó un paquete adecuado, simplemente lo ampliaré.
\documentclass{article}
\usepackage{multicol,tcolorbox}
\newtcolorbox{mybox}{colframe=red,colback=white}
\begin{document}
\begin{multicols}{3}
\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 1\end{mybox}
% I think you can imagine how to go on...
\end{multicols}
\end{document}
Editar: Avanzando el número.
Según lo solicitado en un comentario, puede avanzar el número que se muestra en el cuadro. La forma más sencilla es, por supuesto, avanzar el número manualmente, de modo que
\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 2\end{mybox}
etcétera. Por supuesto, esta no es la mejor manera de hacerlo.
Entonces tienes la idea de agregar un contador que haga la numeración por ti, mira la respuesta de MadyYuvi (+1). Esto aún requerirá repetir el código \begin{mybox}The Day \theboxcounter\end{mybox}
una y otra vez.
Es por eso que, en mi humilde opinión, la mejor solución implica un bucle for ( forloop
paquete):
\documentclass{article}
\usepackage{multicol,tcolorbox,forloop}
\newtcolorbox{mybox}{colframe=red,colback=white}
\begin{document}
\begin{multicols}{3}
\newcounter{boxcounter}
\forloop{boxcounter}{1}{\value{boxcounter} < 25}{%
\begin{mybox}The Day \theboxcounter\end{mybox}
}
\end{multicols}
\end{document}
Por cierto, esta respuesta es completamente aplicable si necesita más de una página de estos cuadros.
Respuesta3
Según el OP
comentario de, acabo de agregar una counter
respuesta en @Οὖτις,
\documentclass{article}
\usepackage{multicol,tcolorbox}
\newcounter{boxcounter}%
\setcounter{boxcounter}{0}%
\renewcommand{\theboxcounter}{\arabic{boxcounter}}%
\newtcolorbox{mybox}{code={\refstepcounter{boxcounter}},colframe=red,colback=white}
\begin{document}
\begin{multicols}{3}
\begin{mybox}The Day \theboxcounter\end{mybox}
\begin{mybox}The Day \theboxcounter\end{mybox}
\begin{mybox}The Day \theboxcounter\end{mybox}
\begin{mybox}The Day \theboxcounter\end{mybox}
\begin{mybox}The Day \theboxcounter\end{mybox}
\begin{mybox}The Day \theboxcounter\end{mybox}
% I think you can imagine how to go on...
\end{multicols}
\end{document}