Como criar este tipo de página em LaTex

Como criar este tipo de página em LaTex

Quero criar um padrão repetitivo em uma página A4 com margem mínima. Como imagem de exemplo, fornecida com este texto. insira a descrição da imagem aqui

Mas não estou entendendo como fazer isso. Qualquer dica é apreciável.

Responder1

Eu empregaria tikzcom dois \foreachloops. Aqui está o exemplo:

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

insira a descrição da imagem aqui


EDITAR. Aqui está um código ligeiramente alterado, que agora gera parágrafos com linhas de nós, que continuarão para a outra página se necessário. Eles são copiados internamente \foreachpara que você possa alterar quantas linhas você precisa.

Um par de coisas.
Os nós não adicionam quebras de linha nem aceitam \newline, \\ou \parpor padrão, a menos que você especifique a largura do texto. Eu também adicionei um pequeno preenchimento com inner xsepe inner ysep.

O espaço horizontal é extensível e depende do tamanho das suas etiquetas. O espaço vertical é controlado por \lineskipigual a 1pt por padrão. Eu mudei isso para 1em. Neste ponto, tenho que fazer um comentário. Neste exemplo, o conteúdo dos parágrafos muito provavelmente excede a altura padrão do parágrafo, e o LaTeX adiciona uma distância mínima armazenada \lineskippara evitar sobreposição. EUexploraresse fato e altere o espaço mínimo para 1em. É quase certo que isso não funcionará em outros exemplos.

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

Observe que isso também pode ser classificado com longtable.

Responder2

MadyYuvi já indicou um pacote adequado, vou simplesmente expandir isso.

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

insira a descrição da imagem aqui

Editar: avançando o número.

Conforme solicitado em um comentário, você pode avançar o número exibido na caixa. A maneira mais simples é, claro, avançar o número manualmente, então

\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 2\end{mybox}

e assim por diante. É claro que este não é o melhor caminho a seguir.

Aí você tem a ideia de adicionar um contador que faz a numeração para você, veja a resposta de MadyYuvi (+1). Isso ainda exigirá repetir o código \begin{mybox}The Day \theboxcounter\end{mybox}indefinidamente.

É por isso que IMHO a melhor solução envolve um loop for ( forlooppacote):

\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 com números avançando Aliás, esta resposta é totalmente aplicável se você precisar de mais de uma página dessas caixas.

Responder3

De acordo com o OPcomentário de, acabei de adicionar uma counterresposta em @Οὖτις,

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

insira a descrição da imagem aqui

informação relacionada