Невозможно заставить каждое предложение начинаться с новой строки в LaTeX с помощью AWK / Python

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

  •  10-07-2019
  •  | 
  •  

Вопрос

У меня есть длинный документ в LaTeX, который содержит абзацы.Абзацы содержат предложения таким образом, что ни одно последующее предложение не начинается с новой строки.

Как вы можете сделать так, чтобы каждое последующее предложение начиналось с новой строки в моем файле .tex?

Моя попытка решить проблему

Нам нужно поставить в конец предложения B, где перед предложением B стоит предложение A.

Мы не должны ставить в ситуациях, когда есть отметка \.

Я вижу, что проблема может быть решена с помощью AWK и Python.

Это было полезно?

Решение

Что не так с вводом новой строки после каждого периода? Например:

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

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

Другие советы

Итак, вы хотите, чтобы каждое предложение в вашем файле .tex начиналось с новой строки, но без введения дополнительных абзацев?Это правильно?

Возможно, вы могли бы просмотреть свой файл и каждый раз, когда вы видите ".", за которым следуют пробел и заглавная буква, вставлять новую строку.

например ,в 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))

Если я правильно прочитал ваш вопрос, вам нужна команда \ newline . Положите его после каждого предложения. \\ - это ярлык для этого.

Регулярное выражение для этого было бы что-то вроде

s/\.  ([A-Z])/.\\newline\1/
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top