Je travaille avec de grandes tables LaTeX dans AucTEX et il serait utile de les afficher en lignes tronquées, comme ici:
Les marques rouges sont les caractères "&" qui séparent les colonnes du tableau. Dans le cas de tables avec plusieurs colonnes, le code source en latex pour une ligne de table est plus long que la emacs
largeur du cadre et sera donc par défaut encapsulé sur plusieurs lignes. Même avec align-current
, cela rendra le code source de la table très difficile à lire et à modifier, donc
- pour les tableaux, je préfère que les lignes de code source soient tronquées (me forçant à faire défiler horizontalement)
- alors que pour toute autre
latex
source, je préfère l'word wrap
adapter à la largeur du cadre
Cependant, pour le vrai texte de mon document LaTeX, je préférerais avoir les word-wrap
paramètres normaux .
Question:
Est-il possible d'utiliser word-wrap
en standard dans Emacs
et toujours avoir des environnements latex dans le même tampon comme table
, longtable
et sidewaystable
montré truncate
d en même temps?
Aussi pour certains autres environnements comme equation
, pycode
ou la tikzpicture
troncature semble être plus appropriée. Donc, ce pourrait être une bonne idée de pouvoir définir une liste d'environnements qui ne sont pas enveloppés mais tronqués.
L'habillage doit être un habillage doux (c'est-à-dire que le texte est encapsulé dans la colonne de remplissage dans le tampon, mais cela ne se reflète pas dans le fichier) et l'habillage d'une ligne indentée doit suivre l'indentation de la ligne.
Les solutions devraient également fonctionner pour emacs mais aussi pour Aquamacs 2.5.
Il y a un article de blog qui suggère d'avoir une solution (partielle), mais je n'ai pas trouvé l'implémentation: http://endlessparentheses.com/longlines-mode-in-latex.html
la source
(setq word-wrap t
) et(setq truncate-lines t)
dans le même tampon. Si vous voulez êtreword-wrap
actif, le mieux que vous puissiez probablement obtenir est de placer une superposition invisible sur le texte que vous souhaitez tronquer - faisable, mais non trivial - le code pour cela nécessiterait l'utilisationvertical-motion
après chaque commande avec suppression / mouvement / placement des superpositions.truncate-lines
peut-être seulement pour certaines parties d'un texte (certains environnements dans LaTeX) mais je vois que cela pourrait être difficile à réaliser. Il semble que je vais devoir apprendre à basculerword wrap
/truncate
rapidement. :)toggle-truncate-lines
.longlines-mode
. Voir cet article pour un exemple. J'écrirai une réponse complète plus tard si j'ai le temps.Réponses:
Cela dépend exactement de ce que vous voulez faire.
Dans les commentaires, Malabarba renvoie à un article de blog qui pourrait montrer le chemin. Cependant, je pense que cette approche repose sur (par programmation) la modification du texte tampon. Si cela fonctionne pour vous, tant mieux!
Si vous voulez laisser le texte non modifié, alors je pense que vous n'avez pas de chance.
Pour des problèmes comme celui-ci, je commence généralement par lire la section du manuel elisp sur la propriété "display". Ceci décrit les propriétés qui peuvent être appliquées aux caractères du tampon pour affecter leur affichage.
En lisant ceci, je n'ai rien vu qui contrôle si une ligne est ou non enveloppée - juste comment afficher l'indentation et ainsi de suite quand l'habillage se produit.
Donc pour le moment, je crois que la réponse est "non". Il y a eu des discussions sur emacs-devel récemment sur l'ajout de fonctionnalités d'encapsulation au réaffichage, alors peut-être qu'il y a de l'espoir pour l'avenir.
la source
'invisible t
ou une'display ""
propriété ne modifie pas le texte du tampon et cette superposition peut effectivement tronquer visuellement n'importe quelle ligne du tampon - cela peut être fait de manière sélective. En d'autres termes,word-wrap
reste actif tandis que la troncature ciblée peut être effectuée avec des superpositions.