Qual è il modo migliore per inserire esempi di codice sorgente in un documento di Microsoft Word?


131

Devo scrivere alcuni documenti che includeranno esempi di codice sorgente. Alcuni esempi verranno scritti dall'IDE, mentre altri verrebbero scritti sul posto. I miei esempi sono principalmente in Java.

Come qualcuno che è abituato a LaTeX, farlo in Word è estremamente doloroso. Tuttavia, sono legato a Word per questo. Le uniche opzioni che ho visto sono:

  1. Scrivi o copia nel documento, quindi usa un carattere di tipo fisso, organizza la formattazione e spera che Word non abbia mai scritto cose maiuscole. Inutile dire che sembra una merda.
  2. Copia e incolla screenshot del codice sorgente dall'IDE. Almeno tengo i colori. Tuttavia, se cambio la dimensione del mio carattere, sono fregato. Sono anche fregato oltre i confini della pagina. E ammettiamolo, Word non è eccezionale nella gestione di più immagini su un documento.
  3. Scrivi HTML (non proprio un'opzione qui)

Esiste un modo migliore (e idealmente portatile) per farlo? Esiste almeno una sorta di stile verbale simile all'ambiente LaTeX? C'è almeno qualche bella stampante che potrei copiare e incollare come RTF?


Russel: Non sono sicuro di aver capito.
Uri,

2
Penso che questo sia probabilmente più appropriato per il superutente. Solo perché la cosa che stai inserendo nel documento sembra essere il codice non rende questa una domanda di programmazione.
danben,

2
@danben: suppongo. Ho appena immaginato che esempi di codice nei documenti di Word siano qualcosa che la maggior parte dei programmatori finisce per fare nel loro lavoro quotidiano.
Uri,

1
Sei legato al formato Word-the-program o Word-the-file?
Ken,

Risposte:


186

Odio e disprezzo assolutamente lavorare gratis per Microsoft, dato che dopo tutti quei miliardi di dollari, ANCORA non hanno guide adeguate su cose come queste con screenshot sul loro maledetto sito web.

Ad ogni modo, ecco una guida rapida in Word 2010, usando Notepad ++ per la colorazione della sintassi, e una TextBox che può essere sottotitolata:

  1. Scegli Inserisci / Casella di testo / Casella di testo semplice
    01word
  2. Viene inserita una casella di testo predefinita
    02word
  3. Passa a NPP, scegli la lingua per la colorazione della sintassi del tuo codice, vai a Plugin / NPPExport / Copia RTF negli Appunti
    03npp
  4. Torna alla parola e incollalo nella casella di testo: potrebbe essere troppo piccolo ...
    04word
  5. ... quindi potrebbe essere necessario modificarne le dimensioni
    05word
  6. Dopo aver selezionato la casella di testo, fai clic destro su di essa, quindi scegli Inserisci didascalia ...
    06word
  7. Nel menu Didascalia, se non ne hai già uno, fai clic su Nuova etichetta e imposta la nuova etichetta su "Codice", fai clic su OK ...
    07word
  8. ... quindi nella finestra di dialogo Didascalia, imposta l'etichetta su Codice e premi OK
    08word
  9. Infine, digita la didascalia nella casella della didascalia appena creata
    09word

Quando si incrocia la didascalia di riferimento, viene inserito l'intero codice stesso su come risolvere questo problema?
MonsterMMORPG

1
In Word 2013 il testo è il codice è incolla come testo semplice, nessun modo per mantenere il formato di Notepad ++
Jose Nobile

2
@JoseNobile devi usare il plugin NppExport in Notepad ++
NeilenMarais

1
Funziona anche con Android Studio, Visual Studio ed Eclipse.
Teocci,

Inizialmente ho usato la stessa tecnica, ma da allora sono passato all'utilizzo di una tabella di 1x1 perché ho scoperto che le caselle di testo sono faticose da posizionare. Ho provato "in alto e in basso" in modo che il testo fosse solo prima e dopo, e Word avrebbe spostato magicamente la casella su o giù, a volte la didascalia non sarebbe visibile, ah che dolore. Ho iniziato a utilizzare le tabelle oggi basate su un altro QA SO, finora funzionando bene. Creo un nuovo tipo di etichetta "Elenco".
Oliver,

26

Recentemente mi sono imbattuto in questo post e ho trovato alcuni suggerimenti utili. Tuttavia, ho finito per usare un approccio completamente diverso adatto alle mie esigenze. Condivido l'approccio e il mio ragionamento sul perché ho scelto questo approccio. Il post è più lungo di quanto mi sarebbe piaciuto, ma credo che gli screenshot siano sempre utili. Speriamo che la risposta sia utile a qualcuno.

Le mie esigenze erano le seguenti:

  1. Aggiungi frammenti di codice a un documento di Word, con l'evidenziazione della sintassi per una più facile visibilità e differenziazione di codice e altro testo.
  2. Lo snippet di codice deve essere in linea con l'altro testo.
  3. Lo snippet di codice deve essere suddiviso in modo uniforme tra le pagine senza alcuno sforzo aggiuntivo.
  4. Lo snippet di codice deve avere un bordo piacevole.
  5. Lo snippet di codice deve disabilitare il controllo ortografico.

Il mio approccio è elencato di seguito:

  1. Utilizzare lo strumento esterno per ottenere il requisito di evidenziazione della sintassi 1 sopra. Si potrebbe usare il blocco note plus plus come descritto sopra. Tuttavia, utilizzo lo strumento presente qui: http://www.planetb.ca/syntax-highlight-word . Questo mi dà la possibilità di usare il numero di riga, oltre a un ottimo evidenziatore della sintassi (per favore usa Google Chrome per questo passaggio, perché l'evidenziazione della sintassi non viene copiata quando usi Mozilla Firefox, come sottolineato anche da un paio di commenti degli utenti). I passaggi per ottenere l'evidenziazione della sintassi sono elencati di seguito:
    • Apri il sito Web fornito in precedenza in Chrome e copia lo snippet di codice nell'area di testo. Userò un XML di esempio per dimostrarlo (esempio XML da qui - http://www.service-architecture.com/articles/object-oriented-d Database / xml_file_for_complex_data.html ).
    • Seleziona la lingua dal menu a discesa.
    • Fai clic sul pulsante "Mostra evidenziati". Si aprirà una nuova scheda, con lo snippet di codice evidenziato in sintassi, in questo caso l'esempio XML che abbiamo scelto. Vedi l'immagine sotto per esempio. L'immagine mostra un XML di esempio incollato nell'area di testo, la lingua selezionata come XML e il pulsante.
    • Per disattivare i numeri di riga, ispeziona la pagina in Chrome. Quindi, sotto gli stili, deseleziona la proprietà "margin" in ".dp-highlighter ol", come mostrato nell'immagine qui sotto. Se si desidera mantenere i numeri di riga, andare al passaggio successivo.
    • Seleziona il codice evidenziato dalla sintassi e fai clic su Copia. Ora il tuo codice è pronto per essere incollato in Microsoft Word. Risultato dell'XML evidenziato dalla sintassi Grazie a questo blog per aver fornito queste informazioni - http://idratherbewriting.com/2013/04/04/adding-syntax-highlighting-to-code-examples-online-and-in-microsoft-word/ .
  2. Per raggiungere i requisiti 2, 3 e 4 precedenti, utilizzare la tabella in Microsoft Word per inserire lo snippet di codice. I passaggi sono elencati di seguito:

    • Inserisci una tabella con una singola colonna.
    • Incolla il testo copiato dal passaggio 1. nella colonna della tabella. Ho mantenuto i numeri di riga per mostrare come funziona con Microsoft Word.
    • Applica il bordo come preferisci. Ho usato la dimensione 1pt. Lo snippet di parole Microsoft risultante verrà visualizzato come mostrato nella schermata seguente. Nota quanto bene si interrompe sulla pagina: NON è necessario alcuno sforzo aggiuntivo per gestirlo, cosa che affronteresti se inserissi un oggetto "OpenDocument Text" o se utilizzassi "Simple TextBox". Snippet di codice evidenziato dalla sintassi incollato nella tabella di Microsoft Word
  3. Per raggiungere il requisito 5, attenersi alla seguente procedura:

    • Seleziona l'intera tabella o il testo.
    • Vai alla scheda Revisione. In Lingua, seleziona "Lingua di prova". Verrà presentato un nuovo pop-up.
    • Seleziona "Non controllare l'ortografia o la grammatica". Quindi fai clic su OK. Disabilita il controllo ortografico
    • Il testo risultante ha il controllo ortografico disabilitato. Il risultato finale è mostrato nell'immagine seguente e soddisfa tutti i requisiti. Risultato finale: soddisfa tutti e 5 i requisiti.

Fornisci eventuali feedback o miglioramenti o riscontri problemi con l'approccio.


2
Grazie! Sembra fantastico ... Ho dovuto usare Google Chrome perché Mozilla Firefox non stava copiando l'evidenziazione della sintassi.
loveMeansNiente

Penso che questa sia la soluzione migliore. Un altro suggerimento: se non si desidera il controllo ortografico ma non si sta scrivendo in inglese, inserire il codice come oggetto Open Document Text. Vai su INSERISCI - OGGETTO - e scegli OpenDocument Text. Inserisci il codice nel documento aperto, quindi salva e chiudi. Il codice viene visualizzato come sopra ma l'ortografia viene completamente ignorata. L'unico inconveniente potrebbe essere che il numero non funziona correttamente, se si desidera includerlo nella didascalia per l'elenco. Non l'ho verificato.
user3629892,

@ user3629892 Ho pensato che con Open Document non è possibile avvolgere bene pagine diverse.
succo di maracuja,

C'è qualche possibilità di ottenere quel bellissimo bordo anche per i numeri di riga durante la copia in word.
Paramesh Korrakuti,

1
@ Capt.Krusty - Al punto 1, punti 1 e 5, avevo già menzionato l'uso di Chrome. Ma andrò avanti e aggiungerò "Google Chrome" come tu e loveMeansNiente suggerito.
abhishek,

23

Devi definire uno stile nel tuo documento Word e usarlo per il codice sorgente. Di solito ho uno stile chiamato "Codice" che ha un carattere a spaziatura fissa con una dimensione in punti piccoli, schede a dimensione fissa, spaziatura a riga singola, nessuna spaziatura paragrafo prima / dopo, ecc. Devi solo definire questo stile una volta e poi riutilizzarlo. Si incolla nel codice sorgente e si applica lo stile "Codice".

Si noti che alcuni editor (ad esempio Xcode su Mac) aggiungono RTF e testo negli Appunti durante la copia / incolla tra le applicazioni: Word riconosce RTF e mantiene utile la formattazione, la colorazione della sintassi, ecc.

Codice sorgente in Xcode:

inserisci qui la descrizione dell'immagine

Copiato e incollato in Word:

inserisci qui la descrizione dell'immagine

(Nota: è una buona idea disabilitare il controllo ortografico nel tuo stile "Codice" in Word.)


Questo, tuttavia, non aggiunge automaticamente stile a parole chiave, numeri, stringhe ecc.
Bart,

@Bart: in generale no, ma per coloro che usano Xcode (per lo sviluppo di Mac OS X, iOS, ecc.) Gli appunti contengono RTF con tutti i colori della sintassi ecc. E Word lo accetta. È possibile che ci siano altri editor che hanno anche questa utile funzione, ma non ne sono consapevole.
Paul R,

RTF funziona, sì, l'ho usato anche in passato usando Notepad ++ per Word. Tuttavia, sarebbe molto bello se ci fosse un modo per aggiungere uno stile di codice reale , ovvero uno che evidenzi automaticamente la sintassi. Peccato che non esista nulla del genere. Certo, ci sono alcuni componenti aggiuntivi che è possibile installare che possono evidenziare su richiesta, ma devo ancora trovarne uno che può facilmente rielaborare tutti i blocchi di codice con uno stile diverso, se lo si desidera.
Bart,

Non penso che questo supporti i sottotitoli, vero?
Oliver,

@Schollii: penso che le didascalie possano essere applicate solo agli "oggetti" in Word. Immagino che potresti mettere il codice in una tabella 1x1, che lo renderebbe un oggetto?
Paolo R,

11

Dipende dall'IDE. Sia Visual Studio che Eclipse , ad esempio, ti permetteranno di copiare come RTF e incollare in Word, mantenendo tutta la formattazione.

Notepad ++ ha un plugin chiamato "NppExport" (viene preinstallato) che ti permette di copiare in RTF, anche se non mi interessa molto l'evidenziazione della sintassi di Notepad ++ (sarebbe sicuramente passabile). Ciò che fa è supportare dozzine di lingue, mentre gli IDE sopra menzionati sono limitati a una manciata ciascuno (senza altri plug-in).


1
Ho avuto buona fortuna sia con VS che con Eclipse nel fare proprio questo, usando l'editor dell'IDE per fare la colorazione della sintassi (e qualsiasi formattazione che mi piace), quindi tagliare e incollare direttamente in parola. Di solito lo seguo con l'impostazione del carattere attraverso lo snippet su un carattere a larghezza fissa (non sempre mi
risulta

3

Questo è legato a questa risposta: https://stackoverflow.com/a/2653406/931265 La creazione di un oggetto ha risolto tutti i miei problemi.

Inserisci> Oggetto> Testo opendocument

Questo aprirà una finestra del documento, incollerà il tuo testo, lo formatterà come desideri e lo chiuderà.

Il risultato è una cifra. Fare clic con il tasto destro sull'oggetto e selezionare 'aggiungi una didascalia'.

Ora puoi fare riferimenti incrociati, creare una tabella di figure.


Quando si incrocia la didascalia di riferimento, viene inserito anche il codice intero come risolvere questo problema?
MonsterMMORPG





1

Se stai ancora cercando un modo semplice per aggiungere frammenti di codice.

puoi facilmente andare su [Inserisci]> [Oggetto]> [Testo documento]> incolla il codice> Salva e chiudi.

Puoi anche inserirlo in una macro e aggiungerlo alla barra di accesso facile.

Appunti:

  • Questo richiederà solo una pagina di codice.
  • Il tuo codice non verrà corretto automaticamente .
  • Puoi interagire con esso solo facendo doppio clic su di esso.

1

In Word, è possibile incollare il codice che utilizza il colore per differenziare i commenti dal codice usando "Incolla Mantieni formattazione sorgente". Tuttavia, se si utilizza il codice incollato per creare un nuovo stile, Word rimuove automaticamente il testo con codice colore e lo cambia in nero (o qualunque sia il colore predefinito automatico). Poiché l'applicazione di uno stile è il modo migliore per garantire la conformità ai requisiti del formato del documento, Word non è molto utile per documentare i programmi software. Sfortunatamente, non ricordo che Open Office sia migliore. La soluzione migliore è utilizzare la casella di testo semplice predefinita.


1

Ho provato tutti i tuoi metodi, ma non hanno funzionato per me, infatti ho creato un metodo più semplice usando le tabelle di MS Word .

Professionisti:

  1. Più bello
  2. Più facile da gestire e più coerente
  3. Sono meno inclini a problemi
  4. Non sono necessari plug-in esterni o microcodifica MS Word.
  5. Più facile da gestire da parte di utenti semplici ( come me ).

Contro: Non manterrà la colorazione del codice sebbene qualcuno possa migliorare il mio trucco.

passi:

  1. Inserisci una tabella 3x3, nel mio caso faccio sempre che la larghezza totale della tabella sia uguale alla larghezza della pagina libera ( minimo 3 righe per testare lo stile delle tabelle ).

  2. Usa i bordi invisibili ( opzione " Nessun bordo " ) e attiva l' opzione " Visualizza griglie ". dovrebbe avere questo aspetto. Fai attenzione che quelle righe ti consentano di vedere la griglia della tabella e che non verranno stampate.

inserisci qui la descrizione dell'immagine

  1. Apporta le modifiche alla spaziatura delle celle e alla larghezza delle colonne per ottenere l'aspetto che ti piace. ( Dovrai accedere a " Proprietà tabella " per la messa a punto ). inserisci qui la descrizione dell'immagine

  2. Crea uno " Stile di paragrafo " con il nome di " Codice " solo per i tuoi frammenti di codice ( controlla https://stackoverflow.com/a/25092977/8533804 per avere l'idea, non devi seguirli tutti)

  3. Crea un altro " Stile paragrafo " con il nome di " Code_numberline " che si baserà sullo stile creato in precedenza. inserisci qui la descrizione dell'immagine

  4. Nella " Code_numberline " appena creata aggiungi lo stile di numerazione che ti piace (questo automatizzerà la numerazione delle righe). inserisci qui la descrizione dell'immagine

  5. Applicare " Code_numberline " alla prima colonna e " Code " alla colonna 3. inserisci qui la descrizione dell'immagine

  6. Aggiungi un riempimento nella colonna centrale. inserisci qui la descrizione dell'immagine

  7. Salva lo stile di questo tavolo e divertiti!


Fantastico fino a quando non hai detto Salva lo stile del tavolo .
Martino di Hessle il

@MartinofHessle, bene per i documenti estesi in cui lo popolerai con frammenti di codice in molti luoghi l'opzione di salvare questo stile di tabelle è un risparmio di tempo, inoltre ti consente di modificare lo stile di tabella in tutto il documento senza problemi, come nel mio caso dove ho uno stile per IDE e IDLE ... d'altra parte, se stai usando solo una tabella, allora potresti omettere l'ultimo passaggio
Nader Belal,

Sono d'accordo con il perché. Era il modo di dirlo a normal.dot per farlo persistere che sarebbe stata un'aggiunta utile. L'ho capito ma non era ovvio.
Martino di Hessle,

@MartinofHessle mi scusi, ma non ho capito la tua ultima affermazione. Potresti ripeterlo di nuovo in termini più semplici?
Nader Belal,

1
Mi dispiace errore di battitura, avrebbe dovuto essere come salvarlo in normal.dot .
Martino di Hessle,

1

Usa questo - http://hilite.me/

hilite.me converte i frammenti di codice in formato HTML piuttosto stampato, facilmente integrabile in post di blog, e-mail e siti Web.

Come: basta copiare il codice sorgente nel riquadro di sinistra, selezionare la lingua e la combinazione di colori e fare clic su "Evidenzia!". L'HTML dal riquadro di destra ora può essere incollato sul tuo blog o e-mail, non sono necessari file CSS o Javascript esterni.

Per il documento Microsoft Word: copia il contenuto dalla sezione Anteprima e incollalo nel documento Microsoft Word.

3 sezioni: codice sorgente, HTML e anteprima


0

C'è un modo semplice se vuoi una semplice formattazione del codice.

  1. Apri parola> scheda Inserisci> fai clic su "Ottieni componenti aggiuntivi"
  2. cerca "Mixer contenuti" 3.clicca su "Aggiungi"

Quindi aggiungere il mixer del contenuto si aprirà automaticamente e puoi copiare incollare il codice lì dentro e fare clic su "Inserisci" per inserirlo nel documento di Word.


0

Queste risposte sembrano obsolete e piuttosto noiose rispetto alla soluzione del componente aggiuntivo Web; che è disponibile per i prodotti da Office 2013.

Sto usando Easy Code Formatter , che ti consente di codificare il testo sul posto. Offre anche opzioni di numerazione delle linee, evidenziazione, stili diversi e gli stili sono disponibili qui: https://github.com/armhil/easy-code-formatter-styles in modo da poter estendere lo stile da soli. Per installare - apri Microsoft Word, vai su Inserisci scheda / fai clic su "Ottieni componenti aggiuntivi" e cerca "Easy Code Formatter"

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.