LaTex에서 이러한 유형의 페이지를 만드는 방법

LaTex에서 이러한 유형의 페이지를 만드는 방법

최소한의 여백으로 A4 페이지에 일종의 반복적인 패턴을 만들고 싶습니다. 이 텍스트와 함께 제공되는 샘플 이미지입니다. 여기에 이미지 설명을 입력하세요

하지만 이 작업을 수행하는 방법을 모르겠습니다. 어떤 힌트라도 좋습니다.

답변1

tikz나는 두 개의 루프를 사용하겠습니다 \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 이 예에서 단락의 내용은 표준 단락 높이를 초과할 가능성이 높으며 LaTeX는 겹치는 것을 방지하기 위해 . 나악용하다이 사실을 확인하고 최소 공간을 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}계속해서 반복해야 합니다.

forloop이것이 바로 IMHO가 for 루프( 패키지) 를 포함하는 최고의 솔루션인 이유입니다 .

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

여기에 이미지 설명을 입력하세요

관련 정보