在灰色文本的新环境中将行和文本连接在一起(以及灰色脚注)

在灰色文本的新环境中将行和文本连接在一起(以及灰色脚注)

我定义了一个名为 bewertung 的环境,它由两条线分隔。我发现有三个问题无法解决:

  1. 第一行后的分页符(MWE PDF 的第 1 页)。
  2. 第二行之前的分页符(MWE PDF 的第 2 页)。
  3. 如果评价中的灰色段落中断,则显示灰色脚注(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}

MWE 的 PDF

关于如何解决这些问题有什么建议吗?

答案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}

上述代码的图像 上述代码 2 的图片

相关内容