Який найкращий спосіб вставити приклади вихідного коду в документ Microsoft Word?


131

Я повинен написати деякі документи, які включатимуть приклади вихідного коду. Деякі приклади будуть написані з IDE, а інші - на місці. Мої приклади передусім на Java.

Як хтось, хто звик до LaTeX, робити це в Word надзвичайно болісно. Однак я для цього зобов'язаний Word. Єдині варіанти, які я бачив:

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

Чи є якийсь кращий (і в ідеалі портативний) спосіб зробити це? Чи є хоч якийсь дослівний стиль, подібний до середовища LaTeX? Чи є хоч якийсь гарний принтер, який я можу скопіювати та вставити як RTF?


Рассел: Не впевнений, що я розумію.
Урі

2
Я думаю, що це, мабуть, більше підходить для суперпользователя. Тільки тому, що те, що ви вставляєте в документ, буває кодом, не викликає цього питання програмування.
danben

2
@danben: Гадаю. Я просто зрозумів, що приклади коду в текстових документах - це те, що більшість програмістів в кінцевому підсумку роблять у своїй щоденній роботі.
Урі

1
Чи пов'язані ви з Word-the-program або Word-the-file-format?
Кен

Відповіді:


186

Я абсолютно ненавиджу і зневажаю, що працюю безкоштовно для Microsoft, враховуючи, що після всіх цих мільярдів доларів вони НЕ ВІДБУДУЮТЬсь, щоб не мати належних посібників щодо подібних матеріалів із скріншотами на своєму проклятому веб-сайті.

У будь-якому випадку, ось короткий посібник у Word 2010, використовуючи «Блокнот ++» для фарбування синтаксису та TextBox:

  1. Виберіть Вставка / Текстове поле / Просте текстове поле
    01word
  2. Введено текстове поле за замовчуванням
    02word
  3. Перейдіть на NPP, виберіть мову для синтаксичного забарвлення коду, перейдіть до плагінів / NPPExport / Скопіюйте RTF у буфер обміну
    03npp
  4. Переключіться на слово і вставте в текстове поле - воно може бути занадто малим ...
    04word
  5. ... тож вам може знадобитися змінити його розмір
    05word
  6. Вибравши текстове поле, клацніть правою кнопкою миші на ньому, а потім виберіть Вставити підпис ...
    06word
  7. У меню підписів, якщо у вас його ще немає, натисніть кнопку "Нова мітка" та встановіть нову мітку на "Код", натисніть кнопку ОК ...
    07word
  8. ... потім у діалоговому вікні Caption переключіть мітку на Code і натисніть кнопку ОК
    08word
  9. Нарешті, введіть підпис у новоствореному полі підписів
    09word

Якщо ви перехрещуєте підписи, він сам вставляє весь код, як вирішити цю проблему?
MonsterMMORPG

1
У Word 2013 текст коду вставляється як звичайний текст, жодним чином зберігати формат Notepad ++
Хосе Нобіле

2
@JoseNobile вам потрібно використовувати плагін NppExport у Блокноті ++
NeilenMarais

1
Він також працює з Android Studio, Visual Studio та Eclipse.
Теоччі

Спочатку я використовував ту саму методику, але згодом перейшов на використання таблиці 1х1, тому що я виявив, що текстові поля - це біль, що позиціонує. Я спробував "вгорі і внизу", щоб текст був лише до і після, і Word магічним чином перемістив би поле вгору або вниз, іноді підпис не було видно, ах, біль. Почав сьогодні використовувати таблиці на основі іншого SO QA, поки що добре працює. Я створюю нову мітку підписів типу "Лістинг".
Олівер

26

Нещодавно я натрапив на цей пост і знайшов корисні підказки. Однак я закінчив використовувати зовсім інший підхід, який відповідав моїм потребам. Я ділюсь підходом і моїми міркуваннями, чому я обрав саме такий підхід. Пост довший, ніж мені хотілося б, але я вважаю, що скріншоти завжди корисні. Сподіваємось, відповідь комусь буде корисна.

Мої вимоги були такими:

  1. Додайте фрагменти коду до документа з текстом із виділенням синтаксису для полегшення видимості та диференціації коду та іншого тексту.
  2. Фрагмент коду повинен відповідати іншому тексту.
  3. Фрагмент коду повинен плавно розбиватися на сторінки без зайвих зусиль.
  4. Фрагмент коду повинен мати чітку межу.
  5. У фрагменті коду має бути відключена перевірка орфографії.

