So erstellen Sie diesen Seitentyp in LaTex

So erstellen Sie diesen Seitentyp in LaTex

Ich möchte eine Art sich wiederholendes Muster auf einer A4-Seite mit minimalem Rand erstellen. Als Beispielbild ist diesem Text beigefügt. Bildbeschreibung hier eingeben

Aber ich verstehe nicht, wie das geht. Jeder Hinweis ist willkommen.

Antwort1

tikzIch würde mit zwei Schleifen arbeiten \foreach. Hier ist das Beispiel:

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

Bildbeschreibung hier eingeben


BEARBEITEN. Hier ist ein leicht veränderter Code, der jetzt Absätze mit Zeilen von Knoten generiert, die bei Bedarf auf der anderen Seite fortgesetzt werden. Sie werden hineinkopiert, \foreachsodass Sie ändern können, wie viele Zeilen Sie benötigen.

Ein paar Dinge.
Knoten fügen keine Zeilenumbrüche hinzu und akzeptieren standardmäßig auch nicht \newline, \\oder \par, es sei denn, Sie geben die Textbreite an. Ich habe auch kleine Auffüllungen mit inner xsepund hinzugefügt inner ysep.

Der horizontale Abstand ist dehnbar und hängt von der Größe Ihrer Beschriftungen ab. Der vertikale Abstand wird durch gesteuert, \lineskipwas standardmäßig 1pt entspricht. Ich habe das in geändert 1em. An dieser Stelle muss ich einen Kommentar abgeben. In diesem Beispiel überschreitet der Inhalt von Absätzen sehr wahrscheinlich eine Standardabsatzhöhe, und LaTeX fügt einen in gespeicherten Mindestabstand hinzu, \lineskipum Überlappungen zu vermeiden. Ichausbeutendiese Tatsache und ändern Sie den Mindestabstand auf 1em. Dies wird in anderen Beispielen mit ziemlicher Sicherheit nicht funktionieren.

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

Beachten Sie, dass hier auch mit sortiert werden kann longtable.

Antwort2

MadyYuvi hat dir bereits ein passendes Paket empfohlen, ich werde das hier einfach noch etwas näher ausführen.

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

Bildbeschreibung hier eingeben

Bearbeiten: Die Nummer wird erhöht.

Wie in einem Kommentar gefordert, können Sie die im Feld angezeigte Nummer erhöhen. Am einfachsten ist es natürlich, die Nummer manuell zu erhöhen, sodass

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

usw. Das ist natürlich nicht der beste Weg.

Dann haben Sie die Idee, einen Zähler hinzuzufügen, der die Nummerierung für Sie übernimmt, siehe MadyYuvis Antwort (+1). Dies erfordert jedoch weiterhin, den Code \begin{mybox}The Day \theboxcounter\end{mybox}immer wieder zu wiederholen.

Aus diesem Grund ist meiner Meinung nach die beste Lösung eine For-Schleife ( forloopPaket):

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

Ergebnis mit aufsteigenden Zahlen Übrigens ist diese Antwort vollständig anwendbar, wenn Sie mehr als eine Seite dieser Felder benötigen.

Antwort3

Gemäß dem OPKommentar von habe ich gerade eine counterAntwort in @Οὖτις hinzugefügt,

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

Bildbeschreibung hier eingeben

verwandte Informationen