Cómo crear este tipo de página en LaTex

Cómo crear este tipo de página en LaTex

Quiero crear una especie de patrón repetitivo en una página A4 con un margen mínimo. Como imagen de muestra, adjunta con este texto. ingrese la descripción de la imagen aquí

Pero no entiendo cómo hacer esto. Cualquier pista es apreciable.

Respuesta1

Lo emplearía tikzcon dos \foreachbucles. 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}

ingrese la descripción de la imagen aquí


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 \foreachpara que puedas cambiar cuántas filas necesitas.

Un par de cosas.
Los nodos no añaden saltos de línea ni aceptan \newline, \\ni \parde forma predeterminada, a menos que especifiques el ancho del texto. También agregué un pequeño relleno con inner xsepy inner ysep.

El espacio horizontal es extensible y depende del tamaño de sus etiquetas. El espacio vertical está controlado por \lineskipel 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 \lineskippara 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}

ingrese la descripción de la imagen aquí

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 ( forlooppaquete):

\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}

Resultado con números en avance Por cierto, esta respuesta es completamente aplicable si necesita más de una página de estos cuadros.

Respuesta3

Según el OPcomentario de, acabo de agregar una counterrespuesta 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}

ingrese la descripción de la imagen aquí

información relacionada