автоматическая установка отступа для кода Python в Word

1

Я борюсь с 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
    роскошь ?
  • 0
    Я не уверен, что понимаю недостаток форматирования, скажем, HTML (с помощью онлайн-инструмента форматирования), а затем вставки в Word. Изменение размера шрифта после этого не должно вызывать никаких проблем.
Показать ещё 8 комментариев
Теги:
ms-word
word-wrap
auto-indent

5 ответов

0
Лучший ответ

1) Следуйте рекомендациям PEP-8 и сохраняйте линии < 80 символов. Иногда это кажется очень трудным или неудобным. В этих случаях вы можете использовать до 90-95 символов. Более длинные строки, вероятно, являются результатом плохой конструкции кода или ошибочно выбранных имен переменных. (Есть люди, работающие со стандартными размерами до 120 символов, но, вероятно, они не пытаются опубликовать код в Word в портретном режиме).

2) Используйте моноширинный шрифт

3) Держите размер шрифта достаточно малым, чтобы обеспечить 80-95 символов в строке.

  • 0
    Я отправил этот вопрос 2 года назад и никогда не выбирал правильный ответ (я не знал этикета StackOverflow). Так что я выбрал этот сейчас, потому что это то, что я в итоге сделал. Я просто сохранил все свои утверждения длиной менее 80 символов, и копирование и вставка в слова, казалось, работали хорошо. Имейте в виду, я потратил много часов, просматривая все свои сценарии, переформатируя их таким образом, и перезапуская их, чтобы проверить, не внесла ли я какие-либо ошибки :)
1

Напишите свой код в редакторе кода с поддержкой Python с подсветкой синтаксиса. Сохраните свои фрагменты. Сделайте скриншоты. Вставьте их в MS Word. Измените размер и обрезайте изображения по своему усмотрению.

Теперь все, что вам нужно сделать, - сразиться с MS Word над словом, обертывающим изображения, что может быть даже победой.

  • 0
    MadKeithV, я избегал использования изображений, так как речь идет о 200 фрагментах текста на 500 страницах текстового документа. Это будет много изображений / скриншотов для работы. Также я не смогу изменить размер шрифта на скриншотах. Спасибо за предложение.
0

Я не использую слово, но в LibreOffice вы можете просто использовать форматирование абзаца - создать новый стиль абзаца для каждого уровня отступа (pycode, pycode_indent1...). Поместите все требуемое форматирование (одноранговое расстояние, интервал между абзацами и т.д.) В стиле верхнего уровня и сделайте стили с отступом использовать его в качестве родителя. Затем просто добавьте соответствующие отступы в каждый из дочерних стилей. Это в основном та же идея, что и многоуровневый маркированный список, без пуль. Затем выберите соответствующий стиль абзаца абзаца для каждой строки (подсказка: вы можете выбрать несколько несмежных строк, используя ctrl + mouse в LibreOffice).

Конечно, так вы должны делать это по очереди, что может быть большой болью в заднице. Но если может работать, если это всего лишь несколько фрагментов, которые являются проблематичными.

0

Используйте docutils.

Вместо того, чтобы бороться с MS-Word (и другими редакторами WYSIWYG), гораздо проще использовать docutils.

  • Напишите свой документ примерно в обычном тексте. Вы будете использовать разметку RST, которая очень проста и легка.

  • Запустите преобразование rst2html.py, чтобы создать красивые страницы HTML из вашего источника.

  • Запустите преобразование rst2latex.py, чтобы создать LaTeX из вашего источника. Существует множество инструментов, которые могут создавать PDF файлы из LaTeX.

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

Если вы пишете что-то действительно большое и сложное, вы должны использовать Sphinx. Это расширение для docutils с еще более классными функциями разметки для фрагментов кода.

  • 0
    SLott, спасибо за это. Я никогда раньше не пользовался документами или латексом, но описанная вами процедура звучит просто. Тем не менее, не-кодовый текст в моем документе очень хорошо отформатирован, и все связано со стилями шрифтов, даже отдельными словами во многих предложениях, поэтому я могу потерять всю эту работу, если начну с простого текста и прочитаю все 500 страниц. еще раз :( .. Я посмотрю на разметку RST, хотя, может быть, некоторые из не-кодирования форматирования могут быть сохранены? Я также рассмотрю sphinx согласно вашей рекомендации. Спасибо.
  • 0
    @Gary: все не-кодирование может быть сохранено. Если для этого требуется слишком много классов расширений, рассмотрите это как признак того, что вы перепроектировали свой документ. Но Sphinx использует богатую семантическую разметку, и вы можете разработать отображение от разметки до шрифтов и стилей представления.
Показать ещё 1 комментарий
0

Вы пытались использовать Word для создания текстового документа? Вы всегда можете преобразовать его позже.

  • 0
    jathanism, я не понимаю, что вы имеете в виду. У меня сложилось впечатление, что текстовый документ не имеет форматирования. В любом случае мне придется вручную делать все отступы уровня 1, 2, 3 для всех фрагментов. И потом, если я изменю размер / стиль шрифта позднее, все отступы, скорее всего, получатся, и мне позже придется вносить изменения в размер и стиль шрифта, будь то обычный текст или формат .docx, и отступ кода, вероятно, не останется неизменным. когда это произойдет. Также большая часть некодового текста уже напечатана, отформатирована и ведет себя хорошо. Спасибо за предложение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню