Как лучше всего вставить примеры исходного кода в документ Microsoft Word?

131

Мне нужно написать несколько документов, которые будут включать примеры исходного кода. Некоторые из примеров будут написаны из среды IDE, а другие будут написаны на месте. Мои примеры в основном написаны на Java.

Для человека, привыкшего к LaTeX, делать это в Word крайне болезненно. Однако для этого я привязан к Word. Единственные варианты, которые я видел:

  1. Напишите или скопируйте в документ, затем используйте шрифт фиксированного типа, упорядочите форматирование и надейтесь, что Word не прописал вам прописные буквы. Излишне говорить, что это похоже на хрень.
  2. Скопируйте и вставьте скриншоты исходного кода из IDE. По крайней мере, я сохраняю цвета. Однако, если я изменю размер шрифта, я облажался. Я также не могу понять границы страницы. И давайте признаем, Word не очень хорош для управления несколькими изображениями в документе.
  3. Напишите HTML (здесь не вариант)

Есть ли лучший (и в идеале переносимый) способ сделать это? Есть ли хоть какой-то дословный стиль, похожий на среду LaTeX? Есть ли хоть какой-нибудь симпатичный принтер, который я мог бы скопировать и вставить как RTF?

Uri
источник
Рассел: Не уверен, что понимаю.
Uri
2
Думаю, это, наверное, больше подходит для суперпользователя. Просто потому, что то, что вы вставляете в документ, оказывается кодом, не делает это вопросом программирования.
danben
2
@danben: Наверное. Я просто подумал, что примеры кода в текстовых документах - это то, чем большинство программистов в итоге делают в своей повседневной работе.
Uri
1
Вы привязаны к формату Word-the-program или Word-the-file-format?
Ken

Ответы:

186

Я абсолютно ненавижу и презираю бесплатную работу в Microsoft, учитывая, что после всех этих миллиардов долларов они ВСЕ ЕЩЕ не имеют надлежащих руководств по таким вещам со скриншотами на их чертовом веб-сайте.

В любом случае, вот краткое руководство в Word 2010 с использованием Notepad ++ для раскраски синтаксиса и TextBox, которое можно подписать:

  1. Выберите Вставка / Текстовое поле / Простое текстовое поле.
    01word
  2. Текстовое поле по умолчанию вставлено
    02word
  3. Переключитесь на NPP, выберите язык для раскраски синтаксиса вашего кода, перейдите в Plugins / NPPExport / Копировать RTF в буфер обмена
    03npp
  4. Вернитесь к слову и вставьте в текстовое поле - оно может быть слишком маленьким ...
    04word
  5. ... поэтому вам, возможно, придется изменить его размер
    05word
  6. Выделив текстовое поле, щелкните его правой кнопкой мыши и выберите «Вставить заголовок ...».
    06word
  7. В меню Caption, если у вас его еще нет, нажмите New Label и установите для новой метки значение «Code», нажмите OK ...
    07word
  8. ... затем в диалоговом окне Caption переключите метку на Code и нажмите OK
    08word
  9. Наконец, введите свою подпись во вновь созданном поле для подписи.
    09word
sdaau
источник
Когда вы перекрестно ссылаетесь на заголовок, он вставляет весь код, чтобы решить эту проблему?
MonsterMMORPG
1
В Word 2013 текст - это код, вставляемый как обычный текст, невозможно сохранить формат Notepad ++
Хосе Нобиле,
2
@JoseNobile, вам нужно использовать плагин NppExport в Notepad ++
NeilenMarais
1
Он также работает с Android Studio, Visual Studio и Eclipse.
Teocci
Сначала я использовал ту же технику, но с тех пор перешел на использование таблицы 1x1, потому что обнаружил, что текстовые поля очень сложно позиционировать. Я попробовал «сверху и снизу», чтобы текст был только до и после, и Word волшебным образом перемещал поле вверх или вниз, иногда подпись не была видна, ах, какая боль. Сегодня начал использовать таблицы на основе другого SO QA, пока работает хорошо. Я создаю новый тип метки подписи «Листинг».
Оливер
26

Недавно я наткнулся на этот пост и нашел несколько полезных советов. Однако в итоге я использовал совершенно другой подход, который соответствовал моим потребностям. Я разделяю подход и свои рассуждения о том, почему я выбрал этот подход. Сообщение длиннее, чем мне бы хотелось, но я считаю, что скриншоты всегда полезны. Надеюсь, ответ будет кому-то полезен.

Мои требования были следующие:

  1. Добавляйте фрагменты кода в текстовый документ с подсветкой синтаксиса для упрощения видимости и различения кода и другого текста.
  2. Фрагмент кода должен быть встроен в другой текст.
  3. Фрагмент кода должен плавно разбиваться по страницам без каких-либо дополнительных усилий.
  4. Фрагмент кода должен иметь красивую рамку.
  5. Во фрагменте кода должна быть отключена проверка орфографии.

