Comment ajouter du code formaté à un document Microsoft Word?

29

J'ai besoin d'écrire un document dans MS-Word 2007 qui contient de nombreux exemples de code VB.NET et C #.

Quelle est la meilleure façon d'obtenir un code raisonnable dans le document?

Quels styles, etc., les gens utilisent-ils?

(Je n'ai pas le temps de modifier / formater le code à la main, et je serais très heureux s'il avait simplement la même apparence que dans Developer Studio)

Dans d'autres travaux, que font les gens qui écrivent des livres de programmation, il doit y avoir une bonne solution automatisée pour cela ...


Je voudrais un moyen d'utiliser des feuilles de styles de mots pour contrôler à quoi ressemble le code, mais je ne souhaite pas avoir à "sélectionner" chaque mot clé, etc. pour définir son style.


voir également https://stackoverflow.com/questions/387453/how-do-you-display-code-snippets-in-ms-word-preserving-format-and-syntax-highlig/2653406#2653406

Ian Ringrose
la source
Vous pourriez trouver stackoverflow.com/questions/760121/… utile.
voyager
De @ user1068538: Ce lien peut être utile stackoverflow.com/a/2653406/1068538 . Je pense que la réponse de @ gargamel (dans le lien ci-dessus vers SO) est le moyen le plus simple d'utiliser le code de programmation dans un document Word, surtout si vous écrivez un livre, car il ne montre pas d'orthographe.
fixer1234

Réponses:

14

Vous pouvez utiliser les services de mise en évidence des sources et copier / coller dans un document Word. Je pense que ce sera le moyen le plus rapide ( upd. Un simple copypaste de VS fonctionnera également).

La deuxième façon consiste à créer un style pour le bloc de code, à l'enregistrer puis à l'appliquer à tous les blocs de code.

sashaeve
la source
1
comment utiliser les "services de mise en évidence des sources"?
Ian Ringrose
4
Par exemple, accédez à source.virtser.net , collez le code C #, mettez en surbrillance, copiez la sortie et collez-le dans Word.
Le lien source.virtser.net donne l'erreur "Page non trouvée", "La page à laquelle vous avez essayé d'accéder n'existe pas sur ce serveur ..."
JohnC
11

Word ne prend pas en charge nativement la mise en évidence de la syntaxe ou toute autre mise en forme de code. En tant que tel, il est préférable de créer le surlignage, etc. dans un programme différent (Visual Studio, Eclipse, Notepad ++, ou ce site Web qui peut faire 14 langues et ne nécessite aucune installation).

Cependant, lorsque vous collez le texte, le faire directement dans le document Word lui-même peut entraîner des maux de tête tels que l'orthographe et la grammaire.

Pour résoudre ce problème, au lieu de copier et coller directement, utilisez Insertion -> Objet -> Texte OpenDocument . Cela ouvrira un nouveau document. Collez le texte ici et fermez la fenêtre. Votre code sera maintenant affiché comme un objet, avec tous les formats mis en évidence dans la fenêtre précédente, mais sans vérification orthographique ou grammaticale.

Bien qu'il soit possible de formater du code avec des styles, il n'y a pas de styles intégrés pour ce faire, et ce n'est pas vraiment ce que les styles sont censés faire. Si vous souhaitez utiliser des styles pour formater votre code, utilisez simplement ce style dans tous les objets que vous créez.

Mise à jour: Si vous souhaitez le faire avec des styles de code, voici quelques idées.

  • Utiliser un style de paragraphe avec une police à espacement fixe
  • Fond clair (le gris fonctionne bien)
  • Orthographe désactivée
  • Assurez-vous que l'espacement des lignes est comme vous le souhaitez

Si vous souhaitez ajouter un peu plus de complexité, vous pouvez superposer des styles de caractères au-dessus du style de paragraphe pour créer quelque chose de similaire à l'aperçu du code sur stackoverflow avec une mise en forme et / ou une couleur différente pour les noms de classe, les noms d'instance, etc.

La configuration du style comme cela prend du travail, mais vous pouvez obtenir un résultat plus personnalisable par rapport à ce que vous pouvez obtenir en utilisant la coloration syntaxique à partir du bloc-notes ++ ou de Visual Studio.

En tant qu'accélération lors de la mise en forme du code avec un style, il peut être utile de commencer par mettre en évidence la syntaxe dans l'un de ces programmes, puis d'utiliser l'utilitaire de recherche de Word pour rechercher du texte qui correspond à une couleur ou à un autre style de police afin que vous n'ayez pas à identifier manuellement ce qu'est un nom de classe par exemple dans le code manuellement (il est sous plus-> format dans l'invite de recherche).

soandos
la source
@ianRingrose y a-t-il une autre fonctionnalité que vous recherchez?
soandos
Je souhaite que la syntaxe hilighting soit effectuée avec des styles de mots afin que je puisse facilement changer la taille des caractères, etc.
Ian Ringrose
@IanRingrose, mis à jour. Faites-moi savoir s'il manque quelque chose.
soandos
Je pense que c'est l'une des meilleures façons de formater le code dans Word. J'ai toujours eu des problèmes avec le formatage, et en tant qu'objet je n'ai plus de problème. Merci beaucoup ; )
xtarsy
Dans MS Word 2007 et plus, une alternative à "Insérer -> Objet -> Texte OpenDocument" consiste à sélectionner le code après l'avoir collé et à utiliser Révision | Épreuvage | Définissez la langue et assurez-vous que "Ne pas vérifier l'orthographe ou la grammaire" est sélectionné. Vous devrez peut-être appliquer ce paramètre plus d'une fois pour le faire coller.
JohnC
3

Si vous configurez votre VS pour qu'il ressemble à ce à quoi vous voulez qu'il ressemble dans le document, un simple copier-coller du code fonctionnera. Il préservera les couleurs et autres formats.

Cependant, si vous souhaitez modifier le style du document, cela sera très difficile à gérer. Dans ce cas, créer un codestyle dans Word et vous assurer que tout le code collé est défini est la façon de procéder (alors, si vous changez le style, tout ce qui est marqué comme ce style changera). Cela ne vous permettra pas d'avoir une coloration syntaxique comme dans VS.

Oded
la source
Il existe certaines préoccupations, par exemple à quoi ressemblera une ligne plus longue que la largeur du document?
voyager