ConTeXt: `t-vim` モジュールによる水平方向の配置

ConTeXt: `t-vim` モジュールによる水平方向の配置

t-vimモジュール コード ブロックを水平に揃えることは可能ですか?

私は\{start|stop}alignementこのように試しました

\usemodule[vim]
\definevimtyping[python][syntax=python]

\starttext
    \startalignment[middle]
        \startpython
            print("Hello, world!")
        \stoppython
    \stopalignment
\stoptext

そしてalign=middle

\usemodule[vim]
\definevimtyping[python][syntax=python, align=middle]

\starttext
    \startpython
        print("Hello, world!")
    \stoppython
\stoptext

両方の結果は次の出力のようになりました:

ここに画像の説明を入力してください

私も確認しましたドキュメントそしてソースコードしかし、他には何も見つかりませんでした。何か見逃したのでしょうか?

答え1

コード ブロックの中央揃えを解釈する方法は 2 つあります。

  1. 各行を中央揃えにする
  2. コードブロック全体を中央揃えにする

最初の方法はコードには意味がありません。そのため、 のコードにはt-vim明示的な が含まれており\raggedright、外側の配置設定がコードのタイプセットに影響を及ぼさないようになっています。

コード ブロック全体を中央揃えにしたい場合は、単に で囲んでフレームを\framed中央に配置するだけです。

\usemodule[vim]

\defineframed[PYTHONframed][align=normal,frame=off]

\definevimtyping
  [python]
  [
    syntax=python,
    before={\blank\midaligned\bgroup\PYTHONframed\bgroup},
    after={\egroup\egroup\blank},
  ]

\starttext
\starttext
    \startpython
        for x = 1 upto 10:
            print("Hello, world!")
    \stoppython
\stoptext
\stoptext

上記のコードには、コードをページ間で分割できなくなるという欠点があることに注意してください。ページ間で分割する wrap を使用することは可能ですが、より複雑になります。それが必要なユースケースはよくわかりませんが、もし必要な場合は、その方法を示すことができます。

関連情報