Quelle est la meilleure façon d'insérer des exemples de code source dans un document Microsoft Word?

131

Je dois écrire des documents qui incluront des exemples de code source. Certains des exemples seront écrits à partir de l'EDI, et d'autres seront écrits sur place. Mes exemples sont principalement en Java.

En tant que personne habituée à LaTeX, faire cela dans Word est extrêmement douloureux. Cependant, je suis lié à Word pour cela. Les seules options que j'ai vues sont:

  1. Écrivez ou copiez dans le document, puis utilisez une police de type fixe, organisez la mise en forme et espérez que Word n'a pas fait de majuscules pour vous. Inutile de dire que cela ressemble à de la merde.
  2. Copiez et collez des captures d'écran du code source de l'EDI. Au moins je garde les couleurs. Cependant, si je change la taille de ma police, je suis foutu. Je suis également foutu au-delà des limites de la page. Et admettons-le, Word n'est pas excellent pour gérer plusieurs images sur un document.
  3. Écrivez du HTML (pas vraiment une option ici)

Existe-t-il une meilleure façon (et idéalement portable) de le faire? Existe-t-il au moins une sorte de style verbatim similaire à l'environnement LaTeX? Y a-t-il au moins une jolie imprimante que je pourrais copier-coller en RTF?

Uri
la source
Russel: Je ne suis pas sûr de comprendre.
Uri
2
Je pense que c'est probablement plus approprié pour le superutilisateur. Ce n'est pas parce que l'élément que vous insérez dans le document est du code qu'il s'agit d'une question de programmation.
danben
2
@danben: Je suppose. J'ai juste pensé que les exemples de code dans les documents Word sont quelque chose que la plupart des programmeurs finissent par faire dans leur travail quotidien.
Uri
1
Êtes-vous lié au format Word-le-programme ou Word-the-file?
Ken

Réponses:

186

Je déteste et méprise absolument travailler gratuitement pour Microsoft, étant donné qu'après tous ces milliards de dollars, ils n'ont TOUJOURS pas de bons guides sur des trucs comme celui-ci avec des captures d'écran sur leur foutu site Web.

Quoi qu'il en soit, voici un guide rapide dans Word 2010, utilisant Notepad ++ pour la coloration de la syntaxe, et une zone de texte qui peut être légendée:

  1. Choisissez Insertion / Zone de texte / Zone de texte simple
    01 mot
  2. Une zone de texte par défaut est insérée
    02word
  3. Basculez vers NPP, choisissez le langage de coloration syntaxique de votre code, allez dans Plugins / NPPExport / Copier RTF dans le presse-papier
    03npp
  4. Revenez au mot et collez-le dans la zone de texte - il est peut-être trop petit ...
    04word
  5. ... vous devrez peut-être changer sa taille
    05word
  6. Après avoir sélectionné la zone de texte, cliquez dessus avec le bouton droit de la souris, puis choisissez Insérer une légende ...
    06 mot
  7. Dans le menu Légende, si vous n'en avez pas déjà, cliquez sur Nouvelle étiquette et définissez la nouvelle étiquette sur "Code", cliquez sur OK ...
    07word
  8. ... puis dans la boîte de dialogue Légende, changez le libellé en Code et appuyez sur OK
    08 mot
  9. Enfin, tapez votre légende dans la zone de légende nouvellement créée
    09word
sdaau
la source
Lorsque vous croisez la légende, il insère tout le code lui-même pour résoudre ce problème?
MonsterMMORPG
1
Dans Word 2013, le texte est le code est collé sous forme de texte brut, aucun moyen de conserver le format de Notepad ++
Jose Nobile
2
@JoseNobile vous devez utiliser le plugin NppExport dans Notepad ++
NeilenMarais
1
Il fonctionne également avec Android Studio, Visual Studio et Eclipse.
Teocci
J'ai d'abord utilisé la même technique, mais j'ai depuis changé pour utiliser un tableau de 1x1 car j'ai trouvé que les zones de texte sont une douleur f'ing à positionner. J'ai essayé "haut et bas" pour que le texte soit seulement avant et après, et Word déplaçait magiquement la boîte vers le haut ou vers le bas, parfois la légende ne serait pas visible, ah quelle douleur. J'ai commencé à utiliser des tables aujourd'hui basées sur un autre SO QA, fonctionnant jusqu'à présent bien. Je crée un nouveau type d'étiquette de légende "Listing".
Oliver
26

