返回页面分栏和段落分栏当我们在页面中需要分列显示内容时,用到 columnset 语句。 可以设置每页多少列,奇数页多少列,偶数页多少列等。
先来试试基础的 2 列布局。
\startcolumnset[n=2]
\dorecurse{7}{\fakewords{170}{180}\par}
\stopcolumnset
来了解下其它参数,设置分 3 列显示,每列间隔 15 mm,22 行文字。
\startcolumnset[n=3,distance=15mm,lines=22]
\dorecurse{3}{\fakewords{170}{180}\par}
\stopcolumnset
强制换栏
想要换列显示内容时,可以使用\column换到下一列,\column[last]换到最后一列,\column[first]换到下一页的第一列,或者\column[n]换到下一页的第 n 列。
奇偶页不同分栏数
可以通过 nright 设置右页或者奇数页的分栏数量,nleft 设置左页或者偶数页的分栏数量。
\startcolumnset[nright=2,nleft=3]
\dorecurse{10}{\fakewords{170}{180}\par}
\stopcolumnset
页面的跨列显示
在页面分栏布局时,有时需要某段文字或图片占据两列显示。需要跨列的文字可以用\startcolumnsetspan和\stopcolumnsetspan包裹。
\definecolumnset[pageThree][n=3,page=left]
\definecolumnsetspan[spanTwo][n=2,background=color,backgroundcolor=darkgray]
\startcolumnset[pageThree]
\fakewords{25}{50}
\startcolumnsetspan[spanTwo]
\fakewords{25}{50}
\stopcolumnsetspan
\dorecurse{2}{\fakewords{220}{230}\par}
\stopcolumnset
需要跨列的图片可以直接定义图片的宽度为 2 列宽度。ConTeXt 会自动调整布局。
\definecolumnset[pageThree][n=3,page=left]
\startcolumnset[pageThree]
\fakewords{50}{60}
\placefigure{}{\externalfigure[fake][width=\columnsetspanwidth{2},lines=3]}\par
\dorecurse{2}{\fakewords{220}{230}\par}
\stopcolumnset
多列布局的结束
页面的多列布局使用\start和\stop包裹,当我们在\stopcolumnset后面继续写内容时,不管当前页有没有剩余位置,ConTeXt 都会在新的一页排版这些内容。
\startcolumnset[n=2]
\dorecurse{2}{\fakewords{170}{180}\par}
\stopcolumnset
\dorecurse{2}{\fakewords{170}{180}\par}
段落的多列显示
当一页内容只有少部分文字需要分栏时,可以使用多栏段落而不是多栏页面。多栏段落使用\setupparagraphs定义,并使用自动生成的新命令来开启段落分栏。
\defineparagraphs[TwoCol][n=2]
\setupparagraphs[TwoCol][rule=on, top=\blank[10pt]]
\setupparagraphs[TwoCol][1][width=.66\textwidth]
\fakewords{100}{130}\par
\startTwoCol
\fakewords{70}{90}\par
\TwoCol
\fakewords{50}{70}\par
\stopTwoCol
\fakewords{100}{130}\par
\setup 新建名字以后,会自动生成TwoCol命令,可以用来强制开始下一列的内容。
\setupparagraphs[TwoCol][rule=on, top=\blank[10pt]] -> [名字][配置]对TwoCol的整体生效。
\setupparagraphs[TwoCol][1][width=.66\textwidth] -> [名字][第几列][配置]对TwoCol的某一列生效。
\TwoCol 可以强制开始下一列的内容。