ConTeXt:在结构中对齐列中的多行内容

ConTeXt:在结构中对齐列中的多行内容

我正在 ConTeXt 中制作一些演示幻灯片,但我不知道如何实现跨两列的多行内容的顶部/底部/中间垂直对齐。使问题进一步复杂化的是,我正在使用使用化妆的全局垂直对齐(这似乎会破坏列集)。

我尝试了 3 件事,但都存在一些问题(下面的示例代码):

  1. paragraphs似乎没有任何对齐支持(并且将它们用于多行内容似乎滥用了它们的用途)
  2. placefigure结合combination允许不同的对齐选项,但似乎不支持多行内容(我也尝试添加vbox,但这会影响水平间距)
  3. 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

使用placefigurewithoutvbox围绕左侧内容可消除左侧图形和文本之间的换行符。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如果我添加(为了清晰起见,带有框架),就会发生这种情况:

使用 vbox

答案1

如果你不希望内容从一列流到另一列,则可以使用s 并使用键 ( | | )TABLE控制列的垂直对齐方式。以下是示例:alignlowhighlohi

\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

这使

在此处输入图片描述

如果您想要更精细的控制,那么您可以使用层。

相关内容