قادر على جعل كل جملة تبدأ سطر جديد في اللاتكس قبل AWK/Python

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

  •  10-07-2019
  •  | 
  •  

سؤال

لدي وثيقة طويلة في اللاتكس الذي يحتوي على فقرات.الفقرات تحتوي على هذه الجمل التي لا اللاحقة الجملة تبدأ في سطر جديد.

كيف يمكنك أن تجعل كل لاحقة الجملة أن تبدأ في سطر جديد في بلدي .تكس الملف ؟

محاولة المشكلة

نحن بحاجة إلى وضع إلى نهاية الجملة ب حيث الجملة ب وقد حكم قبل ذلك.

يجب علينا أن لا نضع الحالات التي توجد فيها علامة \.

أرى أن المشكلة يمكن حلها عن طريق AWK و الثعبان.

هل كانت مفيدة؟

المحلول

ما هو الخطأ مع وضع سطر جديد بعد كل الفترة ؟ على سبيل المثال:

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

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

نصائح أخرى

إذا كنت تريد في كل جملة الخاص بك .الملف 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))

إذا قرأت سؤالك بشكل صحيح ، ما عليك هو \newline الأوامر.وضعه بعد كل جملة. \\ هو اختصار هذا.

Regex للقيام بذلك سيكون شيئا مثل

s/\.  ([A-Z])/.\\newline\1/
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top