Je suis récemment tombé sur ce post et j'ai trouvé des conseils utiles. Cependant, j'ai fini par utiliser une approche totalement différente qui correspondait à mes besoins. Je partage l'approche et mon raisonnement sur les raisons pour lesquelles j'ai choisi cette approche. Le message est plus long que je ne l'aurais souhaité, mais je pense que les captures d'écran sont toujours utiles. Espérons que la réponse serait utile à quelqu'un.

Mes exigences étaient les suivantes:

  1. Ajoutez des extraits de code à un document Word, avec une coloration syntaxique pour une visibilité et une différenciation plus faciles du code et d'autres textes.
  2. L'extrait de code doit être en ligne avec un autre texte.
  3. L'extrait de code doit passer d'une page à l'autre sans effort supplémentaire.
  4. L'extrait de code doit avoir une belle bordure.
  5. L'extrait de code doit avoir la vérification orthographique désactivée.

Mon approche est la suivante:

  1. Utilisez un outil externe pour atteindre l'exigence de coloration syntaxique 1 ci-dessus. On pourrait utiliser notepad plus plus comme décrit ci-dessus. Cependant, j'utilise l'outil présent ici - http://www.planetb.ca/syntax-highlight-word . Cela me donne la possibilité d'utiliser le numéro de ligne, ainsi qu'une très belle coloration syntaxique (veuillez utiliser Google Chrome pour cette étape, car la coloration syntaxique n'est pas copiée lors de l'utilisation de Mozilla Firefox, comme l'ont également souligné quelques commentaires d'utilisateurs). Les étapes pour obtenir la coloration syntaxique sont répertoriées ci-dessous:
    • Ouvrez le site Web fourni ci-dessus dans Chrome et copiez l'extrait de code dans la zone de texte. J'utiliserai un exemple de XML pour démontrer cela (exemple de XML à partir d'ici - http://www.service-architecture.com/articles/object-oriented-databases/xml_file_for_complex_data.html ).
    • Sélectionnez la langue dans le menu déroulant.
    • Cliquez sur le bouton "Afficher les éléments en surbrillance". Cela ouvrira un nouvel onglet, avec un extrait de code mis en évidence par la syntaxe, dans ce cas l'exemple XML que nous avons choisi. Voir l'image ci-dessous par exemple. L'image montre un exemple de XML collé dans la zone de texte, la langue sélectionnée comme XML et le bouton.
    • Pour désactiver les numéros de ligne, inspectez la page dans Chrome. Ensuite, sous styles, désélectionnez la propriété "margin" dans ".dp-highlighter ol", comme indiqué dans l'image ci-dessous. Si vous souhaitez conserver les numéros de ligne, passez à l'étape suivante.
    • Sélectionnez le code en surbrillance de syntaxe et cliquez sur copier. Votre code est maintenant prêt à être collé dans Microsoft Word. Résultat du XML mis en évidence par la syntaxe Merci à ce blog pour avoir fourni ces informations - http://idratherbewriting.com/2013/04/04/adding-syntax-highlighting-to-code-examples-online-and-in-microsoft-word/ .
  2. Pour répondre aux exigences 2, 3 et 4 ci-dessus, utilisez table dans Microsoft Word pour insérer l'extrait de code. Les étapes sont énumérées ci-dessous:

    • Insérez un tableau avec une seule colonne.
    • Collez le texte copié de l'étape 1. dans la colonne du tableau. J'ai conservé les numéros de ligne pour montrer à quel point cela fonctionne avec Microsoft Word.
    • Appliquez une bordure, comme vous le souhaitez. J'ai utilisé la taille 1pt. L'extrait de mot Microsoft résultant apparaîtra comme indiqué dans la capture d'écran ci-dessous. Notez à quel point il se brise sur la page - AUCUN effort supplémentaire n'est nécessaire pour gérer cela, ce que vous auriez à faire si vous insérez un objet "OpenDocument Text" ou si vous utilisez "Simple TextBox". Extrait de code mis en évidence par la syntaxe collé dans le tableau Microsoft Word
  3. Pour atteindre l'exigence 5, suivez les étapes ci-dessous:

    • Sélectionnez le tableau entier ou le texte.
    • Accédez à l'onglet Révision. Sous Langue, choisissez "Langue de vérification". Un nouveau pop-up sera présenté.
    • Sélectionnez "Ne pas vérifier l'orthographe ou la grammaire". Cliquez ensuite sur OK. Désactiver la vérification orthographique
    • La vérification orthographique du texte résultant est désactivée. Le résultat final est montré dans l'image ci-dessous et répond à toutes les exigences. Résultat final - répond à toutes les 5 exigences.

Veuillez indiquer si vous avez des commentaires ou des améliorations ou si vous rencontrez des problèmes avec l'approche.

abhishek
la source
2
Merci! Ça a l'air génial ... J'ai dû utiliser Google Chrome parce que Mozilla Firefox ne copiait pas la coloration syntaxique.
loveMeansNothing
Je pense que c'est la meilleure solution. Un dernier conseil: si vous ne voulez pas la vérification orthographique mais que vous n'écrivez pas en anglais, insérez le code en tant qu'objet Open Document Text. Allez dans INSERT - OBJECT - et choisissez OpenDocument Text. Insérez le code dans le document ouvert, puis enregistrez et fermez. Le code est affiché comme ci-dessus mais l'orthographe est entièrement ignorée. Le seul inconvénient peut être que le numéro ne fonctionne pas correctement, si vous souhaitez l'inclure dans la légende de la liste. Havent a vérifié cela.
user3629892
@ user3629892 Je pensais qu'avec Open Document, vous ne pouvez pas bien envelopper différentes pages.
maracuja-juice
Y a-t-il une possibilité d'obtenir cette belle bordure pour les numéros de ligne lors de la copie dans Word.
Paramesh Korrakuti
1
@ Capt.Krusty - Au point 1, puce 1 et 5, j'avais déjà mentionné l'utilisation de Chrome. Mais, je vais aller de l'avant et ajouter "Google Chrome" comme vous et loveMeansNothing suggéré.
abhishek
23

Vous devez définir un style dans votre document Word et l'utiliser pour le code source. J'ai généralement un style appelé "Code" qui a une police à espacement fixe dans une petite taille de point, des tabulations de taille fixe, un interligne simple, pas d'espacement entre les paragraphes avant / après, etc. Vous n'avez besoin de définir ce style qu'une seule fois et de le réutiliser. Vous collez votre code source et lui appliquez le style "Code".

Notez que certains éditeurs (par exemple Xcode sur Mac) ajoutent du RTF ainsi que du texte au presse-papiers lors du copier / coller entre applications - Word reconnaît le RTF et conserve utilement la mise en forme, la coloration de la syntaxe, etc.

Code source dans Xcode:

entrez la description de l'image ici

Copié et collé dans Word:

entrez la description de l'image ici

(Remarque: c'est une bonne idée de désactiver la vérification orthographique dans votre style "Code" dans Word.)

Paul R
la source
Cependant, cela n'ajoute pas automatiquement du style aux mots-clés, aux nombres, aux chaînes, etc.
Bart
@Bart: en général, non, mais pour ceux qui utilisent Xcode (pour le développement Mac OS X, iOS, etc.) le presse-papiers contient du RTF avec toutes les couleurs de syntaxe, etc., et Word l'accepte. Il est possible que d'autres éditeurs aient également cette fonctionnalité utile, mais je n'en suis pas au courant.
Paul R
RTF fonctionne, oui, j'ai également utilisé cela dans le passé en utilisant Notepad ++ vers Word. Cependant, ce serait très bien s'il y avait un moyen d'ajouter un vrai style de code, c'est-à-dire un style qui fasse automatiquement la coloration syntaxique. C'est vraiment dommage que rien de tel ne semble exister. Certes, il existe des modules complémentaires que vous pouvez installer et qui peuvent être mis en évidence à la demande, mais je n'en ai pas encore trouvé un qui puisse facilement remodeler tous vos blocs de code avec un style différent si vous le souhaitez.
Bart
Je ne pense pas que cela prend en charge le sous-titrage, n'est-ce pas?
Oliver
@Schollii: Je pense que les légendes ne peuvent être appliquées qu'aux «objets» dans Word. Je suppose que vous pourriez mettre le code dans une table 1x1, ce qui en ferait alors un objet?
Paul R
11

Cela dépend en quelque sorte de l'IDE. Visual Studio et Eclipse , par exemple, vous permettront de copier au format RTF et de le coller dans Word, en conservant toute votre mise en forme.

Notepad ++ a un plugin appelé "NppExport" (livré pré-installé) qui vous permet de copier en RTF, bien que je ne me soucie pas beaucoup de la coloration syntaxique de Notepad ++ (ce serait certainement passable cependant). Il prend en charge des dizaines de langues, tandis que les IDE susmentionnés sont limités à une poignée chacun (sans autres plug-ins).

Cᴏʀʏ
la source
1
J'ai eu de la chance avec VS et Eclipse pour faire exactement cela - en utilisant l'éditeur de l'EDI pour faire la coloration de la syntaxe (et tout formatage que j'aime), puis couper et coller directement dans Word. Je fais généralement le suivi en définissant la police de l'extrait de code sur une police de largeur fixe (cela ne m'a pas toujours semblé)
heckj
3

Ceci est lié à cette réponse: https://stackoverflow.com/a/2653406/931265 La création d'un objet a résolu tous mes problèmes.

Insertion> Objet> Texte du document ouvert

Cela ouvrira une fenêtre de document, collera votre texte, le formatera comme vous le souhaitez et le fermera.

Le résultat est une figure. Cliquez avec le bouton droit sur l'objet et sélectionnez «ajouter une légende».

Vous pouvez maintenant faire des références croisées, créer une table de figures.

rickfoosusa
la source
Lorsque vous croisez la légende, il insère tout le code, comment résoudre ce problème?
MonsterMMORPG
1

Vous pouvez utiliser Open Xml Sdk pour cela. Si vous avez le code en html avec la couleur et la mise en forme. Vous pouvez utiliser altchunks pour l'ajouter aux documents Word. Référez-vous à ce post Ajouter une chaîne HTML au document OpenXML (* .docx) J'espère que cela vous aidera!

Mohamed Alikhan
la source
1

Si vous recherchez toujours un moyen simple d'ajouter des extraits de code.

vous pouvez facilement aller dans [Insérer]> [Objet]> [Ouvrir le texte du document]> coller votre code> Enregistrer et fermer.

Vous pouvez également le mettre dans une macro et l'ajouter à votre barre d'accès facile.