Мій підхід наведений нижче:

  1. Використовуйте зовнішній інструмент для досягнення вимоги до виділення синтаксису 1 вище. Можна використовувати блокнот плюс плюс, як описано вище. Однак я використовую присутній тут інструмент - http://www.planetb.ca/syntax-highlight-word . Це дає мені можливість використовувати номер рядка, а також дуже приємне підсвічування синтаксису (Будь ласка, використовуйте Google Chrome для цього кроку, оскільки підсвітка синтаксису не скопіюється під час використання Mozilla Firefox, на що також вказували пару коментарів користувачів). Кроки для виділення синтаксису наведені нижче:
    • Відкрийте веб-сайт, вказаний вище, у хромі та скопіюйте фрагмент коду в текстову область. Я буду використовувати зразок XML, щоб продемонструвати це (зразок XML звідси - http://www.service-architecture.com/articles/object-oriented-databases/xml_file_for_complex_data.html ).
    • Виберіть мову зі спадного меню.
    • Натисніть кнопку "Показати виділене". Це відкриє нову вкладку із виділеним синтаксисом фрагментом коду, в цьому випадку обраний нами XML. Наприклад, дивіться зображення нижче. Зображення показує зразок XML, який вставляється в текстовій області, мовою, вибраною як XML та кнопкою.
    • Щоб вимкнути номери рядків, огляньте сторінку в хромі. Потім під стилями зніміть позначку властивості "margin" у ".dp-маркері ol", як показано на зображенні нижче. Якщо ви хочете зберегти номери рядків, перейдіть до наступного кроку.
    • Виберіть код, виділений синтаксисом, та натисніть копію. Тепер ваш код готовий вставити в слово Microsoft. Результат виділеного синтаксисом 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.
    • Застосовуйте кордон, як вам подобається. Я використав розмір 1pt. Отриманий фрагмент слова Microsoft з’явиться, як показано на скріншоті нижче. Зверніть увагу на те, як красиво вона розбивається по всій сторінці - НЕ зайвих зусиль, необхідних для управління цим, з якими ви зіткнулися б, якщо вставити об’єкт "OpenDocument Text" або використовувати "Simple TextBox". Синтаксичний фрагмент коду, вставлений у таблицю Microsoft Word
  3. Для досягнення вимоги 5 виконайте наведені нижче дії:

    • Виберіть всю таблицю або текст.
    • Перейдіть на вкладку Огляд. У розділі Мова виберіть "Мова підтвердження". Буде представлено нове спливаюче вікно.
    • Виберіть "Не перевіряйте правопис та граматику". Потім натисніть кнопку ОК. Вимкнути перевірку орфографії
    • Отриманий текст вимкнено перевірку орфографії. Кінцевий результат показаний на зображенні нижче та відповідає всім вимогам. Підсумковий результат - відповідає всім 5 вимогам.

Будь ласка, вкажіть, якщо у вас є якісь відгуки чи вдосконалення, або ви зіткнулися з будь-якими проблемами підходу.


2
Дякую! Чудово виглядає ... Мені довелося користуватися Google Chrome, оскільки Mozilla Firefox не копіював підсвічування синтаксису.
loveMeansNothing

Я думаю, що це найкраще рішення. Ще одна порада: якщо ви не хочете перевірки орфографії, але не пишете англійською мовою, вставте код як об'єкт "Відкритий текст документа". Перейдіть до INSERT - OBJECT - і виберіть OpenDocument Text. Вставте код у відкритий документ, а потім збережіть і закрийте. Код відображається як вище, але правопис повністю ігнорується. Єдиним недоліком може бути те, що номер не працює належним чином, якщо ви хочете включити його в підпис до списку. Гавент це перевірив.
користувач3629892

@ user3629892 Я подумав, що з відкритим документом ви не зможете гарно перегортати різні сторінки.
маракуя-сік

Чи є можливість отримати цю гарну облямівку і для номерів рядків під час копіювання в слово.
Параміш Корракуті

1
@ Capt.Krusty - У пункті 1, пункти 1 і 5, я вже згадував про використання Chrome. Але я продовжую додавати "Google Chrome" так, як ви і любитеMeansNothing.
Абхішек

23

Вам потрібно визначити стиль у вашому документі Word і використовувати його для вихідного коду. Зазвичай у мене є стиль під назвою "Код", який має односхилий шрифт невеликого розміру точки, вкладки фіксованого розміру, проміжок між рядками, без інтервалу перед / після абзацу тощо. Ви повинні визначити цей стиль лише один раз, а потім повторно використовувати його. Ви вставляєте свій вихідний код і застосовуєте до нього стиль "Код".

Зауважте, що деякі редактори (наприклад, Xcode на Mac) додають RTF, а також текст до буфера обміну при копіюванні / вставці між додатками - Word розпізнає RTF та корисно зберігає форматування, забарвлення синтаксису тощо.

Вихідний код у Xcode:

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

Скопійовано та вставлено у Word:

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

(Примітка. Це гарна ідея відключити перевірку орфографії у вашому стилі "Код" у Word.)


Однак це автоматично не додає стилю до ключових слів, цифр, рядків тощо
Барт

@Bart: взагалі ні, але для тих, хто використовує Xcode (для розробки Mac OS X, iOS тощо), буфер обміну містить RTF з усіма забарвленнями синтаксису тощо, і Word це приймає. Можливо, є й інші редактори, які також мають цю корисну функцію, але я їх не знаю.
Пол Р

RTF працює, так, я раніше це використовував, використовуючи Notepad ++ для Word. Однак було б дуже приємно, якби був спосіб додати реальний стиль коду, тобто такий, який виділяє синтаксис автоматично. Соромно, нічого подібного начебто не існує. Зрозуміло, ви можете встановити додатки, які можна виділити на вимогу, але я ще не знайшов такого, який зможе легко перевлаштувати всі блоки коду в інший стиль.
Барт

Я не думаю, що це підтримує підписи?
Олівер

@Schollii: Я думаю, що підписи можна застосовувати лише до «об’єктів» у Word. Я думаю, ви можете помістити код у таблицю 1x1, яка б потім зробила його об'єктом?
Пол Р

11

Це залежить від IDE. Наприклад, Visual Studio і Eclipse дозволять вам копіювати як RTF і вставляти в Word, зберігаючи все своє форматування.

У Notepad ++ є плагін під назвою "NppExport" (поставляється заздалегідь встановлений), який дозволяє копіювати на RTF, хоча мені не дуже важливо виділення синтаксису Notepad ++ (проте, безумовно, це може бути прохідним). Що він робить, це підтримка десятків мов, тоді як вищезгадані IDE обмежені кількома (без інших плагінів).


1
Мені пощастило як з VS, так і з Eclipse робити саме це - використовуючи редактор IDE, щоб зробити забарвлення синтаксису (і будь-яке форматування, яке мені подобається), потім вирізати та вставляти безпосередньо у слово. Я зазвичай дотримуюсь цього, встановлюючи шрифт у фрагменті на шрифт фіксованої ширини (він не завжди
траплявся

3

Це пов’язано з цією відповіддю: https://stackoverflow.com/a/2653406/931265 Створення об’єкта вирішило усі мої проблеми.

Вставка> Об'єкт> Текст документа

Це відкриє вікно документа, вставить текст, відформатує його як потрібно та закриє.

Результат - цифра. Клацніть правою кнопкою миші об’єкт і виберіть "Додати підпис".

Тепер ви можете робити перехресні посилання, створювати таблицю фігур.


Коли ви перехрещуєте підписи, він вставляє цілий код, а також як вирішити цю проблему?
MonsterMMORPG


1

Для цього можна використовувати Open Xml Sdk. Якщо у вас є код у HTML з кольором та форматуванням. Ви можете використовувати altchunks, щоб додати їх до документів word. Перегляньте цю публікацію Додати HTML-рядок до документа OpenXML (* .docx) Сподіваюся, що це допоможе!




1

Якщо ви все ще шукаєте простий спосіб додати фрагменти коду.

ви можете легко перейти до [Вставити]> [Об'єкт]> [Текст документа]> вставити код> Зберегти та закрити.

Ви також можете помістити це в макрос і додати його до своєї простої панелі доступу.

примітки:

  • Це займе лише одну сторінку коду.
  • Ваш код не буде автоматично виправлено .
  • Ви можете взаємодіяти з ним лише двічі клацнувши по ньому.

1

У Word можливо вставити код, який використовує колір, щоб відмежувати коментарі від коду, використовуючи "Вставити формат збереження джерела". Однак якщо ви використовуєте вставлений код для створення нового стилю, Word автоматично знімає кольоровий текст і змінює їх на чорний (або будь-який колір автоматичного за замовчуванням). Оскільки застосування стилю - найкращий спосіб забезпечити відповідність вимогам формату документа, Word не дуже корисний для документування програмних програм. На жаль, я не пам'ятаю, щоб Open Office був кращим. Найкраща робота - використовувати просте текстове поле за замовчуванням.


1

Я спробував всі ваші методи, але вони не спрацювали для мене, адже я створив простіший метод, використовуючи MS Word Tables .

Плюси:

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

Мінуси: забарвлення коду не підтримуватиме, хоча хтось може покращити мою хитрість.

Кроки:

  1. Вставте таблицю 3х3, у моєму випадку я завжди роблю загальну ширину таблиці рівною вільній ширині сторінки ( мінімум 3 рядки для тестування стилю таблиць ).

  2. Використовуйте невидимі межі ( опція " Без кордонів " ) та активуйте опцію " Переглянути сітки ". він повинен мати цей аспект. Майте на увазі, що ці рядки призначені для того, щоб побачити сітку таблиці, і не буде надруковано.

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

  1. Внесіть налаштування між проміжками та шириною стовпців, щоб отримати потрібний вам аспект. ( Вам потрібно буде потрапити в " Властивості таблиці " для тонкої настройки ). введіть тут опис зображення

  2. Створіть " Стиль абзацу " з назвою " Код " лише для фрагментів коду ( перевірте https://stackoverflow.com/a/25092977/8533804, щоб отримати ідею, вам не потрібно буде дотримуватися її)

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

  4. У новостворений " Code_numberline " додайте стиль нумерації, який вам подобається (це автоматизує нумерацію рядків). введіть тут опис зображення

  5. Застосувати " Code_numberline " до першого стовпця та " Code " до 3-го стовпця. введіть тут опис зображення

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

  7. Збережіть стиль таблиці та насолоджуйтесь!


Чудово, поки ви сказали Зберегти стиль таблиці .
Мартін Гессле

@MartinofHessle, добре для розширених документів, де ви будете заповнювати його фрагментами коду, у багатьох місцях можливість збереження цього стилю таблиць - це економія часу, окрім того, це дозволяє вам змінювати стиль таблиці протягом усього документу без проблем, як у моєму випадку де у мене є стиль для IDE та IDLE ... з іншого боку, якщо ви використовуєте лише одну таблицю, тоді ви можете опустити останній крок
Надер Белал

Я згоден з тим, чому. Це було, як сказати це нормальному.до, щоб воно зберігалося, що було б корисним доповненням. Я зрозумів це, але це було не очевидно.
Мартін Гесслі

@MartinofHessle простите мене, але я не зрозумів вашого останнього твердження. Чи можете ви повторити це ще простіше?
Надер Белал

1
Вибачте, помилка друку , повинна була бути як зберегти його до normal.dot .
Мартін Гесслі

1

Використовуйте це - http://hilite.me/

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

Як: Просто скопіюйте вихідний код на ліву панель, виберіть мову та колірну схему та натисніть «Виділити!». HTML з правої панелі тепер можна вставити у ваш блог чи електронну пошту, жодні зовнішні файли CSS або Javascript не потрібні.

Для документа Microsoft Word: Скопіюйте вміст із розділу « Попередній перегляд» та вставте у документ Microsoft Word.

3 розділи: Вихідний код, HTML та попередній перегляд


0

Існує простий спосіб, якщо ви хочете просте форматування коду.

  1. Відкрийте слово> вкладка Вставка> натисніть "Отримати надбудови"
  2. шукайте "Змішувач вмісту" 3. натисніть "Додати"

Тоді додавання змішувача вмісту відкриється автоматично, і ви можете скопіювати вставити свій код туди і натиснути «Вставити», щоб вставити його у word doc.


0

Ці відповіді виглядають застарілими та досить стомлюючими порівняно з веб-додатком; який доступний для продуктів з Office 2013.

Я використовую Easy Code Formatter , який дозволяє кодувати текст на місці. Тут також надаються параметри нумерації рядків, виділення, різні стилі та стилі, відкриті тут: https://github.com/armhil/easy-code-formatter-styles, щоб ви могли продовжити стилізацію самостійно. Щоб встановити - відкрийте Microsoft Word, перейдіть на вкладку Вставити / натисніть "Отримати надбудови" та знайдіть "Легкий формат коду"

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.