我制作了一个框,但不想超过 22 行。如果超过,它将与其他文本重叠,这是不可取的。
如何确保文本不超过 22 行?我想到了一些解决方案:
- 添加一个计数器来计算换行符,并使用它来忽略第 22 行之后的文本。
- 为框指定一个固定的高度,这样第 23 行将位于框之外,并且不会显示在灰色文本上。
如果可能的话,我希望解决方案包括:
mybox
发出已超出 22 行限制的错误。- 在第 22 行打印一些文本,以
etc.
表明并未包含所有文本。(这将用于列出贡献者,因此也许类似的内容et. al.
会更可取。)
这是我的 MWE:
\documentclass[fontsize=13pt,a4paper,openany,parskip=half]{scrbook}
\RequirePackage{eso-pic}
\newcommand{\overlaytextbox}[3]{% \placetextbox{<horizontal pos>}{<vertical pos>}{<stuff>}
\AddToShipoutPictureFG*{%
\put(\LenToUnit{#1\paperwidth},%
\LenToUnit{#2\paperheight}){\vtop{{\null}\parbox{0.3\textwidth}{#3}}}
}%
}%
\newcommand{\mytextbox}[2][black]{%
\overlaytextbox{0.05}{0.94}{% 0.65 og 0.94 for plassering til høyre
\color{#1}
\subsection*{Big TEXT \hfill \\ here \hfill}%
\vspace{3mm}%
\linespread{1.6}\selectfont
{\itshape
#2
}%
}%
}%
% These are the actual lenghts used in the document:
\usepackage{mathtools}
\setlength\topmargin{-58pt}
\setlength\headheight{27pt}
\setlength\headsep{25pt}
\setlength\marginparwidth{-20pt}
\setlength\textwidth{\paperwidth - 52pt}
\setlength\textheight{\paperheight - 112pt}
\setlength\oddsidemargin{-45pt}
\setlength\evensidemargin{-45pt}
\pagestyle{empty}
\usepackage{lipsum}
\begin{document}
\hfill
\begin{minipage}[t]{0.6\textwidth}
\begin{center}
\lipsum[1-2]
\end{center}
\end{minipage}
\mytextbox[red]{
line 1 can be this long foo baz\\
line 2 \\
line 3 \\
line 4 \\
line 5 \\
line 6 \\
line 7 \\
line 8 \\
line 9 \\
line 10 \\
line 11 \\
line 12 \\
line 13 \\
line 14 \\
line 15 \\
line 16 \\
line 17 \\
line 18 \\
line 19 \\
line 20 \\
line 21 \\
line 22 \\
}
\overlaytextbox{0.05}{0.2}{
{\color{gray}\centering
foo baz baa \\
boo baz baa \\
more text under here...
}}
\end{document}