Remarques:

  • Cela ne prendra qu'une page de code.
  • Votre code sera pas être autocorrected .
  • Vous ne pouvez interagir avec lui qu'en double-cliquant dessus.
Viande
la source
1

Dans Word, il est possible de coller du code qui utilise la couleur pour différencier les commentaires du code à l'aide de «Coller conserver la mise en forme source». Toutefois, si vous utilisez le code collé pour créer un nouveau style, Word supprime automatiquement le texte codé en couleur et le change en noir (ou quelle que soit la couleur par défaut automatique). Étant donné que l'application d'un style est le meilleur moyen de garantir la conformité aux exigences de format de document, Word n'est pas très utile pour documenter les programmes logiciels. Malheureusement, je ne me souviens pas qu'Open Office soit meilleur. La meilleure solution consiste à utiliser la zone de texte simple par défaut.

user10128757
la source
1

J'ai essayé toutes vos méthodes, mais elles n'ont pas fonctionné pour moi, en fait, j'ai créé une méthode plus simple en utilisant des tableaux MS Word .

Avantages:

  1. Plus beau
  2. Plus facile à gérer et plus cohérent
  3. Sont moins sujets aux problèmes
  4. Pas besoin de plugins externes ou de micro-codage MS Word.
  5. Plus facile à manipuler par des utilisateurs simples ( comme moi ).

Inconvénients: Cela ne maintiendra pas la coloration du code bien que quelqu'un puisse améliorer mon astuce.

