Nicht imstande, jeden Satz zu machen in einer neuen Zeile in LaTex von AWK / Python zu starten
Frage
Ich habe ein langes Dokument in LaTeX, die Absätze enthält. Die Absätze enthalten Sätze, so dass kein nachfolgender Satz in einer neuen Zeile beginnen.
Wie kann man jeden nachfolgenden Satz macht in einer neuen Zeile in meiner .tex-Datei zu starten?
Mein Versuch, das Problem
Wir brauchen \ n bis zum Ende des Satzes B in dem Satz B Satz A, bevor es setzen.
Wir dürfen nicht \ n auf die Situationen, in denen es die Marke \
setzen.
Ich sehe, dass das Problem von AWK und Python gelöst werden kann.
Lösung
Was ist los mit einer neuen Zeile nach jeder Periode setzen? Zum Beispiel:
awk '{ gsub(/\. +/, ".\n"); print }'
$ echo "abc. 123. xyz." | awk '{ gsub(/\. +/, ".\n"); print }'
abc.
123.
xyz.
Andere Tipps
So können Sie jeden Satz in Ihrer .tex-Datei wollen in einer neuen Zeile beginnen, aber ohne zusätzliche Absätze einzuführen? Ist das richtig?
Möglicherweise könnten Sie durch Ihre Datei gehen und jedes Mal, wenn Sie eine sehen ‚‘ gefolgt von Leerzeichen und einem Großbuchstaben, eine neue Zeile einzufügen.
z. in Python:
import re
sentence_end = r'\.\s+([A-Z])'
source = open('myfile.tex')
dest = open('myfile-out.tex', 'w')
for line in source:
dest.write(re.sub(sentence_end, '.\n\g<1>', line))
Wenn ich Ihre Frage richtig zu lesen, was Sie brauchen, ist der \newline
Befehl. Legen Sie es nach jedem Satz. \\
ist eine Abkürzung für diese.
Ein regex, dies zu tun wäre so etwas wie
s/\. ([A-Z])/.\\newline\1/