Responder1
Eu empregaria tikz
com dois \foreach
loops. 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}
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 \foreach
para 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 \par
por padrão, a menos que você especifique a largura do texto. Eu também adicionei um pequeno preenchimento com inner xsep
e inner ysep
.
O espaço horizontal é extensível e depende do tamanho das suas etiquetas. O espaço vertical é controlado por \lineskip
igual 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 \lineskip
para 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}
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 ( forloop
pacote):
\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}
Aliás, esta resposta é totalmente aplicável se você precisar de mais de uma página dessas caixas.
Responder3
De acordo com o OP
comentário de, acabei de adicionar uma counter
resposta 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}