Pas:

  1. Insérez un tableau 3x3, dans mon cas je fais toujours que la largeur totale du tableau soit égale à la largeur de la page libre ( 3 lignes minimum pour tester le style des tableaux ).

  2. Utilisez des bordures invisibles ( option « Sans bordures » ) et activez l' option « Afficher le quadrillage ». il devrait avoir cet aspect. N'oubliez pas que ces lignes vous permettent de voir la grille du tableau et que le ne sera pas imprimé.

entrez la description de l'image ici

  1. Ajustez l'espacement des cellules et la largeur des colonnes pour obtenir l'aspect que vous aimez. ( Vous devrez entrer dans " Propriétés de la table " pour un réglage fin ). entrez la description de l'image ici

  2. Créez un " Style de paragraphe " avec le nom de " Code " juste pour vos extraits de code ( vérifiez https://stackoverflow.com/a/25092977/8533804 pour avoir l'idée, vous n'êtes pas obligé de tout suivre)

  3. Créez un autre " Style de paragraphe " avec le nom de " Code_numberline " qui sera basé sur le style créé précédemment. entrez la description de l'image ici

  4. Dans le nouveau " Code_numberline ", ajoutez le style de numérotation que vous aimez (cela automatisera la numérotation des lignes). entrez la description de l'image ici

  5. Appliquez " Code_numberline " à la première colonne et " Code " à la colonne 3. entrez la description de l'image ici

  6. Ajoutez un remplissage dans la colonne du milieu. entrez la description de l'image ici

  7. Enregistrez ce style de table et profitez-en!

Nader Belal
la source
Parfait jusqu'à ce que vous disiez Enregistrer ce style de table .
Martin of Hessle
@MartinofHessle, bien pour les documents étendus où vous le remplirez avec des extraits de code à de nombreux endroits, l'option d'enregistrer ce style de tableau est un gain de temps, en plus cela vous permet de modifier le style de tableau dans tout le document sans tracas, comme dans mon cas où j'ai un style pour l'IDE et IDLE ... d'autre part, si vous n'utilisez qu'une seule table, vous pouvez omettre la dernière étape
Nader Belal
Je suis d'accord avec le pourquoi. C'était la façon de le dire à normal.dot de le faire persister, ce qui aurait été un ajout utile. J'ai compris mais ce n'était pas évident.
Martin of Hessle
@MartinofHessle pardonnez-moi, mais je n'ai pas compris votre dernière déclaration. Pourriez-vous le répéter en termes plus simples?
Nader Belal
1
Désolé faute de frappe, aurait dû être comment l'enregistrer dans normal.dot .
Martin of Hessle
1

Utilisez ceci - http://hilite.me/

hilite.me convertit vos extraits de code en un joli format HTML, facilement intégrable dans des articles de blog, des e-mails et des sites Web.

Comment: Copiez simplement le code source dans le volet de gauche, sélectionnez la langue et le jeu de couleurs, puis cliquez sur "Surligner!". Le HTML du volet de droite peut maintenant être collé sur votre blog ou votre courrier électronique, aucun fichier CSS ou Javascript externe n'est requis.

Pour un document Microsoft Word: copiez le contenu de la section Aperçu et collez-le dans votre document Microsoft Word.

3 sections: code source, HTML et aperçu

Saghir Hussain
la source
0

Il existe un moyen simple si vous souhaitez un formatage de code simple.

  1. Ouvrez le mot> onglet Insérer> cliquez sur "Obtenir des compléments"
  2. rechercher "Content mixer" 3. cliquer sur "Add"

Ensuite, l'ajout du mélangeur de contenu s'ouvrira automatiquement et vous pourrez copier-coller votre code là-dedans et cliquer sur "Insérer" pour l'insérer dans Word doc.

Hitesh Bisht
la source
0

Ces réponses semblent obsolètes et assez fastidieuses par rapport à la solution de complément Web; qui est disponible pour les produits depuis Office 2013.

J'utilise Easy Code Formatter , qui vous permet de codifier le texte sur place. Il vous donne également des options de numérotation de ligne, de mise en évidence, différents styles et les styles sont open source ici: https://github.com/armhil/easy-code-formatter-styles afin que vous puissiez étendre le style vous-même. Pour installer - ouvrez Microsoft Word, allez dans l'onglet Insertion / cliquez sur "Obtenir des compléments" et recherchez "Easy Code Formatter"

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

Domates Mavi
la source