Мой подход приведен ниже:

  1. Используйте внешний инструмент для выполнения требования 1 к подсветке синтаксиса выше. Можно использовать блокнот плюс плюс, как описано выше. Однако я использую присутствующий здесь инструмент - http://www.planetb.ca/syntax-highlight-word . Это дает мне возможность использовать номер строки, а также очень красивую подсветку синтаксиса (пожалуйста, используйте Google Chrome для этого шага, потому что подсветка синтаксиса не копируется при использовании Mozilla Firefox, как также указано в нескольких комментариях пользователей). Шаги по выделению синтаксиса перечислены ниже:
    • Откройте указанный выше веб-сайт в Chrome и скопируйте фрагмент кода в текстовую область. Я буду использовать образец XML, чтобы продемонстрировать это (образец XML отсюда - http://www.service-architecture.com/articles/object-oriated-databases/xml_file_for_complex_data.html ).
    • Выберите язык из раскрывающегося меню.
    • Нажмите кнопку «Показать выделенные». Откроется новая вкладка с выделенным синтаксисом фрагментом кода, в данном случае выбранным нами примером XML. См., Например, изображение ниже. Изображение показывает образец XML, вставляемый в текстовое поле, язык, выбранный как XML, и кнопку.
    • Чтобы отключить номера строк, просмотрите страницу в хроме. Затем в разделе стилей отмените выбор свойства «margin» в «.dp-highlighter ol», как показано на изображении ниже. Если вы хотите сохранить номера строк, перейдите к следующему шагу.
    • Выберите выделенный синтаксисом код и нажмите «Копировать». Теперь ваш код готов к вставке в Microsoft Word. Результат XML с выделенным синтаксисом Спасибо этому блогу за предоставление этой информации - http://idratherbewriting.com/2013/04/04/adding-syntax-highlighting-to-code-examples-online-and-in-microsoft-word/ .
  2. Чтобы выполнить требования 2, 3 и 4 выше, используйте таблицу в Microsoft Word, чтобы вставить фрагмент кода. Шаги перечислены ниже:

    • Вставьте таблицу с одним столбцом.
    • Вставьте скопированный текст из шага 1. в столбец таблицы. Я сохранил номера строк, чтобы показать, насколько хорошо это работает с Microsoft Word.
    • Примените границу, как хотите. Я использовал размер 1pt. В результате появится фрагмент Microsoft Word, как показано на снимке экрана ниже. Обратите внимание, как красиво он разбивается по странице - НИКАКИХ дополнительных усилий не требуется, чтобы управлять этим, с чем вы столкнетесь при вставке объекта «Текст OpenDocument» или при использовании «Простого текстового поля». Выделенный синтаксисом фрагмент кода вставлен в таблицу Microsoft Word
  3. Чтобы выполнить требование 5, выполните следующие действия:

    • Выделите всю таблицу или текст.
    • Перейдите на вкладку "Обзор". В разделе «Язык» выберите «Язык проверки». Будет представлено новое всплывающее окно.
    • Выберите «Не проверять орфографию и грамматику». Затем нажмите ОК. Отключить проверку орфографии
    • В полученном тексте отключена проверка орфографии. Окончательный результат показан на изображении ниже и соответствует всем требованиям. Конечный результат - соответствует всем 5 требованиям.

Сообщите, есть ли у вас какие-либо отзывы или улучшения, или если у вас возникли проблемы с этим подходом.

Абхишек
источник
2
Спасибо! Отлично выглядит ... Мне пришлось использовать Google Chrome, потому что Mozilla Firefox не копировал выделение синтаксиса.
loveMeansNothing
Думаю, это лучшее решение. Еще один совет: если вам не нужна проверка орфографии, но вы пишете не по-английски, вставьте код как объект Open Document Text. Перейдите в INSERT - OBJECT - и выберите OpenDocument Text. Вставьте код в открытый документ, затем сохраните и закройте. Код отображается, как указано выше, но написание полностью игнорируется. Единственный недостаток может заключаться в том, что номер работает некорректно, если вы хотите включить его в заголовок объявления. Не проверял.
user3629892
@ user3629892 Я думал, что с помощью Open Document вы не сможете красиво перенести на разные страницы.
maracuja-juice
Есть ли возможность получить эту красивую рамку также для номеров строк при копировании в слово.
Paramesh Korrakuti
1
@ Capt.Krusty - В пункте 1, пунктах 1 и 5 я уже упоминал об использовании Chrome. Но я продолжу и добавлю «Google Chrome», как вы и loveMeansNothing предложили.
abhishek
23

Вам нужно определить стиль в документе Word и использовать его для исходного кода. Обычно у меня есть стиль под названием «Код», в котором есть моноширинный шрифт с мелким шрифтом, табуляция фиксированного размера, одинарный межстрочный интервал, без интервала между абзацами и т. Д. Вам нужно только один раз определить этот стиль, а затем использовать его повторно. Вы вставляете исходный код и применяете к нему стиль «Код».

Обратите внимание, что некоторые редакторы (например, Xcode на Mac) добавляют RTF, а также текст в буфер обмена при копировании / вставке между приложениями - Word распознает RTF и помогает сохранить форматирование, окраску синтаксиса и т. Д.

Исходный код в Xcode:

введите описание изображения здесь

Скопировано и вставлено в Word:

введите описание изображения здесь

(Примечание: рекомендуется отключить проверку орфографии в стиле «Код» в Word.)

Пол Р
источник
Однако это не приводит к автоматическому добавлению стиля к ключевым словам, числам, строкам и т. Д.
Барт,
@Bart: в общем, нет, но для тех, кто использует Xcode (для разработки Mac OS X, iOS и т. Д.), Буфер обмена содержит RTF со всей синтаксической раскраской и т. Д., И Word принимает это. Возможно, есть и другие редакторы, которые также имеют эту полезную функцию, но я о них не знаю.
Paul R
RTF работает, да, я использовал это в прошлом, используя Notepad ++ в Word. Однако было бы очень хорошо, если бы существовал способ добавить настоящий стиль кода, то есть такой, который автоматически выделяет синтаксис. Жаль, что ничего подобного не существует. Конечно, вы можете установить некоторые надстройки, которые могут выделяться по запросу, но я еще не нашел ни одной, которая могла бы легко изменить стиль всех ваших блоков кода с другим стилем, если вы хотите.
Барт
Я не думаю, что это поддерживает субтитры, не так ли?
Оливер
@Schollii: Я думаю, что подписи можно применять только к «объектам» в Word. Я думаю, вы могли бы поместить код в таблицу 1x1, которая затем превратила бы его в объект?
Paul R
11

Это вроде как зависит от IDE. И Visual Studio, и Eclipse , например, позволяют копировать в формате RTF и вставлять в Word, сохраняя все ваше форматирование.

В Notepad ++ есть плагин под названием «NppExport» (поставляется предустановленным), который позволяет копировать в RTF, хотя меня не особо заботит подсветка синтаксиса Notepad ++ (хотя это определенно можно было бы пройти). Что он действительно делает, так это поддерживает десятки языков, тогда как вышеупомянутые IDE ограничены несколькими (без других плагинов).

Cᴏʀʏ
источник
1
Мне повезло как с VS, так и с Eclipse: я использовал редактор IDE для раскраски синтаксиса (и любого другого форматирования, который мне нравится), а затем вырезал и вставлял прямо в слово. Я обычно следую за этим, устанавливая шрифт во фрагменте на шрифт фиксированной ширины (мне это не всегда
удавалось
3

Это связано с этим ответом: https://stackoverflow.com/a/2653406/931265 Создание объекта решило все мои проблемы.

Вставить> Объект> Текст документа

Это откроет окно документа, вставит ваш текст, отформатирует его, как вы хотите, и закроет его.

Результат - фигура. Щелкните объект правой кнопкой мыши и выберите «Добавить подпись».

Теперь вы можете делать перекрестные ссылки, составлять таблицу рисунков.

rickfoosusa
источник
Когда вы перекрестно ссылаетесь на заголовок, он также вставляет весь код, как решить эту проблему?
MonsterMMORPG
2

Используйте это - http://hilite.me/

hilite.me преобразует ваши фрагменты кода в красиво напечатанный HTML-формат, легко встраиваемый в сообщения блогов, электронные письма и веб-сайты.

Как: просто скопируйте исходный код на левую панель, выберите язык и цветовую схему и нажмите «Выделить!». HTML-код из правой панели теперь можно вставить в ваш блог или электронную почту, внешние файлы CSS или Javascript не требуются.

Для документа Microsoft Word: скопируйте содержимое из раздела предварительного просмотра и вставьте в свой документ Microsoft Word.

3 раздела: исходный код, HTML и предварительный просмотр

Сагир Хуссейн
источник
1

Для этого вы можете использовать Open Xml Sdk. Если у вас есть код в html с цветом и форматированием. Вы можете использовать альтернативные блоки, чтобы добавить его в текстовые документы. Ссылка на этот пост Добавить строку HTML в документ OpenXML (* .docx) Надеюсь, это поможет!

Мохамед Алихан
источник
1

Если вы все еще ищете простой способ добавить фрагменты кода.

вы можете легко перейти к [Вставить]> [Объект]> [Текст документа]> вставить свой код> Сохранить и закрыть.

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

ноты:

  • Это займет не более одной страницы кода.
  • Ваш Код не будет исправлен автоматически .
  • Вы можете взаимодействовать с ним, только дважды щелкнув по нему.
Meatyflesh
источник
1

В Word можно вставить код, в котором используется цвет, чтобы отличать комментарии от кода, с помощью функции «Вставить исходное форматирование». Однако, если вы используете вставленный код для создания нового стиля, Word автоматически удаляет цветной текст и изменяет его на черный (или любой другой цвет, установленный автоматически по умолчанию). Поскольку применение стиля - лучший способ обеспечить соответствие требованиям формата документа, Word не очень полезен для документирования программ. К сожалению, я не помню, чтобы Open Office был лучше. Лучшее решение - использовать простое текстовое поле по умолчанию.

user10128757
источник
1

Я перепробовал все ваши методы, но у меня они не работали, на самом деле я создал более простой метод, используя таблицы MS Word .

Плюсы:

  1. Более красивый
  2. Легче в управлении и более последовательным
  3. Менее склонны к проблемам
  4. Нет необходимости во внешних плагинах или микрокодировании MS Word.
  5. Легче справиться с простыми пользователями ( такими как я ).

Минусы: он не поддерживает раскраску кода, хотя кто-то может улучшить мой трюк.

шаги:

  1. Вставьте таблицу 3x3, в моем случае я всегда делаю общую ширину таблицы равной ширине свободной страницы ( минимум 3 строки для проверки стиля таблиц ).

  2. Используйте невидимые границы ( опция « Без границ » ) и активируйте опцию « Просмотр линий сетки ». он должен иметь этот аспект. Помните, что эти строки предназначены для того, чтобы вы видели сетку таблицы, и они не будут напечатаны.

введите описание изображения здесь

  1. Измените расстояние между ячейками и ширину столбцов, чтобы получить желаемый аспект. ( Вам нужно будет войти в « Свойства таблицы » для точной настройки ). введите описание изображения здесь

  2. Создайте « Стиль абзаца » с именем « Код » только для своих фрагментов кода ( проверьте https://stackoverflow.com/a/25092977/8533804, чтобы понять идею, вам не обязательно следовать всем этим)

  3. Создайте еще один « Стиль абзаца » с именем « Code_numberline », который будет основан на ранее созданном стиле. введите описание изображения здесь

  4. Во вновь созданной « Code_numberline » добавьте стиль нумерации, который вам нравится (это автоматизирует нумерацию строк). введите описание изображения здесь

  5. Примените « Code_numberline » к первому столбцу и « Code » к столбцу 3. введите описание изображения здесь

  6. Добавьте заливку в средний столбец. введите описание изображения здесь

  7. Сохраните этот стиль стола и наслаждайтесь!

Надер Белал
источник
Отлично, пока вы не сказали « Сохраните этот стиль таблицы» .
Martin of Hessle
@MartinofHessle, хорошо для расширенных документов, где вы будете заполнять его фрагментами кода во многих местах, возможность сохранения этого стиля таблиц позволяет сэкономить время, кроме того, он позволяет вам без проблем изменять стиль таблицы во всем документе, как в моем случае где у меня есть стиль для IDE и IDLE ... с другой стороны, если вы используете только одну таблицу, вы можете пропустить последний шаг
Надер Белал
Я согласен с тем, почему. Это было то, как сказать normal.dot, чтобы оно сохранялось, что было бы полезным дополнением. Я понял это, но это было неочевидно.
Мартин из Хессле
@MartinofHessle, извините, но я не понял вашего последнего утверждения. Не могли бы вы повторить это еще раз попроще?
Надер Белал
1
Извините опечатка, надо было как сохранить в normal.dot .
Martin of Hessle
0

Есть простой способ, если вам нужно простое форматирование кода.

  1. Откройте слово> вкладка "Вставить"> нажмите "Получить надстройки".
  2. ищите "Content Mixer" 3. нажмите "Добавить"

Затем добавление микшера содержимого откроется автоматически, и вы можете скопировать туда свой код и нажать «Вставить», чтобы вставить его в документ Word.

Hitesh Bisht
источник
0

Эти ответы выглядят устаревшими и довольно утомительными по сравнению с решением веб-надстройки; который доступен для продуктов, начиная с Office 2013.

Я использую Easy Code Formatter , который позволяет кодировать текст на месте. Он также дает вам возможности нумерации строк, выделения, различных стилей и стилей с открытым исходным кодом здесь: https://github.com/armhil/easy-code-formatter-styles, чтобы вы могли расширить стиль самостоятельно. Для установки - откройте Microsoft Word, перейдите на вкладку «Вставка» / нажмите «Получить надстройки» и найдите «Easy Code Formatter».

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

Мави Доматес
источник