Estoy trabajando con grandes tablas de LaTeX en AucTEX y sería útil mostrarlas en líneas truncadas, como aquí:
Las marcas rojas son los caracteres "&" que separan las columnas de la tabla. En el caso de tablas con muchas columnas, el código fuente de látex para una fila de tabla es más largo que el emacs
ancho del marco y, por lo tanto, se incluirá de forma predeterminada en más de una línea. Aun así align-current
, esto hará que el código fuente de la tabla sea muy difícil de leer y editar, así que
- para las tablas, preferiría que las líneas del código fuente se truncaran (obligándome a desplazarme horizontalmente)
- mientras que para todas las demás
latex
fuentes, preferiríaword wrap
que se ajuste al ancho del marco
Sin embargo, para el texto real en mi documento LaTeX, preferiría tener la word-wrap
configuración normal .
Pregunta:
¿Es posible usar word-wrap
como estándar Emacs
y todavía tener algunos entornos de látex en el mismo búfer table
, longtable
y se sidewaystable
muestra truncate
d al mismo tiempo?
También para algunos otros entornos como equation
, pycode
o el tikzpicture
truncamiento parece ser más apropiado. Por lo tanto, puede ser una buena idea poder definir una lista de entornos que no se envuelven sino que se truncan.
El ajuste debe ser suave (es decir, el texto se ajusta a la columna de relleno en el búfer, pero eso no se refleja en el archivo) y el ajuste de una línea con sangría debe seguir la sangría de la línea.
Las soluciones también deberían funcionar para emacs pero también para Aquamacs 2.5.
Hay una publicación de blog que sugiere tener una solución (parcial), pero no encontré la implementación: http://endlessparentheses.com/longlines-mode-in-latex.html
fuente
(setq word-wrap t
) y(setq truncate-lines t)
en el mismo búfer. Si deseaword-wrap
activo, lo mejor que probablemente podrá lograr es colocar una superposición invisible sobre el texto que desea truncar, factible, pero no trivial, el código para esto requeriría usarvertical-motion
después de cada comando con eliminación / movimiento / colocación de superposiciones.truncate-lines
tal vez solo para ciertas partes de un texto (ciertos entornos en LaTeX), pero veo que esto puede ser difícil de lograr. Parece que tendré que aprender a alternarword wrap
/truncate
rápidamente. :)toggle-truncate-lines
.longlines-mode
. Ver esta publicación para un ejemplo. Escribiré una respuesta completa más tarde si tengo tiempo.Respuestas:
Depende exactamente de lo que quieras hacer.
En los comentarios, Malabarba enlaza a una publicación de blog que puede mostrar el camino. Sin embargo, creo que este enfoque se basa en modificar (mediante programación) el texto del búfer. Si eso te funciona, ¡genial!
Si desea dejar el texto sin modificar, creo que no tiene suerte.
Para problemas como este, generalmente comienzo leyendo la sección del manual de elisp en la propiedad "display". Describe las propiedades que se pueden aplicar a los caracteres en el búfer para afectar su visualización.
Al leer esto, no vi nada que controle si una línea está ajustada o no, solo cómo mostrar la sangría y eso cuando ocurre el ajuste.
Por el momento, creo que la respuesta es "no". Recientemente se ha hablado en emacs-devel sobre la adición de funciones de ajuste para volver a mostrar, por lo que tal vez haya alguna esperanza para el futuro.
fuente
'invisible t
o una'display ""
propiedad no modifica el texto del búfer y esa superposición puede truncar visualmente cualquier línea del búfer, esto se puede hacer selectivamente. En otras palabras,word-wrap
permanece activo mientras que el truncamiento dirigido se puede hacer con superposiciones.