Nicht imstande, jeden Satz zu machen in einer neuen Zeile in LaTex von AWK / Python zu starten

StackOverflow https://stackoverflow.com/questions/636887

  •  10-07-2019
  •  | 
  •  

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.

War es hilfreich?

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/
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top