Невозможно заставить каждое предложение начинаться с новой строки в LaTex от AWK / Python - PullRequest
1 голос
/ 12 марта 2009

У меня длинный документ в LaTex, который содержит параграфы. В абзацах содержатся такие предложения, что последующие предложения не начинаются с новой строки.

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 12 марта 2009

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

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

$ echo "abc. 123. xyz." | awk '{ gsub(/\. +/, ".\n"); print }'
abc.
123.
xyz.
2 голосов
/ 12 марта 2009

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

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

s/\.  ([A-Z])/.\\newline\1/
2 голосов
/ 12 марта 2009

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

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

например. в питоне:

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...