Incapaz de fazer cada frase para começar em uma nova linha no LaTex por AWK / Python

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

  •  10-07-2019
  •  | 
  •  

Pergunta

Eu tenho um longo documento em LaTeX, que contém parágrafos. Os parágrafos contêm frases de tal forma que nenhuma sentença posterior começar em uma nova linha.

Como você pode fazer cada frase subseqüente para iniciar em uma nova linha no meu arquivo .tex?

Minha tentativa para o problema

Precisamos colocar \ n para o fim da frase B, onde Sentença B tem Sentence A antes.

Não devemos colocar \ n para as situações em que há o \ marca.

Eu vejo que o problema pode ser resolvido por AWK e Python.

Foi útil?

Solução

errada do que com a colocação de uma nova linha após cada período? Por exemplo:

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

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

Outras dicas

Assim que você quer cada frase em seu arquivo .tex para começar em uma nova linha, mas sem introduzir parágrafos extras? Isso está correto?

Possivelmente você poderia ir através de seu arquivo e, a cada vez que você vê um '' seguido por espaços em branco e uma letra maiúscula, inserir uma nova linha.

por exemplo. em 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 eu ler a sua pergunta corretamente, o que você precisa é o comando \newline. Coloque-o depois de cada frase. \\ é um atalho para isso.

A regex para fazer isso seria algo como

s/\.  ([A-Z])/.\\newline\1/
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top