Impossibile fare in modo che ogni frase inizi in una nuova riga in LaTex di AWK / Python

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

  •  10-07-2019
  •  | 
  •  

Domanda

Ho un lungo documento in LaTex, che contiene paragrafi. I paragrafi contengono frasi tali che nessuna frase successiva inizia in una nuova riga.

Come puoi fare in modo che ogni frase successiva inizi con una nuova riga nel mio file .tex?

Il mio tentativo di risolvere il problema

Dobbiamo mettere \ n alla fine della Frase B dove la Frase B ha la Frase A prima di essa.

Non dobbiamo mettere \ n nelle situazioni in cui è presente il segno \ .

Vedo che il problema può essere risolto da AWK e Python.

È stato utile?

Soluzione

Cosa c'è di sbagliato nel mettere una nuova riga dopo ogni periodo? Ad esempio:

awk '{ gsub(/\. +/, ".\n"); print }'

$ echo "abc. 123. xyz." | awk '{ gsub(/\. +/, ".\n"); print }'
abc.
123.
xyz.

Altri suggerimenti

Quindi vuoi che ogni frase nel tuo file .tex inizi su una nuova riga, ma senza introdurre paragrafi extra? È corretto?

Probabilmente potresti consultare il tuo file e, ogni volta che vedi un '.' seguito da spazi bianchi e una lettera maiuscola, inserire una nuova riga.

es. 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))

Se ho letto correttamente la tua domanda, quello che ti serve è il comando \ newline . Mettilo dopo ogni frase. \\ è una scorciatoia per questo.

Una regex per fare questo sarebbe qualcosa di simile

s/\.  ([A-Z])/.\\newline\1/
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top