跨页的空白(例如手写答案)

跨页的空白(例如手写答案)

我正在创建一个文档,我想在其中留下不同高度的空白,例如用于手写问题的答案。

该空白空间是否有边界并不重要。

关键是它需要跨页,所以如果我要求高度为 6 英寸的空间,但是页面上只剩下 3 英寸,那么我会在第一页得到 3 英寸,在下一页得到 3 英寸。

例如我看到有人使用这个代码这里

\def\boxpar[#1]#2#3{{\setlength{\fboxsep}{-\fboxrule}\fbox{\parbox[][#2][t]{#1}{\mbox{}\\[-.125\baselineskip]\mbox{}~#3}}}}

\boxpar[\hsize]{6in}{}

这将创建一个 6 英寸高且宽度与页面宽度相同的边框,但如果第一页上没有足够的空间,它会将整个内容移动到下一页。

答案1

只需制作不会消失的段落即可。为了指定任何维度,只需制作多个段落即可。

\documentclass{article}
\usepackage{lipsum}

\newcommand{\answerspace}[2][n]{%
  \par\smallskip
  \begingroup
  \if#1r\hrule\fi
  \baselineskip=\dimexpr#2/100\relax
  \lineskip=0pt \parindent=0pt
  \count255=0
  \loop\ifnum\count255<100
    \advance\count255 by 1
    \leavevmode\vbox to\baselineskip{}
    \if#1r\vrule\hfill\vrule\fi\endgraf
  \repeat
  \if#1r\hrule\fi
  \smallskip
  \endgroup
}

\begin{document}
\lipsum[1]

\answerspace[r]{2in}

\lipsum[2]

\answerspace{6in}

\lipsum[3]
\end{document}

制定\answerspace[r]{<length>}了规则。

在此处输入图片描述

答案2

让我们尝试使用包来回答这个问题mdframed. (Github 版本:https://github.com/marcodaniel/mdframed-- 较新)

提供的命令\boxpar具有以下语法:

\boxpar[<number of lines>]{Text}[<width of the box>]

数量和宽度可选。

mdframed可以t split across pages using a simple\vspace`。因此需要循环。

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}

\newcounter{tempcount}
\NewDocumentCommand \boxpar {  O{3} m O{\linewidth} }{%
 \begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3]
     \setcounter{tempcount}{0}
     \loop\ifnum\value{tempcount}<#1
        \rule{0pt}{\baselineskip}\\[2pt]      
       \stepcounter{tempcount}
     \repeat
     \ifx\relax#2\relax\else#2\fi
  \end{mdframed}%
}
\begin{document}
\lipsum[1]

\boxpar{}

\lipsum[2]

\boxpar[10]{}[8cm]


\boxpar[6]{3 Points}[8cm]
\end{document}

在此处输入图片描述

如果你想修改框架的样式,你可以通过以下选项来实现mdframed

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{boxpar}{linewidth=2pt,backgroundcolor=gray!10,roundcorner=10pt,}
\usepackage{lipsum}

\newcounter{tempcount}
\NewDocumentCommand \boxpar {  O{3} m O{\linewidth} }{%
 \begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3,style=boxpar]
     \setcounter{tempcount}{0}
     \loop\ifnum\value{tempcount}<#1
        \rule{0pt}{\baselineskip}\\[2pt]      
       \stepcounter{tempcount}
     \repeat
     \ifx\relax#2\relax\else#2\fi
  \end{mdframed}%
}
\begin{document}
\lipsum[1]

\boxpar{}

\lipsum[2]

\boxpar[10]{}[8cm]


\boxpar[6]{3 Points}[8cm]
\end{document}

如果您想要水平线,您可以使用:

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{boxpar}{linewidth=2pt,backgroundcolor=gray!10,roundcorner=10pt,}
\usepackage{lipsum}

\newcounter{tempcount}
\NewDocumentCommand \boxpar {  O{3} m O{\linewidth} }{%
 \begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3,style=boxpar]
     \setcounter{tempcount}{1}
     \loop\ifnum\value{tempcount}<\numexpr#1+1\relax
 %       \rule{0pt}{\baselineskip}\\[2pt]      
       \the\value{tempcount}\rule{\linewidth}{.8pt}\\[2pt]
       \stepcounter{tempcount}
     \repeat
     \ifx\relax#2\relax\else#2\fi
  \end{mdframed}%
}
\begin{document}
\lipsum[1]

\boxpar{}

\lipsum[2]

\boxpar[10]{}[8cm]


\boxpar[6]{3 Points}[8cm]
\end{document}

在此处输入图片描述


您还可以添加标题:

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{boxpar}{linewidth=2pt,backgroundcolor=gray!10,roundcorner=10pt,frametitle=Room for your answer,frametitlerule=true}
\usepackage{lipsum}

\newcounter{tempcount}
\NewDocumentCommand \boxpar {  O{3} m O{\linewidth} }{%
 \begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3,style=boxpar]
    \setcounter{tempcount}{0}
     \loop\ifnum\value{tempcount}<#1
        \rule{0pt}{\baselineskip}\\[2pt]      
       \stepcounter{tempcount}
     \repeat
     \ifx\relax#2\relax\else#2\fi
  \end{mdframed}%
}
\begin{document}
\lipsum[1]

\boxpar{}

\lipsum[2]

\boxpar[5]{}[8cm]


\boxpar[6]{3 Points}[8cm]
\end{document}

在此处输入图片描述

答案3

在此处输入图片描述

\vrule\strut\hfill\vrule如果您不想要两侧的线条,请将其删除。

\documentclass{article}

\def\blanklines#1{%
\ifnum#1>0
\par\noindent\mbox{}\vrule\strut\hfill\vrule\par%
\expandafter\blanklines\expandafter{%
  \the\numexpr#1-1\expandafter\relax\expandafter}%
\fi
}

\begin{document}

stuff

more stuff\par more stuff\par more stuff\par more stuff\par more stuff\par


\blanklines{16}

more stuff\par more stuff\par more stuff\par more stuff\par more stuff\par

\blanklines{25}

more stuff\par more stuff\par more stuff\par more stuff\par more stuff\par

\end{document}

相关内容