我定义了一个名为 bewertung 的环境,它由两条线分隔。我发现有三个问题无法解决:
- 第一行后的分页符(MWE PDF 的第 1 页)。
- 第二行之前的分页符(MWE PDF 的第 2 页)。
- 如果评价中的灰色段落中断,则显示灰色脚注(MWE PDF 第 3 页)。
为了解决 1 和 2 ,我尝试了\nopagebreak
、、、和。但我没有成功。我还找到了相应的 UK-FAQ needspace.sty
,但它没有帮助。@endparpenalty=10000
\clubpenalty=10000
\nobreak
\@afterheading
对于问题 3,我尝试\footnote
使用明确的颜色定义进行重新定义。但同样没有效果。
这是 MWE。实际上multicol
和\vspace
对于产生问题来说并不是必需的,但它可能对选择正确的解决方案有用。
\documentclass[fontsize=10pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{%
,multicol%
,blindtext
,xcolor
,fnpos
% ,needspace
}
\newenvironment{bewertung}%
{%
\noindent\textcolor{black!50}{\rule[-12pt]{\linewidth}{1pt}}%
\begin{multicols}{2}%
\color{black!50}\sffamily\small%
\noindent\ignorespaces%
}%
{%
\end{multicols}%
\noindent\textcolor{black!50}{\rule[15pt]{\linewidth}{1pt}}%
\vspace{-\parskip}%
\vspace{-12pt}%
}{\ignorespacesafterend}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\blindtext\footnote{\blindtext}
\vspace{25\baselineskip}
\begin{bewertung}
\blindtext
\end{bewertung}
foo\footnote{Footnote}\vspace{22\baselineskip}
\begin{bewertung}
\blindtext
\end{bewertung}
\blindtext\footnote{Grey footnote}\vspace{27\baselineskip}
\begin{bewertung}
\blindtext
\end{bewertung}
\end{document}
关于如何解决这些问题有什么建议吗?
答案1
以下代码似乎可以满足您的要求。我从头重写了该框(更多是为了便于我理解)。重要的是,我已使用minipage
以确保该框永远不会在页面上损坏。
另外,为了解决灰色脚注问题,我刚刚使用\footnotemark
并\footnotetext
确保脚注的文本在灰色文本之外定义。
\documentclass{article}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{calc}
\usepackage{multicol}
\newenvironment{bewertung}{\medskip{\setlength{\multicolsep}{0pt}%
\color{black!50}%
\noindent\begin{minipage}{\linewidth}%
{\sffamily Title of the frame}\rule{\linewidth-\widthof{Title of the frame}}{0.4pt}%
\begin{multicols}{2}\noindent}
{\end{multicols}\vspace{1ex}%
\hrule%
\end{minipage}}
}
\begin{document}
\begin{bewertung}
\blindtext\footnotemark[1]
\end{bewertung}
\footnotetext[1]{Footnote text}
\begin{bewertung}
\blindtext\footnotemark[2]
\end{bewertung}
\footnotetext[2]{Footnote text}
\begin{bewertung}
\blindtext\footnotemark[3]
\end{bewertung}
\footnotetext[3]{Footnote text}
\begin{bewertung}
\blindtext\footnotemark[4]
\end{bewertung}
\footnotetext[4]{Footnote text}
\end{document}
编辑:
使用 mdframed 的新代码会破坏文本。遗憾的是,这并不能阻止它自己结束行,但当mdframed
这种情况发生时会发出警告,这样用户就可以手动修复它,而不必在 pdf 中寻找它。
\documentclass{article}
\usepackage{mdframed}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{calc}
\newmdenv[leftline=false,%
rightline=false,%
topline=false,%
frametitle={Title of the frame \rule{\linewidth-\widthof{Title of the frame }}{0.4pt}},%
frametitlerule=false,%
linecolor=black!50,%
fontcolor=black!50,%
frametitlefont=\color{black!50},%
footnoteinside=false,%
leftmargin=0pt,%
innerleftmargin=0pt,%
rightmargin=0pt,%
innerrightmargin=0pt%
]{bewertung}
\begin{document}
\begin{bewertung}
\blindtext\footnotemark[1]
\end{bewertung}
\begin{bewertung}
\blindtext\footnotemark[1]
\end{bewertung}
\vspace{12em}
\begin{bewertung}
\blindtext\footnotemark[1]
\end{bewertung}
\footnotetext[1]{Footnote text}
\end{document}