Un peu d'histoire.
J'essaie de contrôler la version de mes documents en latex, et l'efficacité de cette initiative serait grandement améliorée si j'adoptais une approche d' une phrase par ligne .
Par exemple, voici à quoi ressembleront mes documents.
Some text here.
New stencence on the same paragraph.
Some more text, still on the same paragraph.
This is another paragraph.
Ma question est simple.
Dans quelle mesure puis-je automatiser / améliorer avec Emacs?
Je pense aux deux points suivants.
Mes phrases sont longues , je dois donc envelopper les lignes sans vraiment les remplir. Autrement dit, une très longue phrase doit être affichée sur plusieurs lignes sur mon écran, mais elle doit être une seule ligne dans le fichier «.tex» . Cela se ferait de préférence d'une manière qui n'emballe pas les équations.
visual-line-mode
enveloppe à la largeur de la fenêtre, qui est trop large. J'ai besoin de quelque chose qui enveloppe les lignes et limite leur largeur à environ 80 caractères. Tout comme lefill-paragraph
ferait normalement, mais sans réellement briser les lignes du fichier.- Je peux couper manuellement la ligne après chaque phrase, mais il serait hautement préférable de configurer
fill-paragraph
(ou peut-être mêmeauto-fill-mode
) de mettre également une phrase par ligne.
la source
visual-line-mode
. Mais en plus de ce retour à la ligne, vous devez également insérer automatiquement un caractère de nouvelle ligne après chaque phrase, n'est-ce pas?Réponses:
Si vous voulez juste quelque chose comme
visual-line-mode
mais configurable, vous pouvez essayerlonglines-mode
ce que j'utilise pour la plupart de ma prose.longlines-mode
enveloppe votre texte de la même manièrevisual-line-mode
qu'avec la largeur configurée parfill-column
.Voici une capture d'écran
fill-column
définie sur70
(la fenêtre s'étend en fait encore plus vers la droite).La configuration
fill-paragraph
serait bien, mais je ne sais pas comment le faire. Au lieu de cela, voici un hack temporaire raisonnable: rendez votre.
personnage électrique en mode TeX, en insérant une nouvelle ligne. Cela implique simplement de le relier dans le hook de mode approprié:la source
Pour (1), j'utiliserais une marge agrandie, de sorte que les
visual-line-mode
lignes s'enroulent au niveau souhaitéfill-column
. Cela affectera à la fois les lignes de texte et les équations.Comme pour (2), on peut définir une commande de remplissage personnalisée à lier
M-q
et à remplir correctement les paragraphes. Je n'ai pas encore réussi à écrire une commande avec le comportement correct pour le remplissage automatique.Envelopper tout cela dans un mode mineur pourrait ressembler à ce qui suit. Ce n'est pas un très beau code, mais devrait fonctionner dans la plupart des cas. (J'ai la
unfill-paragraph
fonction dans moninit.el
depuis un certain temps sans remarquer de problèmes).la source
unfill-paragraph
parospl/unfill-paragraph
. Les marges fonctionnent également, mais le texte en retrait semble mauvais et ils encapsulent également les équations, alors que j'ai réussi à pirater la méthode des palangres ci-dessous pour résoudre ces deux problèmes.unfill-paragraph
(non préfixé) dans moninit.el
depuis longtemps. Je l'ai juste préfixé hier pour plus de cohérence et introduit un bug ....(let ((fill-column 1000000)) (fill-pragraph))
. Je ne l'ai pas encore testé.Vos problèmes de contrôle de version seraient-ils évités / résolus si vous utilisez git diff --color-words ou latexdiff? Ensuite, vous pouvez regarder les mots modifiés.
la source
Une façon d'améliorer cela que j'utilise (parfois) depuis plusieurs années est d'afficher des phrases avec des sauts de ligne qui s'écoulent les uns après les autres en pliant les sauts de ligne en utilisant les fonctionnalités de
tex-fold
(une partie d'AUTCTeX).Cela signifie que ce
est plié
J'ai récemment mis cela ensemble en tant que mode mineur dans un package. Peut-être que quelqu'un d'autre trouvera également cela utile: https://github.com/andersjohansson/tex-fold-linebreaks
la source