双列末尾有一列

双列末尾有一列

所以我有两个问题:第一,如何在不分页的情况下在文章末尾添加一列?第二,同样,但是在文本中间的表格之后?在此处输入图片描述

答案1

你可以用一些“魔法”把盒子推到合适的位置:

在此处输入图片描述

\documentclass[twocolumn]{article}
\usepackage{balance}% http://ctan.org/pkg/balance
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\lipsum[1-10]\balance

\leavevmode\hfill\smash{\raisebox{-10\baselineskip}{\llap{%
  \fbox{\parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule}{%
    \lipsum[1]%
  }}}}%
}
\end{document}​

上述命令组合将 a \parbox(水平方向正好适合文本块)-10\baselineskip从右边距 (由 推上去\leavevmode\hfill) 向下推 10 行 (“凸起” s)。根据 TeX,该框的宽度为零,因为它位于left over内lap并且被\smashed。

要使框2<x>从左侧开始居中,请使用

\leavevmode\hfill\smash{\raisebox{-10\baselineskip}{\llap{% \fbox{\parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule-}{% % }}\hspace*{.5}}}% }

例如,从.25\columnwidth左边开始,可以使用

\leavevmode\hfill\smash{\raisebox{-10\baselineskip}{\llap{%
  \fbox{\parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule-.5\columnwidth}{%
    \lipsum[1]%
  }}\hspace*{.25\columnwidth}}}%
}

在此处输入图片描述

请注意,这仅当页面底部有足够的空间时才可行,否则它可能会流入页脚。

答案2

您的两个问题都可以通过以下方式轻松解决multicol包;您只需结束multicols环境,排版单列材料,然后开始一个新multicols环境。一个小例子(警告:浮动环境不能放在环境内multicols):

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}
\begin{multicols}{2}
\lipsum[1-11]
\end{multicols}
{\centering\fbox{\parbox{.7\textwidth}{\lipsum[2]}}\par}
\begin{multicols}{2}
\lipsum[2]
\end{multicols}
{\centering\fbox{\parbox{.7\textwidth}{\lipsum[2]}}\par}

\end{document}

相关页面的图片如下:

在此处输入图片描述

如果使用,该multicol包不是一个选项,对于您的第一个问题,您可以使用TikZ

\documentclass[twocolumn]{article}
\usepackage{tikz}
\usepackage{flushend}
\usepackage{lipsum} 

\begin{document}
\lipsum[1-20]
\begin{tikzpicture}[overlay, remember picture]
  \node[yshift=6cm] at (current page.south) 
    {\fbox{\parbox{.7\textwidth}{\lipsum[2]}}};
\end{tikzpicture}

\end{document}

获得最后一页的片段:

在此处输入图片描述

eso-pic或者textpos软件包也可以提供解决方案。

不幸的是,对于第二个问题,事情并不简单:一种选择是使用figure*table*环境来放置横跨两列的材料,但这些环境总是将其内容放在下一页的顶部。使用\onecolumn不适合您,因为它会开始一个新页面。

答案3

您可以使用该包multicol

相关内容