Я борюсь с Microsoft Word, чтобы правильно отобразить код Python и мне нужна некоторая помощь.
Я пытаюсь вставить большое количество скриптов Python в Microsoft Word с текстом документации, написанным вокруг фрагментов. Некоторые из этих фрагментов Python - это несколько строк, другие - на странице. Поскольку в документе сейчас около 500 страниц, вокруг документа размещено около 200 фрагментов кода.
У меня есть стиль шрифта, который я создал, установленный в фрагменты. Поэтому я могу изменить размер шрифта, цвет, стиль и т.д. Для всех сразу. Но у меня большая проблема с переносом слов. Длинные инструкции в Python обернуты словом, что затрудняет их чтение, поскольку отступы теряются. Я могу успешно отступать от завернутой строки уровня 1, используя "висячие отступы". Но я не могу ничего сделать с отступом уровня 2 или уровня 3, так как вложенные элементы далее отступают.
Пример (я использовал точки вместо пробелов, потому что он их удалял)
This is a statement
This is another statement
if (condition):
.........This is a third statement
.........This is a fourth statement
.........for loop :
..................This is a fifth statement
..................This is a sixth statement
..................if (condition):
...........................This is a seventh statement
Представьте, что каждое утверждение довольно длинное и завершается в следующую строку на странице слова. Я получаю
This is a statement
This is another statement
if (condition):
.........This is a third
statement
.........This is a fourth
statement
.........for loop:
.................This is
a fifth statement
.................This is a
sixth statement
Как я могу исправить это словом? Висячий отступ будет фиксировать отступы уровня 1 (операторы в условии if), но не отступы уровня 2 (операторы в цикле for)
Примечание. Я хотел бы использовать какой-то вариант, или плагин или макрос в слове. Я не могу использовать редактор кода, копировать и вставлять код в rtf или какой-либо другой формат. Даже если бы я сделал это 200 раз, чтобы заменить все мои фрагменты кода, то, как только я изменил размер шрифта в моем документе, все снова перепутается. Другим вариантом будет некоторая среда IDE, которая встраивает или связывает слова (без необходимости копирования и вставки) и позволяет изменять стиль и размер шрифта в своей собственной среде, которые будут автоматически обновляться во всех случаях в Word.
Пожалуйста, помогите, если сможете. Я искал, как сумасшедший, и ничего не нашел, что работает...
1) Следуйте рекомендациям PEP-8 и сохраняйте линии < 80 символов. Иногда это кажется очень трудным или неудобным. В этих случаях вы можете использовать до 90-95 символов. Более длинные строки, вероятно, являются результатом плохой конструкции кода или ошибочно выбранных имен переменных. (Есть люди, работающие со стандартными размерами до 120 символов, но, вероятно, они не пытаются опубликовать код в Word в портретном режиме).
2) Используйте моноширинный шрифт
3) Держите размер шрифта достаточно малым, чтобы обеспечить 80-95 символов в строке.
Напишите свой код в редакторе кода с поддержкой Python с подсветкой синтаксиса. Сохраните свои фрагменты. Сделайте скриншоты. Вставьте их в MS Word. Измените размер и обрезайте изображения по своему усмотрению.
Теперь все, что вам нужно сделать, - сразиться с MS Word над словом, обертывающим изображения, что может быть даже победой.
Я не использую слово, но в LibreOffice вы можете просто использовать форматирование абзаца - создать новый стиль абзаца для каждого уровня отступа (pycode
, pycode_indent1...
). Поместите все требуемое форматирование (одноранговое расстояние, интервал между абзацами и т.д.) В стиле верхнего уровня и сделайте стили с отступом использовать его в качестве родителя. Затем просто добавьте соответствующие отступы в каждый из дочерних стилей. Это в основном та же идея, что и многоуровневый маркированный список, без пуль. Затем выберите соответствующий стиль абзаца абзаца для каждой строки (подсказка: вы можете выбрать несколько несмежных строк, используя ctrl + mouse в LibreOffice).
Конечно, так вы должны делать это по очереди, что может быть большой болью в заднице. Но если может работать, если это всего лишь несколько фрагментов, которые являются проблематичными.
Используйте docutils.
Вместо того, чтобы бороться с MS-Word (и другими редакторами WYSIWYG), гораздо проще использовать docutils.
Напишите свой документ примерно в обычном тексте. Вы будете использовать разметку RST, которая очень проста и легка.
Запустите преобразование rst2html.py
, чтобы создать красивые страницы HTML из вашего источника.
Запустите преобразование rst2latex.py
, чтобы создать LaTeX из вашего источника. Существует множество инструментов, которые могут создавать PDF файлы из LaTeX.
В этом случае фрагменты кода обрабатываются идеально каждый раз. Нет работы.
Если вы пишете что-то действительно большое и сложное, вы должны использовать Sphinx. Это расширение для docutils с еще более классными функциями разметки для фрагментов кода.
Вы пытались использовать Word для создания текстового документа? Вы всегда можете преобразовать его позже.