是否可以水平對齊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
有兩種方法可以解釋程式碼區塊的中間對齊:
- 每行居中對齊
- 中間對齊完整的程式碼區塊
第一個對於程式碼來說沒有意義。因此, 中的程式碼t-vim
包含一個顯式\raggedright
,因此外部對齊設定不會影響程式碼的排版方式。
如果您想將完整的程式碼區塊居中對齊,那麼您只需將其包裝在 a 中\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
請注意,上面的程式碼有一個缺點,就是程式碼無法再跨頁面中斷。換行可能會跨頁,但比較複雜。我不太明白需要這樣做的用例,但如果有的話,我可以展示如何做到這一點。