答え1
tikz
私は2 つのループを使用します\foreach
。次に例を示します。
\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}
編集。これは少し変更されたコードです。これで、必要に応じて他のページに続くノードの行を含む段落が生成されます。それらは内部にコピーされる\foreach
ため、必要な行数を変更できます。
いくつか注意点があります。ノードは、テキスト幅を指定しない限り、デフォルトでは改行を追加せず、や も
受け入れません。また、と を使用して小さなパディングも追加しました。\newline
\\
\par
inner xsep
inner ysep
水平方向のスペースは伸縮可能で、ラベルのサイズによって異なります。垂直方向のスペースは によって制御され、\lineskip
デフォルトでは 1pt です。これを に変更しました1em
。この時点で、コメントする必要があります。この例では、段落の内容が標準の段落の高さを超える可能性が高く、LaTeX は重なりを避けるために に格納されている最小距離を追加します\lineskip
。悪用するこの事実を踏まえて、最小スペースを に変更します1em
。これは、他の例ではほぼ確実に機能しません。
\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}
なお、これは で並べ替えることもできますlongtable
。
答え2
MadyYuvi がすでに適切なパッケージを紹介しているので、私はこれについて簡単に説明します。
\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}
編集: 番号を進めます。
コメントでリクエストされたように、ボックスに表示される数字を進めることができます。最も簡単な方法は、もちろん手動で数字を進めることです。
\begin{mybox}The Day 1\end{mybox}
\begin{mybox}The Day 2\end{mybox}
などなど。もちろん、これは最善の方法ではありません。
次に、番号付けを行うカウンターを追加するというアイデアがあります。MadyYuvi の回答 (+1) を参照してください。この方法でも、コードを\begin{mybox}The Day \theboxcounter\end{mybox}
何度も繰り返す必要があります。
このため、私見では、最善の解決策は for ループ (forloop
パッケージ) を使用することです。
\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}
答え3
OP
のコメントに従って、 counter
@Οὖτιςの回答に を追加しました。
\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}