Was ist der beste Weg, um Quellcodebeispiele in ein Microsoft Word-Dokument einzufügen?


131

Ich muss einige Dokumente schreiben, die Beispiele für den Quellcode enthalten. Einige der Beispiele werden aus der IDE geschrieben, andere werden an Ort und Stelle geschrieben. Meine Beispiele sind hauptsächlich in Java.

Als jemand, der an LaTeX gewöhnt ist, ist es äußerst schmerzhaft, dies in Word zu tun. Dafür bin ich jedoch an Word gebunden. Die einzigen Optionen, die ich gesehen habe, sind:

  1. Schreiben oder kopieren Sie in das Dokument, verwenden Sie dann eine feste Schriftart, ordnen Sie die Formatierung an und hoffen Sie, dass Word keine Großbuchstaben für Sie erstellt hat. Unnötig zu sagen, das sieht nach Mist aus.
  2. Kopieren Sie Screenshots des Quellcodes aus der IDE und fügen Sie sie ein. Zumindest behalte ich Farben. Wenn ich jedoch meine Schriftgröße ändere, bin ich fertig. Ich bin auch über Seitengrenzen geschraubt. Und lassen Sie es uns zugeben, Word ist nicht besonders gut darin, mehrere Bilder in einem Dokument zu verwalten.
  3. HTML schreiben (hier eigentlich keine Option)

Gibt es eine bessere (und idealerweise tragbare) Möglichkeit, dies zu tun? Gibt es zumindest einen wörtlichen Stil, der der LaTeX-Umgebung ähnelt? Gibt es mindestens einen hübschen Drucker, den ich als RTF kopieren und einfügen könnte?


Russel: Ich bin mir nicht sicher, ob ich das verstehe.
Uri

2
Ich denke, das ist wahrscheinlich besser für Superuser geeignet. Nur weil das, was Sie in das Dokument einfügen, zufällig Code ist, ist dies keine Programmierfrage.
Danben

2
@ Danben: Ich denke. Ich habe nur herausgefunden, dass Codebeispiele in Word-Dokumenten etwas sind, was die meisten Programmierer in ihrer täglichen Arbeit tun.
Uri

1
Sind Sie an Word-the-Program oder Word-the-File-Format gebunden?
Ken

Antworten:


186

Ich hasse und verachte es absolut, kostenlos für Microsoft zu arbeiten, da sie nach all den Milliarden von Dollar immer noch keine richtigen Anleitungen zu solchen Dingen mit Screenshots auf ihrer verdammten Website haben.

Wie auch immer, hier ist eine Kurzanleitung in Word 2010, die Notepad ++ zum Färben der Syntax verwendet, und eine TextBox, die mit Untertiteln versehen werden kann:

  1. Wählen Sie Einfügen / Textfeld / Einfaches Textfeld
    01Wort
  2. Ein Standardtextfeld wird eingefügt
    02word
  3. Wechseln Sie zu NPP, wählen Sie die Sprache für die Syntaxfärbung Ihres Codes und gehen Sie zu Plugins / NPPExport / RTF in Zwischenablage kopieren
    03npp
  4. Wechseln Sie zurück zu Word und fügen Sie es in das Textfeld ein - es ist möglicherweise zu klein ...
    04word
  5. ... müssen Sie möglicherweise die Größe ändern
    05word
  6. Nachdem Sie das Textfeld ausgewählt haben, klicken Sie mit der rechten Maustaste darauf und wählen Sie Beschriftung einfügen ...
    06word
  7. Wenn Sie noch kein Beschriftungsmenü haben, klicken Sie auf Neues Etikett und setzen Sie das neue Etikett auf "Code". Klicken Sie auf OK ...
    07word
  8. ... wechseln Sie dann im Dialogfeld "Beschriftung" die Bezeichnung in "Code" und klicken Sie auf "OK"
    08word
  9. Geben Sie abschließend Ihre Beschriftung in das neu erstellte Beschriftungsfeld ein
    09word

Wenn Sie eine Beschriftung mit Querverweisen versehen, wird der gesamte Code selbst eingefügt, um dieses Problem zu lösen.
MonsterMMORPG

1
In Word 2013 ist der Text Code wird als einfacher Text eingefügt, keine Möglichkeit, das Format von Notepad ++
Jose Nobile

2
@ JoseNobile müssen Sie das NppExport-Plugin in Notepad ++
NeilenMarais

1
Es funktioniert auch mit Android Studio, Visual Studio und Eclipse.
Teocci

Ich habe anfangs die gleiche Technik angewendet, bin aber seitdem auf die Verwendung einer Tabelle mit 1x1 umgestiegen, weil ich festgestellt habe, dass die Positionierung von Textfeldern sehr schwierig ist. Ich habe "oben und unten" versucht, so dass der Text nur vorher und nachher war und Word das Feld auf magische Weise nach oben oder unten bewegte. Manchmal war die Beschriftung nicht sichtbar, ah was für ein Schmerz. Begann heute mit der Verwendung von Tabellen basierend auf einer anderen SO-Qualitätssicherung und funktionierte bisher gut. Ich erstelle einen neuen Beschriftungsbezeichnungstyp "Listing".
Oliver

26

Ich bin kürzlich auf diesen Beitrag gestoßen und habe einige nützliche Hinweise gefunden. Am Ende habe ich jedoch einen völlig anderen Ansatz gewählt, der meinen Bedürfnissen entsprach. Ich teile den Ansatz und meine Argumentation, warum ich diesen Ansatz gewählt habe. Der Beitrag ist länger als ich es gerne hätte, aber ich glaube, dass Screenshots immer hilfreich sind. Hoffentlich wäre die Antwort für jemanden nützlich.

Meine Anforderungen waren folgende:

  1. Fügen Sie einem Word-Dokument Codeausschnitte hinzu, wobei die Syntax hervorgehoben wird, um die Sichtbarkeit und Unterscheidung von Code und anderem Text zu erleichtern.
  2. Das Code-Snippet muss mit dem anderen Text übereinstimmen.
  3. Das Code-Snippet muss ohne zusätzlichen Aufwand reibungslos über die Seiten verteilt werden.
  4. Code-Snippet soll einen schönen Rand haben.
  5. Bei einem Code-Snippet ist die Rechtschreibprüfung deaktiviert.

