このタイプのページをLaTexで作成する方法

このタイプのページをLaTexで作成する方法

最小限の余白で A4 ページに繰り返しパターンを作成したいと考えています。サンプル画像として、このテキストに示されています。 ここに画像の説明を入力してください

しかし、どうすればいいのか分かりません。どんなヒントでもいただければありがたいです。

答え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\\\parinner xsepinner 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}

数字が進む結果 ちなみに、この回答は、これらのボックスが 1 ページ以上必要な場合に完全に適用できます。

答え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}

ここに画像の説明を入力してください

関連情報