是否可以水平对齐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
,以便外部对齐设置不会影响代码的排版方式。
如果您想要将整个代码块居中对齐,那么您可以简单地将其包裹在\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
请注意,上述代码有一个缺点,即代码不能再跨页面中断。可以有一个跨页面中断的包装,但这更复杂。我不太明白需要这样做的用例,但如果有的话,我可以展示如何做到这一点。