![ConTeXt: alinhamento horizontal com módulo `t-vim`](https://rvso.com/image/461880/ConTeXt%3A%20alinhamento%20horizontal%20com%20m%C3%B3dulo%20%60t-vim%60.png)
É possível alinhar horizontalmente t-vim
os blocos de código do módulo?
Eu tentei \{start|stop}alignement
assim
\usemodule[vim]
\definevimtyping[python][syntax=python]
\starttext
\startalignment[middle]
\startpython
print("Hello, world!")
\stoppython
\stopalignment
\stoptext
e comalign=middle
\usemodule[vim]
\definevimtyping[python][syntax=python, align=middle]
\starttext
\startpython
print("Hello, world!")
\stoppython
\stoptext
Ambos os resultados foram assim:
Eu também verifiqueia documentaçãoeo código fontemas não consegui encontrar mais nada. Perdi algo?
Responder1
Existem duas maneiras de interpretar o alinhamento intermediário para blocos de código:
- Alinhe ao meio cada linha
- Alinhe ao meio o bloco de código completo
O primeiro não faz sentido para códigos. Por esse motivo, o código t-vim
inclui um explícito \raggedright
, para que a configuração do alinhamento externo não afete a forma como o código é composto.
Se você deseja alinhar o bloco de código completo ao meio, basta envolvê-lo em um \framed
quadro e centralizá-lo.
\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
Observe que o código acima tem a desvantagem de não poder mais quebrar as páginas. É possível quebrar as páginas, mas é mais complicado. Não entendo muito bem um caso de uso em que isso será necessário, mas se houver, posso mostrar como fazer isso.