Цель состоит в том, чтобы принять третий путь --- a.k.a. используя семантические переводы строк. Это включает в себя ввод одного предложения на строку файла TeX. Это упрощает использование систем управления версиями при работе с TeX файлами и другими текстовыми файлами. (Аналогичная рекомендация была сделана в ответ на этот вопрос.)
Конечно, я мог вручную вставить разрыв строки в конце каждого предложения. Однако это приведет к вредным привычкам (например, при наборе слов на строку при написании писем). Поэтому я ищу альтернативный способ реализации этого.
Одним из решений для тех, кто использует Sublime Text, является использование ST keybindings. По сути, это превратило бы пробел в комбинацию клавиш для script, которая будет
- проверьте, предшествует ли это концу предложения, и
- если это так, вставьте разрыв строки.
Вот соответствующий фрагмент:
{ "keys": [" "],
"context": [
{"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
{"key": "preceding_text", "operator": "regex_match", "operand": "(^.+\\.$)|(^.+\\?$)|(^.+\\!$)|(^.+\\.+\\)$)"},
{"key": "preceding_text", "operator": "not_regex_match", "operand": "(^.*\\\\ex\\.$)|(^.*\\\\[abz]\\.$)"},
{"key": "preceding_text", "operator": "not_regex_match", "operand": "(^.*[Cc]f\\.$)|(^.*\\b[Pp]+\\.$)|(^.*etc\\.$)|(^.*\\b[A-Z]\\.$)|(^\\w\\.$)|(^.*M[sr]\\.$)|(^.*Mrs\\.$)"}
],
"command": "insert", "args": {"characters": " %\n"}
}
Я добавляю это к Sublime/Packages/User/Default (OSX).sublime-keymap
и, похоже, делает трюк.
Предполагается, что фрагмент будет искать то, что предшествует пробелу, и дать вам соответствие, если у вас есть строка, которая заканчивается одним из следующих:
- период,
- восклицательный знак,
- вопросительный знак,
- закрывающая скобка, которой предшествует период.
Однако он проигнорирует строки, заканчивающиеся на период, если им предшествует одно из следующего:
- '\ ex', '\ a', '\ b', '\ z' (это значит, что можно использовать пакет
linguex
), - 'cf', 'Cf',
- 'p', 'pp', 'P',
- 'и т.д.
- 'Mr', 'Mrs', 'Ms', 'Dr',
- Отдельные заглавные буквы (для использования инициалов в предложении).
Мне интересно узнать, есть ли другие вещи, которые я должен добавить в этот список ( "Там же", я полагаю, это будет один).
Мне также интересно, есть ли какие-нибудь менее неуклюжие решения этой проблемы.