我有一个双列浮点,用于在文档中插入一个整页框。但是,当我将脚注放入此框中时,脚注会出现在框内(这是理想的情况),但不会出现在双列几何中(不理想)。
当前输出位于下面 MWE 中的第一个框中。我开发了一个临时解决方案来获得所需的结果(第二个框)。有没有更好的解决方案?
\documentclass{scrreprt}
\usepackage[twocolumn,landscape]{geometry}
\usepackage{lipsum}
\usepackage{mdframed}
\usepackage{tikz}
\usepackage{caption}
\usepackage{newfloat}
\usepackage{multicol}
\DeclareFloatingEnvironment[listname={List of boxes}, name = {Box}]{boxe}
\mdfdefinestyle{GrattanFrameBox}{%
nobreak=true, % prevents page breaking
outerlinewidth=0.5pt,
innertopmargin=0.5\baselineskip,
innerbottommargin=\baselineskip,
innerrightmargin=11pt,
innerleftmargin=11pt
}
\newlength{\currentparskip}
\makeatletter
\newenvironment{bigbox*}[2]{%
\setlength{\currentparskip}{\parskip}
\@dblfloat{boxe}%
\begin{mdframed}[style=GrattanFrameBox]
\setlength{\columnsep}{10mm}
\captionsetup{labelfont={bf}, font={bf}, format=plain,justification=justified,singlelinecheck=false}
\caption{#1}\label{#2}
% \vspace*{-4.125ex}
\begin{multicols}{2}
\setlength{\parskip}{\currentparskip}% restore the value
%
\vspace{-1.5ex}
}{%
\end{multicols}\end{mdframed}
\end@dblfloat
}
\makeatother
\begin{document}
\lipsum
\begin{bigbox*}{Title}{box:Title}
\lipsum*[1-2]\footnote{\lipsum[1]}
\lipsum[3]
\end{bigbox*}
\lipsum
\begin{bigbox*}{Title2}{box:Title2}
\lipsum*[1-2]\footnote{\vspace{-30pt}\begin{multicols}{2}
\lipsum[1]
\end{multicols}
}
\lipsum[3]
\end{bigbox*}
\end{document}
答案1
好吧,你找到了一个很好的解决方法。由于通过包的限制,multicol
我认为这是一个很好的解决方案。
我只会定义一个新命令,例如\footnotebigbox
\newcommand{\footnotebigbox}[1]{\footnote{\vspace{-30pt}%
\begin{multicols}{2}#1\end{multicols}
}}
减少书写量。然后您可以\footnotebigbox{text of footnote}
在自己的bigbox
环境中使用它。
请参阅以下 MWE 中的框 3:
\documentclass{scrreprt}
\usepackage[twocolumn,landscape]{geometry}
\usepackage{lipsum}
\usepackage{mdframed}
\usepackage{tikz}
\usepackage{caption}
\usepackage{newfloat}
\usepackage{multicol}
\DeclareFloatingEnvironment[listname={List of boxes}, name = {Box}]{boxe}
\mdfdefinestyle{GrattanFrameBox}{%
nobreak=true, % prevents page breaking
outerlinewidth=0.5pt,
innertopmargin=0.5\baselineskip,
innerbottommargin=\baselineskip,
innerrightmargin=11pt,
innerleftmargin=11pt
}
\newlength{\currentparskip}
\makeatletter
\newenvironment{bigbox*}[2]{%
\setlength{\currentparskip}{\parskip}
\@dblfloat{boxe}%
\begin{mdframed}[style=GrattanFrameBox]
\setlength{\columnsep}{10mm}
\captionsetup{labelfont={bf}, font={bf}, format=plain,justification=justified,singlelinecheck=false}
\caption{#1}\label{#2}
% \vspace*{-4.125ex}
\begin{multicols}{2}
\setlength{\parskip}{\currentparskip}% restore the value
%
\vspace{-1.5ex}
}{%
\end{multicols}\end{mdframed}
\end@dblfloat
}
\makeatother
\newcommand{\footnotebigbox}[1]{\footnote{\vspace{-30pt}% <=============
\begin{multicols}{2}#1\end{multicols}
}}
\begin{document}
\lipsum
\begin{bigbox*}{Title}{box:Title}
\lipsum*[1-2]\footnote{\lipsum[1]}
\lipsum[3]
\end{bigbox*}
\lipsum
\begin{bigbox*}{Title2}{box:Title2}
\lipsum*[1-2]\footnote{\vspace{-30pt}\begin{multicols}{2}
\lipsum[1]
\end{multicols}
}
\lipsum[3]
\end{bigbox*}
\lipsum
\begin{bigbox*}{Title3}{box:Title3}% <==================================
\lipsum*[1-2]\footnotebigbox{\lipsum[1]}%
\lipsum[3]
\end{bigbox*}
\end{document}
得到想要的结果: