Ein bisschen Hintergrund.
Ich versuche, meine Latexdokumente einer Versionskontrolle zu unterziehen, und die Wirksamkeit dieser Initiative würde sich erheblich verbessern, wenn ich einen Ein-Satz-pro-Zeile- Ansatz einsetze.
Im Folgenden sehen Sie beispielsweise, wie meine Dokumente aussehen werden.
Some text here.
New stencence on the same paragraph.
Some more text, still on the same paragraph.
This is another paragraph.
Meine Frage ist einfach.
Wie viel davon kann ich mit Emacs automatisieren / verbessern?
Die folgenden zwei Punkte sind das, was ich im Sinn habe.
Meine Sätze sind lang , daher muss ich Zeilen umbrechen, ohne sie tatsächlich zu füllen. Das heißt, ein sehr langer Satz muss über mehrere Zeilen auf meinem Bildschirm angezeigt werden, es muss sich jedoch um eine einzelne Zeile in der „.tex“ -Datei handeln. Dies würde vorzugsweise auf eine Weise erfolgen, die keine Gleichungen umschließt.
visual-line-mode
Wraps bei Fensterbreite, das ist zu breit. Ich brauche etwas, das Zeilen umbricht und deren Breite auf ungefähr 80 Zeichen begrenzt. Genau wiefill-paragraph
normalerweise, aber ohne die Zeilen in der Datei zu brechen.- Ich kann die Zeile nach jedem Satz manuell umbrechen, aber es wäre sehr zu empfehlen, wenn ich auch einen Satz pro Zeile setzen könnte
fill-paragraph
(oder vielleicht sogarauto-fill-mode
).
quelle
visual-line-mode
. Aber zusätzlich zum Zeilenumbruch müssen Sie auch nach jedem Satz automatisch ein Zeilenumbruchzeichen einfügen, richtig?Antworten:
Wenn Sie nur etwas möchten, das
visual-line-mode
aber konfigurierbar ist, können Sie versuchen,longlines-mode
welches ich für den größten Teil meiner Prosa verwende.longlines-mode
bricht Ihren Text ähnlich wievisual-line-mode
mit der durch konfigurierten Breite umfill-column
.Hier ist ein Screenshot mit der
fill-column
Einstellung auf70
(das Fenster erstreckt sich sogar noch weiter nach rechts).Das Konfigurieren
fill-paragraph
wäre ordentlich, aber ich bin mir nicht sicher, wie ich es machen soll. Stattdessen ist hier ein vernünftiger vorübergehender Hack: Machen Sie Ihren.
Charakter im TeX-Modus elektrisch und fügen Sie eine neue Zeile ein. Dies beinhaltet nur das erneute Binden mit dem entsprechenden Modus-Hook:quelle
Für (1) würde ich einen vergrößerten Rand verwenden, damit
visual-line-mode
Zeilen an der gewünschten Stelle umgebrochen werdenfill-column
. Dies wirkt sich jedoch sowohl auf Textzeilen als auch auf Gleichungen aus.Wie bei (2) kann man einen benutzerdefinierten Füllbefehl definieren
M-q
, um Absätze zu binden und korrekt zu füllen. Es ist mir noch nicht gelungen, einen Befehl mit dem richtigen Verhalten für das automatische Ausfüllen zu schreiben.Das alles in einem Nebenmodus zu verpacken könnte wie folgt aussehen. Es ist kein sehr schöner Code, sollte aber in den meisten Fällen funktionieren. (Ich habe die
unfill-paragraph
Funktion schoninit.el
seit geraumer Zeit in meinem gehabt, ohne Probleme zu bemerken).quelle
unfill-paragraph
mitospl/unfill-paragraph
. Die Ränder funktionieren auch, aber eingerückter Text sieht schlecht aus und sie schließen auch Gleichungen ein, während ich es geschafft habe, die Longlines-Methode unten zu hacken, um diese beiden Probleme zu beheben.unfill-paragraph
(nicht mehr fixiert) in meineminit.el
. Ich habe es gestern der Konsistenz(let ((fill-column 1000000)) (fill-pragraph))
. Habe es aber noch nicht getestet.Würden Ihre Versionskontrollprobleme vermieden / behoben, wenn Sie git diff --color-words oder latexdiff verwenden? Dann können Sie sich geänderte Wörter ansehen.
quelle
Eine Möglichkeit , dies zu verbessern , dass ich (manchmal) verwendet seit mehreren Jahren ist Sätze angezeigt werden mit Zeilenumbrüche wie nach jedem anderen fließt durch Falten die Zeilenumbrüche die Einrichtungen der Verwendung
tex-fold
(eines Teils AUCTeX).Dies bedeutet, dass dies
wird zu gefaltet
Ich habe dies kürzlich als Nebenmodus in einem Paket zusammengefasst. Vielleicht findet auch jemand anderes dies nützlich: https://github.com/andersjohansson/tex-fold-linebreaks
quelle