Mein Ansatz ist wie folgt:

  1. Verwenden Sie ein externes Tool, um die Syntaxhervorhebungsanforderung 1 oben zu erreichen. Man könnte Notepad Plus Plus wie oben beschrieben verwenden. Ich verwende jedoch das hier vorhandene Tool - http://www.planetb.ca/syntax-highlight-word . Dies gibt mir die Möglichkeit, die Zeilennummer sowie eine sehr schöne Syntaxhervorhebung zu verwenden (Bitte verwenden Sie für diesen Schritt Google Chrome, da die Syntaxhervorhebung bei Verwendung von Mozilla Firefox nicht kopiert wird, wie auch einige Benutzerkommentare hervorheben). Die Schritte zum Hervorheben der Syntax sind nachstehend aufgeführt:
    • Öffnen Sie die oben bereitgestellte Website in Chrome und kopieren Sie das Code-Snippet in den Textbereich. Ich werde ein XML-Beispiel verwenden, um dies zu demonstrieren (XML-Beispiel von hier - http://www.service-architecture.com/articles/object-oriented-databases/xml_file_for_complex_data.html ).
    • Wählen Sie die Sprache aus dem Dropdown-Menü.
    • Klicken Sie auf die Schaltfläche "Hervorgehoben anzeigen". Es wird eine neue Registerkarte mit einem durch die Syntax hervorgehobenen Codefragment geöffnet, in diesem Fall dem von uns ausgewählten XML-Beispiel. Siehe Bild unten zum Beispiel. Das Bild zeigt eine Beispiel-XML, die in den Textbereich eingefügt wird, die als XML ausgewählte Sprache und die Schaltfläche.
    • Überprüfen Sie die Seite in Chrom, um die Zeilennummern auszuschalten. Deaktivieren Sie dann unter Stile die Eigenschaft "Rand" in ".dp-Textmarker ol", wie in der Abbildung unten gezeigt. Wenn Sie die Zeilennummern behalten möchten, fahren Sie mit dem nächsten Schritt fort.
    • Wählen Sie den durch die Syntax hervorgehobenen Code aus und klicken Sie auf Kopieren. Jetzt kann Ihr Code in Microsoft Word eingefügt werden. Ergebnis von Syntax-hervorgehobenem XML Vielen Dank an diesen Blog für die Bereitstellung dieser Informationen - http://idratherbewriting.com/2013/04/04/adding-syntax-highlighting-to-code-examples-online-and-in-microsoft-word/ .
  2. Um die obigen Anforderungen 2, 3 und 4 zu erfüllen, verwenden Sie die Tabelle in Microsoft Word, um das Code-Snippet einzufügen. Die Schritte sind unten aufgeführt:

    • Fügen Sie eine Tabelle mit einer einzelnen Spalte ein.
    • Fügen Sie den kopierten Text aus Schritt 1 in die Tabellenspalte ein. Ich habe die Zeilennummern beibehalten, um zu zeigen, wie gut dies mit Microsoft Word funktioniert.
    • Wenden Sie den Rand an, wie Sie möchten. Ich habe Größe 1pt verwendet. Das resultierende Microsoft Word-Snippet wird angezeigt (siehe Abbildung unten). Beachten Sie, wie schön es über die Seite verteilt ist - KEIN zusätzlicher Aufwand ist erforderlich, um dies zu verwalten, der beim Einfügen eines "OpenDocument Text" -Objekts oder bei Verwendung von "Simple TextBox" entstehen würde. In der Microsoft Word-Tabelle eingefügtes Code-Snippet mit Syntax-Hervorhebung
  3. Führen Sie die folgenden Schritte aus, um Anforderung 5 zu erreichen:

    • Wählen Sie die gesamte Tabelle oder den Text aus.
    • Gehen Sie zur Registerkarte Überprüfen. Wählen Sie unter Sprache "Proofing Language". Ein neues Popup wird angezeigt.
    • Wählen Sie "Rechtschreibung oder Grammatik nicht überprüfen". Klicken Sie dann auf OK. Deaktivieren Sie die Rechtschreibprüfung
    • Der resultierende Text hat die Rechtschreibprüfung deaktiviert. Das Endergebnis ist in der Abbildung unten dargestellt und erfüllt alle Anforderungen. Endergebnis - erfüllt alle 5 Anforderungen.

Bitte geben Sie an, ob Sie Feedback oder Verbesserungen haben oder auf Probleme mit dem Ansatz stoßen.


2
Vielen Dank! Sieht gut aus ... Ich musste Google Chrome verwenden, weil Mozilla Firefox die Syntaxhervorhebung nicht kopierte.
loveMeansNothing

Ich denke, das ist die beste Lösung. Noch ein Tipp: Wenn Sie die Rechtschreibprüfung nicht möchten, aber nicht auf Englisch schreiben, fügen Sie den Code als Open Document Text-Objekt ein. Gehen Sie zu INSERT - OBJECT - und wählen Sie OpenDocument Text. Fügen Sie den Code in das geöffnete Dokument ein und speichern und schließen Sie es. Der Code wird wie oben angezeigt, die Schreibweise wird jedoch vollständig ignoriert. Der einzige Nachteil kann sein, dass die Nummer nicht richtig funktioniert, wenn Sie sie in die Beschriftung für die Auflistung aufnehmen möchten. Havent hat das überprüft.
user3629892

@ user3629892 Ich dachte, dass man mit Open Document nicht gut über verschiedene Seiten wickeln kann.
Maracuja-Saft

Gibt es eine Möglichkeit, diesen schönen Rand auch für Zeilennummern zu erhalten, während Sie in ein Wort kopieren?
Paramesh Korrakuti

1
@ Capt.Krusty - In Punkt 1, Punkt 1 und 5 hatte ich bereits erwähnt, Chrome zu verwenden. Aber ich werde "Google Chrome" hinzufügen, wie Sie und loveMeansNothing vorgeschlagen haben.
Abhishek

23

Sie müssen einen Stil in Ihrem Word-Dokument definieren und diesen für den Quellcode verwenden. Normalerweise habe ich einen Stil namens "Code", der eine monospaced Schriftart in einer kleinen Punktgröße, Registerkarten mit fester Größe, einzeiligem Abstand, keinen Abstand vor / nach Absätzen usw. enthält. Sie müssen diesen Stil nur einmal definieren und dann wiederverwenden. Sie fügen Ihren Quellcode ein und wenden den "Code" -Stil darauf an.

Beachten Sie, dass einige Editoren (z. B. Xcode auf dem Mac) beim Kopieren / Einfügen zwischen Anwendungen RTF sowie Text zur Zwischenablage hinzufügen. Word erkennt RTF und behält Formatierung, Syntaxfarbe usw. bei.

Quellcode in Xcode:

Geben Sie hier die Bildbeschreibung ein

In Word kopiert und eingefügt:

Geben Sie hier die Bildbeschreibung ein

(Hinweis: Es ist eine gute Idee, die Rechtschreibprüfung in Ihrem "Code" -Stil in Word zu deaktivieren.)


Dies fügt jedoch nicht automatisch Stil zu Schlüsselwörtern, Zahlen, Zeichenfolgen usw. hinzu
Bart

@Bart: Im Allgemeinen nein, aber für diejenigen, die Xcode verwenden (für die Entwicklung von Mac OS X, iOS usw.), enthält die Zwischenablage RTF mit allen Syntaxfarben usw., und Word akzeptiert dies. Es ist möglich, dass es andere Editoren gibt, die diese nützliche Funktion ebenfalls haben, aber ich kenne sie nicht.
Paul R

RTF funktioniert, ja, ich habe dies in der Vergangenheit auch mit Notepad ++ to Word verwendet. Es wäre jedoch sehr schön, wenn es eine Möglichkeit gäbe, einen echten Codestil hinzuzufügen , dh einen, der die Syntaxhervorhebung automatisch ausführt. Schade, dass so etwas nicht zu existieren scheint. Zugegeben, es gibt einige Add-Ons, die Sie installieren können und die bei Bedarf hervorgehoben werden können, aber ich habe noch keine gefunden, mit der Sie alle Ihre Codeblöcke problemlos mit einem anderen Stil neu formatieren können, wenn Sie möchten.
Bart

Ich glaube nicht, dass dies Untertitel unterstützt, oder?
Oliver

@Schollii: Ich denke, Untertitel können nur auf "Objekte" in Word angewendet werden. Ich denke, Sie könnten den Code in eine 1x1-Tabelle einfügen, was ihn dann zu einem Objekt machen würde?
Paul R

11

Das hängt von der IDE ab. Mit Visual Studio und Eclipse können Sie beispielsweise als RTF kopieren und in Word einfügen, wobei alle Formatierungen beibehalten werden.

Notepad ++ hat ein Plugin namens "NppExport" (vorinstalliert), mit dem Sie in RTF kopieren können, obwohl mir die Syntaxhervorhebung von Notepad ++ nicht besonders wichtig ist (es wäre aber definitiv passabel). Es unterstützt Dutzende von Sprachen, während die oben genannten IDEs auf jeweils eine Handvoll beschränkt sind (ohne andere Plug-Ins).


1
Ich hatte sowohl mit VS als auch mit Eclipse viel Glück, als ich genau dies tat - indem ich den IDE-Editor verwendete, um die Syntaxfarbe (und jede Formatierung, die ich mag) durchzuführen und dann direkt in ein Wort auszuschneiden und einzufügen.
Normalerweise setze

3

Dies hängt mit dieser Antwort zusammen: https://stackoverflow.com/a/2653406/931265 Das Erstellen eines Objekts hat alle meine Probleme gelöst.

Einfügen> Objekt> Dokumentendokument

Dadurch wird ein Dokumentfenster geöffnet, Ihr Text eingefügt, nach Ihren Wünschen formatiert und geschlossen.

Das Ergebnis ist eine Zahl. Klicken Sie mit der rechten Maustaste auf das Objekt und wählen Sie "Beschriftung hinzufügen".

Sie können jetzt Querverweise erstellen und eine Abbildungstabelle erstellen.


Wenn Sie eine Querverweisbeschriftung verwenden, wird auch der gesamte Code eingefügt. Wie kann dieses Problem gelöst werden?
MonsterMMORPG





1

Wenn Sie immer noch nach einer einfachen Möglichkeit suchen, Codefragmente hinzuzufügen.

Sie können ganz einfach zu [Einfügen]> [Objekt]> [Opendocument Text]> Code einfügen> Speichern und schließen gehen.

Sie können dies auch in ein Makro einfügen und es Ihrer einfachen Zugriffsleiste hinzufügen.

Anmerkungen:

  • Dies dauert nur bis zu einer Seite Code.
  • Ihr Code wird nicht sein autocorrected .
  • Sie können nur mit einem Doppelklick darauf interagieren .

1

In Word ist es möglich, Code einzufügen, der Farbe verwendet, um Kommentare von Code zu unterscheiden, indem Sie "Quellformatierung einfügen" einfügen. Wenn Sie jedoch den eingefügten Code verwenden, um einen neuen Stil zu erstellen, entfernt Word den farbcodierten Text automatisch und ändert ihn in Schwarz (oder in die automatische Standardfarbe). Da das Anwenden eines Stils der beste Weg ist, um die Einhaltung der Anforderungen an das Dokumentformat sicherzustellen, ist Word für die Dokumentation von Softwareprogrammen nicht sehr nützlich. Leider erinnere ich mich nicht daran, dass Open Office besser war. Die beste Lösung besteht darin, das standardmäßige einfache Textfeld zu verwenden.


1

Ich habe alle Ihre Methoden ausprobiert, aber sie haben bei mir nicht funktioniert. Tatsächlich habe ich mithilfe von MS Word-Tabellen eine einfachere Methode erstellt .

Vorteile:

  1. Schöner
  2. Einfacher zu verwalten und konsistenter
  3. Sind weniger anfällig für Probleme
  4. Keine Notwendigkeit für externe Plugins oder MS Word-Mikrocodierung.
  5. Einfacher für einfache Benutzer ( wie mich ).

Nachteile: Die Codefarbe wird nicht beibehalten, obwohl jemand meinen Trick verbessern könnte.

Schritte:

  1. Fügen Sie eine 3x3-Tabelle ein. In meinem Fall muss die Gesamtbreite der Tabelle immer der Breite der freien Seite entsprechen ( mindestens 3 Zeilen, um den Tabellenstil zu testen ).

  2. Verwenden Sie unsichtbare Rahmen ( Option " Keine Rahmen " ) und aktivieren Sie die Option " Gitterlinien anzeigen ". es sollte diesen Aspekt haben. Beachten Sie, dass diese Zeilen das Raster der Tabelle anzeigen und nicht gedruckt werden.

Geben Sie hier die Bildbeschreibung ein

  1. Nehmen Sie die Anpassungen am Zellenabstand und an der Spaltenbreite vor, um den gewünschten Aspekt zu erhalten. ( Für die Feinabstimmung müssen Sie die " Tabelleneigenschaften " aufrufen. ) Geben Sie hier die Bildbeschreibung ein

  2. Erstellen Sie einen " Absatzstil " mit dem Namen " Code " nur für Ihre Codefragmente ( überprüfen Sie https://stackoverflow.com/a/25092977/8533804 , um die Idee zu erhalten, Sie müssen nicht alles befolgen).

  3. Erstellen Sie eine anderen „ Absatzstil “ mit dem Namen „ Code_numberline “ , die auf dem vorherigen erstellten Stil basieren werden. Geben Sie hier die Bildbeschreibung ein

  4. Fügen Sie in der neu erstellten " Code_numberline " den gewünschten Nummerierungsstil hinzu (dies automatisiert die Zeilennummerierung). Geben Sie hier die Bildbeschreibung ein

  5. Wenden Sie " Code_numberline " auf die erste Spalte und " Code " auf die 3-Spalte an. Geben Sie hier die Bildbeschreibung ein

  6. Fügen Sie eine Füllung in die mittlere Spalte ein. Geben Sie hier die Bildbeschreibung ein

  7. Speichern Sie diesen Tischstil und genießen Sie!


Großartig, bis Sie sagten: Speichern Sie diesen Tischstil .
Martin von Hessle

@MartinofHessle, gut für erweiterte Dokumente, bei denen Sie es an vielen Stellen mit Codefragmenten füllen. Die Option, diesen Tabellenstil zu speichern, spart Zeit. Außerdem können Sie den Tabellenstil während des gesamten Dokuments problemlos ändern, wie in meinem Fall wo ich einen Stil für die IDE und IDLE habe ... andererseits, wenn Sie nur eine Tabelle verwenden, dann können Sie den letzten Schritt weglassen
Nader Belal

Ich stimme dem Warum zu. Es war die Art und Weise, wie man es zu normal sagt. Punkt, um es bestehen zu lassen, was eine nützliche Ergänzung gewesen wäre. Ich habe es herausgefunden, aber es war nicht offensichtlich.
Martin von Hessle

@ MartinofHessle verzeihen Sie mir, aber ich habe Ihre letzte Aussage nicht verstanden. Könnten Sie es noch einmal in einfacheren Worten wiederholen?
Nader Belal

1
Sorry Tippfehler, hätte sein sollen, wie man es in normal.dot speichert .
Martin von Hessle

1

Verwenden Sie dies - http://hilite.me/

hilite.me konvertiert Ihre Codefragmente in ein hübsch gedrucktes HTML-Format, das sich problemlos in Blog-Posts, E-Mails und Websites einbetten lässt.

Wie: Kopieren Sie einfach den Quellcode in den linken Bereich, wählen Sie die Sprache und das Farbschema aus und klicken Sie auf "Hervorheben!". Der HTML-Code aus dem rechten Bereich kann jetzt in Ihr Blog oder Ihre E-Mail eingefügt werden. Es sind keine externen CSS- oder Javascript-Dateien erforderlich.

Für Microsoft Word-Dokumente: Kopieren Sie den Inhalt aus dem Abschnitt Vorschau und fügen Sie ihn in Ihr Microsoft Word-Dokument ein.

3 Abschnitte: Quellcode, HTML und Vorschau


0

Es gibt eine einfache Möglichkeit, wenn Sie eine einfache Code-Formatierung wünschen.

  1. Öffnen Sie das Wort> Registerkarte Einfügen> klicken Sie auf "Add-Ins abrufen"
  2. Suche nach "Content Mixer" 3.Klicken Sie auf "Hinzufügen"

Dann wird das Hinzufügen des Inhaltsmixers automatisch geöffnet und Sie können Ihren Code kopieren, dort einfügen und auf "Einfügen" klicken, um ihn in das Word-Dokument einzufügen.


0

Diese Antworten sehen im Vergleich zur Web-Add-In-Lösung veraltet und ziemlich langweilig aus. Dies ist für Produkte seit Office 2013 verfügbar.

Ich verwende Easy Code Formatter , mit dem Sie den Text direkt codieren können. Außerdem erhalten Sie Optionen für die Zeilennummerierung, Hervorhebungen und verschiedene Stile. Die Stile sind hier als Open Source verfügbar: https://github.com/armhil/easy-code-formatter-styles, sodass Sie das Styling selbst erweitern können. Zum Installieren - öffnen Sie Microsoft Word, gehen Sie zur Registerkarte Einfügen / klicken Sie auf "Add-Ins abrufen" und suchen Sie nach "Easy Code Formatter".

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.