编辑

编辑

我想将我的页面(A4 横向)分成不同的部分。顶部应由四列组成,宽度不同且没有规则。为此,我使用了 vwcol,但我不知道如何在那里进行分栏。文本不应在另一列中继续。在那下面,页面应该只分为两列,中间有一条规则。Multicols 似乎是正确的选择。

我还希望每个部分都有不同的格式。例如,前四列是:图像、左对齐文本、右对齐文本、图像

到目前为止,我尝试了列、多列和 vwcols,但总是有些东西不起作用。这是我现在所拥有的:

\documentclass[a4paper,12pt, landscape]{article}
\usepackage[landscape]{geometry}
\geometry{left=20mm,right=20mm,top=20mm,bottom=20mm}

\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{vwcol}  
\usepackage{color}

\begin{document}

\begin{vwcol}[widths={0.2,0.3,0.3,0.2}, sep=10mm, rule=0] 
\includegraphics[height=0.3\textheight]{img002.png}
%second column: left aligned text
%column break
%third column: right aligned text
\lipsum[1]
\includegraphics[height=0.3\textheight]{img002.png}
\end{vwcol}

\setlength{\columnsep}{20mm}
\setlength{\columnseprule}{3pt}
\renewcommand{\columnseprulecolor}{\color[rgb]{0.9,0.9,0.9}}
\begin{multicols*}{2}
\lipsum[1-2]
\vfill
\columnbreak
\lipsum[1-2]
\end{multicols*}

\end{document}

我很感激您能给我的任何提示。谢谢!

答案1

这是一个使用的方法flowfram。如果您使用此方法,请务必阅读文档,因为它以您需要了解的方式重新设计了输出例程。

页面顶部分为 4 个框架。这些框架的内容不会流入页面的其他部分,因此您需要确保内容合适,否则会溢出并覆盖内容的其他部分。每侧最远的列居中。内部左侧设置为左对齐。内部右侧设置为右对齐。

页面底部分为两列。文本从一列流向下一列,从一页流向下一页。(因此,如果您想在第一列写满之前移动到下一列,您需要插入手动分隔符,正如您所期望的那样。)

请不要将其用作minimal示例。我复制了您的代码,但没注意,花了很长时间才弄清楚它为什么抱怨标准 LaTeX 命令未定义。此类不适用于示例,不应用于此类示例。

流动的柱子和动态的框架

\documentclass[a4paper,12pt,landscape]{article}
\usepackage{geometry}
\geometry{left=20mm,right=20mm,top=20mm,bottom=20mm}

\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{xcolor}    

\usepackage{flowfram,calc}
\newdynamicframe{\dimexpr.2\textwidth-.75\columnsep}{.3\textheight}{0pt}{.7\textheight}[upperfarleft]
\newdynamicframe{\dimexpr.3\textwidth-.75\columnsep}{.3\textheight}{.2\textwidth+.5\columnsep}{.7\textheight}[upperleft]
\newdynamicframe{\dimexpr.3\textwidth-.75\columnsep}{.3\textheight}{.5\textwidth+.5\columnsep}{.7\textheight}[upperright]
\newdynamicframe{\dimexpr.2\textwidth-.75\columnsep}{.3\textheight}{.8\textwidth+.5\columnsep}{.7\textheight}[upperfarright]
\setdynamicframe*{upperleft}{style=raggedright}
\setdynamicframe*{upperright}{style=raggedleft}
\setdynamicframe*{upperfarleft,upperfarright}{style=centering}

\setlength{\columnsep}{20mm}
\setlength{\ffcolumnseprule}{3pt}
\twocolumninarea{\textwidth}{.7\textheight-5pt}{0pt}{0pt}
\renewcommand{\ffruledeclarations}{\color[rgb]{0.9,0.9,0.9}}
\insertvrule{flow}{1}{flow}{2}

\begin{document}

  \setdynamiccontents*{upperfarleft}{\includegraphics[height=0.275\textheight,width=.175\textwidth]{example-image-a}}
  \setdynamiccontents*{upperfarright}{\includegraphics[height=0.275\textheight,width=.175\textwidth]{example-image-b}}
  \setdynamiccontents*{upperleft}{A caption for the left image which will be left aligned. Make sure that the contents fits the area available as it will NOT `flow' elsewhere, as requested!}
  \setdynamiccontents*{upperright}{A caption for the right image which will be right aligned. Make sure that the contents fits the area available as it will NOT `flow' elsewhere, as requested!}

  \lipsum[1-4]

\end{document}

编辑

针对评论中的疑问做出一些解释...

在顶部设置“动态”框架时,上面使用的语法是:

\newdynamicframe{width of frame}{height of frame}{horizontal offset from origin}{vertical offset from origin}[label]

原点位于文本块的左下角(西南)。

在顶行中,有 3 个列分隔和 4 个列。因此,分隔列的总宽度是 3 倍\columnsep,并且您希望将其均匀地划分到 4 个列之间(或者我假设如此)。因此,.75\columnsep从每列宽度中获取。在底行中,有 1 个列分隔和 2 个列。因此,您需要.5\columnsep从每列的宽度中获取,以使列的宽度相等。因此,这是从每列的宽度中获取的。它不是 3:2 的比例,因为这\columnsep是顶部的默认值,而底部的默认值为 20 毫米。

答案2

这只是解决方案的尝试。

据我理解,该vwcol包/环境没有提供命令。\columnbreak

我尝试用tabular和新列类型来“构建”上部列,用于左对齐和右对齐文本。

当然,间距必须改变。

\documentclass[a4paper,12pt, landscape]{minimal}
\usepackage[landscape]{geometry}
\geometry{left=20mm,right=20mm,top=20mm,bottom=20mm}


\usepackage{lipsum}

\usepackage{calc}
\usepackage{array}
\usepackage{xcolor}
\usepackage[demo]{graphicx}
\usepackage{vwcol}

\usepackage{multicol}



\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash}p{#1}}

\begin{document}

\begin{tabular}{p{0.2\textwidth}p{0.3\textwidth}p{0.3\textwidth}p{0.2\textwidth}}
  \begin{tabular}[t]{p{0.15\textwidth}}
    \includegraphics[width=0.15\textwidth,height={0.3\textheight}]{img002.png}%
  \end{tabular}% 
  &
  \begin{tabular}{@{}L{0.25\textwidth}@{}}
    \lipsum[1]% 
  \end{tabular}%
  &
  \begin{tabular}{@{}R{0.25\textwidth}@{}}
    \lipsum[1]% 
  \end{tabular} 
  &
  \begin{tabular}[t]{@{}p{0.15\textwidth}@{}}
    \includegraphics[width=0.15\textwidth,height={0.3\textheight}]{img002.png}%
  \end{tabular}% \tabularnewline
\end{tabular}

\setlength{\columnsep}{20mm}
\setlength{\columnseprule}{3pt}
\renewcommand{\columnseprulecolor}{\color[rgb]{0.9,0.9,0.9}}
\begin{multicols*}{2}
\lipsum[1-2]
\vfill
\columnbreak
\lipsum[1-2]
\end{multicols*}

\end{document}

在此处输入图片描述

相关内容