我正在 ConTeXt 中制作一些演示幻灯片,但我不知道如何实现跨两列的多行内容的顶部/底部/中间垂直对齐。使问题进一步复杂化的是,我正在使用使用化妆的全局垂直对齐(这似乎会破坏列集)。
我尝试了 3 件事,但都存在一些问题(下面的示例代码):
paragraphs
似乎没有任何对齐支持(并且将它们用于多行内容似乎滥用了它们的用途)placefigure
结合combination
允许不同的对齐选项,但似乎不支持多行内容(我也尝试添加vbox
,但这会影响水平间距)columnset
如果放置在结构中,会使文档编译冻结(并且似乎不支持垂直对齐)
使用几个 tikz 图片的示例代码。我希望可以选择按顶部/底部/中间垂直对齐两列:
%&context
% Loading tikz
\usemodule[tikz]
\usemodule[pgfplots]
% Define vertical centering
\definemakeup[Center]
\starttext
%------------------------------------------------------------------------
% Paragraph
\defineparagraphs[ParColumns][n=2]
\setupparagraphs[ParColumns][1][width=.5\textwidth]
% no way to define vertical alignment?
\startCentermakeup
\startParColumns
\starttikzpicture
\node[draw, minimum height=1cm] (test1) {Left graphic};
\stoptikzpicture
\blank[small]
Some descriptive text
\nextParColumns
\starttikzpicture
\node[draw, minimum height=3cm] (test2) {Right graphic};
\stoptikzpicture
\stopParColumns
\stopCentermakeup
\stoptext
使用placefigure
withoutvbox
围绕左侧内容可消除左侧图形和文本之间的换行符。vbox
在内容周围添加会引入大量水平空间。
%&context
% Loading tikz
\usemodule[tikz]
\usemodule[pgfplots]
% Define vertical centering
\definemakeup[Center]
\starttext
%------------------------------------------------------------------------
% Combinations
\startCentermakeup
\placefigure[here,none]{}{
\startcombination[2*1, location=middle]
{
\starttikzpicture
\node[draw, minimum height=1cm] (test1) {Left graphic};
\stoptikzpicture
\blank[small]
Some descriptive text
}{}
{
\starttikzpicture
\node[draw, minimum height=3cm] (test2) {Right graphic};
\stoptikzpicture
}{}
\stopcombination
}
\stopCentermakeup
\stoptext
vbox
如果我添加(为了清晰起见,带有框架),就会发生这种情况:
答案1
如果你不希望内容从一列流到另一列,则可以使用s 并使用键 ( | | )TABLE
控制列的垂直对齐方式。以下是示例:align
low
high
lohi
\setuppapersize[S5]
% Loading tikz
\usemodule[tikz]
\usemodule[pgfplots]
% Define vertical centering
\definemakeup[Center]
\startsetups columns
\setupTABLE[row][1][width=0.5\textwidth, height=\textheight]
\stopsetups
\starttext
\startCentermakeup
\startTABLE[setups=columns]
\NC[align=low]
\starttikzpicture
\node[draw, minimum height=1cm] (test1) {Left graphic};
\stoptikzpicture
\blank[small]
Some descriptive text
\NC[align=lohi]
\starttikzpicture
\node[draw, minimum height=3cm] (test2) {Right graphic};
\stoptikzpicture
\NC \NR
\stopTABLE
\stopCentermakeup
\stoptext
这使
如果您想要更精细的控制,那么您可以使用层。