![ConTeXt: alineación horizontal con módulo `t-vim`](https://rvso.com/image/461880/ConTeXt%3A%20alineaci%C3%B3n%20horizontal%20con%20m%C3%B3dulo%20%60t-vim%60.png)
¿Es posible alinear horizontalmente t-vim
los bloques de código del módulo?
Lo intenté \{start|stop}alignement
así
\usemodule[vim]
\definevimtyping[python][syntax=python]
\starttext
\startalignment[middle]
\startpython
print("Hello, world!")
\stoppython
\stopalignment
\stoptext
y conalign=middle
\usemodule[vim]
\definevimtyping[python][syntax=python, align=middle]
\starttext
\startpython
print("Hello, world!")
\stoppython
\stoptext
Ambos resultados fueron como este resultado:
también lo he comprobadola documentaciónyel código fuentepero no pude encontrar nada más. ¿Me he perdido algo?
Respuesta1
Hay dos formas de interpretar la alineación intermedia de los bloques de código:
- Alinee cada línea en el medio
- Alinear en medio el bloque de código completo
El primero no tiene sentido para los códigos. Por esa razón, el código t-vim
incluye un explícito \raggedright
, de modo que la configuración de alineación exterior no afecta la forma en que se escribe el código.
Si desea alinear en medio el bloque de código completo, simplemente puede envolverlo \framed
y centrarlo en el marco.
\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
Tenga en cuenta que el código anterior tiene el inconveniente de que ya no puede dividirse entre páginas. Es posible tener un envoltorio que se rompa entre páginas, pero es más complicado. No entiendo muy bien un caso de uso en el que será necesario, pero si hay alguno, puedo mostrar cómo hacerlo.