¿Cuál es la mejor manera de insertar ejemplos de código fuente en un documento de Microsoft Word?


131

Tengo que escribir algunos documentos que incluirán ejemplos de código fuente. Algunos de los ejemplos se escribirán desde el IDE, y otros se escribirán en su lugar. Mis ejemplos están principalmente en Java.

Como alguien que está acostumbrado a LaTeX, hacer esto en Word es extremadamente doloroso. Sin embargo, estoy obligado a Word para esto. Las únicas opciones que he visto son:

  1. Escriba o copie en el documento, luego use una fuente de tipo fijo, organice el formato y espere que Word no le ponga mayúsculas. No hace falta decir que esto parece una mierda.
  2. Copie y pegue capturas de pantalla del código fuente del IDE. Al menos mantengo los colores. Sin embargo, si cambio el tamaño de mi fuente, estoy jodido. También estoy atravesado los límites de la página. Y admitámoslo, Word no es excelente para administrar múltiples imágenes en un documento.
  3. Escribir HTML (no es realmente una opción aquí)

¿Hay alguna forma mejor (e idealmente portátil) de hacer esto? ¿Existe al menos algún tipo de estilo literal similar al entorno LaTeX? ¿Hay al menos alguna impresora bonita que pueda copiar y pegar como RTF?


Russel: No estoy seguro de entender.
Uri

2
Creo que esto es probablemente más apropiado para superusuario. El hecho de que lo que está insertando en el documento sea código no hace que esta sea una pregunta de programación.
danben

2
@danben: supongo. Me acabo de dar cuenta de que los ejemplos de código en documentos de Word es algo que la mayoría de los programadores terminan haciendo en su trabajo diario.
Uri

1
¿Estás vinculado a Word-the-program o Word-the-file-format?
Ken

Respuestas:


186

Absolutamente odio y desprecio trabajar de forma gratuita para Microsoft, dado que después de todos esos miles de millones de dólares TODAVÍA no tienen guías adecuadas sobre cosas como esta con capturas de pantalla en su maldito sitio web.

De todos modos, aquí hay una guía rápida en Word 2010, usando Notepad ++ para colorear sintaxis, y un TextBox que puede ser subtitulado:

  1. Elija Insertar / Cuadro de texto / Cuadro de texto simple
    01word
  2. Se inserta un cuadro de texto predeterminado
    02word
  3. Cambie a NPP, elija el idioma para el color de sintaxis de su código, vaya a Plugins / NPPExport / Copy RTF al portapapeles
    03npp
  4. Vuelva a Word y péguelo en el cuadro de texto; puede ser demasiado pequeño ...
    04word
  5. ... así que puede que tenga que cambiar su tamaño
    05word
  6. Una vez seleccionado el cuadro de texto, haga clic derecho sobre él, luego elija Insertar título ...
    06word
  7. En el menú Subtítulo, si aún no tiene uno, haga clic en Nueva etiqueta y configure la nueva etiqueta en "Código", haga clic en Aceptar ...
    07word
  8. ... luego, en el cuadro de diálogo Título, cambie la etiqueta a Código y presione Aceptar
    08word
  9. Finalmente, escriba su título en el cuadro de título recién creado
    09word

Cuando cruza el título de referencia, ¿inserta todo el código para resolver este problema?
MonsterMMORPG

1
En Word 2013, el texto es el código es pegar como texto sin formato, no hay forma de mantener el formato de Notepad ++
Jose Nobile

2
@JoseNobile necesita usar el complemento NppExport en Notepad ++
NeilenMarais

1
También funciona con Android Studio, Visual Studio y Eclipse.
Teocci

Inicialmente utilicé la misma técnica, pero desde entonces cambié a una tabla de 1x1 porque descubrí que los cuadros de texto son un dolor de cabeza. Intenté "arriba y abajo" para que el texto fuera solo antes y después, y Word movería mágicamente el cuadro hacia arriba o hacia abajo, a veces el subtítulo no sería visible, ¡qué pena! Comencé a usar tablas hoy basadas en otro SO QA, hasta ahora funcionaba bien. Creo una nueva etiqueta de título tipo "Listado".
Oliver

26

Recientemente me encontré con esta publicación y encontré algunos consejos útiles. Sin embargo, terminé usando un enfoque completamente diferente que se adaptaba a mis necesidades. Estoy compartiendo el enfoque y mi razonamiento de por qué elegí este enfoque. La publicación es más larga de lo que me hubiera gustado, pero creo que las capturas de pantalla siempre son útiles. Con suerte, la respuesta sería útil para alguien.

Mis requisitos fueron los siguientes:

  1. Agregue fragmentos de código a un documento de Word, con resaltado de sintaxis para facilitar la visibilidad y diferenciación del código y otro texto.
  2. El fragmento de código debe estar en línea con otro texto.
  3. El fragmento de código se dividirá sin problemas en las páginas sin ningún esfuerzo adicional.
  4. El fragmento de código tendrá un borde bonito.
  5. El fragmento de código tendrá el corrector ortográfico desactivado.

Mi enfoque es el siguiente:

  1. Use una herramienta externa para lograr el requisito de resaltado de sintaxis 1 anterior. Se podría usar notepad plus plus como se describe anteriormente. Sin embargo, uso la herramienta presente aquí: http://www.planetb.ca/syntax-highlight-word . Esto me da la opción de usar el número de línea, así como un resaltado de sintaxis muy agradable (use Google Chrome para este paso, porque el resaltado de sintaxis no se copia cuando se usa Mozilla Firefox, como también lo señalan algunos comentarios de los usuarios). Los pasos para lograr el resaltado de sintaxis se enumeran a continuación:
    • Abra el sitio web proporcionado anteriormente en Chrome y copie el fragmento de código en el área de texto. Usaré un XML de muestra para demostrar esto (muestra de XML desde aquí: http://www.service-architecture.com/articles/object-oriented-databases/xml_file_for_complex_data.html ).
    • Seleccione el idioma del menú desplegable.
    • Haga clic en el botón "Mostrar resaltado". Se abrirá una nueva pestaña, con un fragmento de código resaltado de sintaxis, en este caso, la muestra XML que elegimos. Ver imagen a continuación, por ejemplo. La imagen muestra un xml de muestra pegado en el área de texto, el idioma seleccionado como XML y el botón
    • Para desactivar los números de línea, inspeccione la página en cromo. Luego, en estilos, deseleccione la propiedad "margen" en ".dp-highlighter ol", como se muestra en la imagen a continuación. Si desea conservar los números de línea, vaya al siguiente paso.
    • Seleccione el código resaltado de sintaxis y haga clic en copiar. Ahora su código está listo para pegarse en Microsoft Word. Resultado de XML resaltado de sintaxis Gracias a este blog por proporcionar esta información: http://idratherbewriting.com/2013/04/04/adding-syntax-highlighting-to-code-examples-online-and-in-microsoft-word/ .
  2. Para cumplir los requisitos 2, 3 y 4 anteriores, use la tabla en Microsoft Word para insertar el fragmento de código. Los pasos se enumeran a continuación:

    • Insertar una tabla con una sola columna.
    • Pegue el texto copiado del paso 1. en la columna de la tabla. He guardado los números de línea para mostrar qué tan bien funciona esto con Microsoft Word.
    • Aplica borde, como quieras. He usado talla 1pt. El fragmento de palabra resultante de Microsoft aparecerá como se muestra en la captura de pantalla a continuación. Tenga en cuenta lo bien que se abre paso en la página: NO es necesario un esfuerzo adicional para administrar esto, lo que enfrentaría si inserta el objeto "OpenDocument Text" o si usa "Simple TextBox". Fragmento de código resaltado de sintaxis pegado en la tabla de Microsoft Word
  3. Para cumplir el requisito 5, siga los pasos a continuación:

    • Seleccione la tabla completa o el texto.
    • Vaya a la pestaña Revisar. En Idioma, elija "Idioma de prueba". Se presentará una nueva ventana emergente.
    • Seleccione "No revisar ortografía o gramática". Luego, haga clic en Aceptar. Desactivar el corrector ortográfico
    • El texto resultante tiene el corrector ortográfico desactivado. El resultado final se muestra en la imagen a continuación y cumple con todos los requisitos. Resultado final: cumple con los 5 requisitos.

Indique si tiene algún comentario o mejora o se encuentra con algún problema con el enfoque.


2
¡Gracias! Se ve genial ... Tuve que usar Google Chrome porque Mozilla Firefox no estaba copiando el resaltado de sintaxis.
loveMeansNothing

Creo que esta es la mejor solución. Un consejo más: si no desea el corrector ortográfico pero no escribe en inglés, inserte el código como un objeto Open Document Text. Vaya a INSERTAR - OBJETO - y elija OpenDocument Text. Inserte el código en el documento abierto y luego guárdelo y ciérrelo. El código se muestra como arriba pero la ortografía se ignora por completo. El único inconveniente puede ser que el número no funciona correctamente, si desea incluirlo en el título de la lista. Havent lo comprobó.
user3629892

@ user3629892 Pensé que con Open Document no se puede ajustar bien en diferentes páginas.
jugo de maracuyá

¿Existe alguna posibilidad de obtener ese hermoso borde también para los números de línea mientras se copia a Word?
Paramesh Korrakuti

1
@ Capt.Krusty: en el punto 1, viñetas 1 y 5, ya había mencionado usar Chrome. Pero, continuaré y agregaré "Google Chrome" como tú y loveMeansNothing sugirieron.
abhishek

23

Debe definir un estilo en su documento de Word y usarlo para el código fuente. Por lo general, tengo un estilo llamado "Código" que tiene una fuente monoespaciada en un tamaño de punto pequeño, pestañas de tamaño fijo, espaciado de línea simple, sin espaciado de párrafo anterior / posterior, etc. Solo necesita definir este estilo una vez y luego reutilizarlo. Pega el código fuente y le aplica el estilo "Código".

Tenga en cuenta que algunos editores (por ejemplo, Xcode en la Mac) agregan RTF y texto al portapapeles al copiar / pegar entre aplicaciones: Word reconoce RTF y conserva el formato, la sintaxis, etc.

Código fuente en Xcode:

ingrese la descripción de la imagen aquí

Copiado y pegado a Word:

ingrese la descripción de la imagen aquí

(Nota: es una buena idea deshabilitar la corrección ortográfica en su estilo de "Código" en Word).


Sin embargo, esto no agrega automáticamente estilo a palabras clave, números, cadenas, etc.
Bart

@Bart: en general, no, pero para aquellos que usan Xcode (para el desarrollo de Mac OS X, iOS, etc.) el portapapeles contiene RTF con todos los colores de sintaxis, etc., y Word lo acepta. Es posible que haya otros editores que también tengan esta útil función, pero no los conozco.
Paul R

RTF funciona, sí, también he usado esto en el pasado usando Notepad ++ para Word. Sin embargo, sería muy bueno si hubiera una manera de agregar un estilo de código real , es decir, uno que resalte la sintaxis automáticamente. Es una pena que nada de eso parezca existir. De acuerdo, hay algunos complementos que puede instalar que pueden resaltar a pedido, pero aún no he encontrado uno que pueda cambiar fácilmente el estilo de todos sus bloques de código con un estilo diferente si lo desea.
Bart

No creo que esto admita subtítulos, ¿verdad?
Oliver

@Schollii: Creo que los subtítulos solo se pueden aplicar a "objetos" en Word. Supongo que podrías poner el código en una tabla 1x1, que luego lo convertiría en un objeto.
Paul R

11

Depende del IDE. Tanto Visual Studio como Eclipse , por ejemplo, le permitirán copiar como RTF y pegar en Word, manteniendo todo su formato.

Notepad ++ tiene un complemento llamado "NppExport" (viene preinstalado) que le permite copiar a RTF, aunque no me importa mucho el resaltado de sintaxis de Notepad ++ (sin embargo, definitivamente sería aceptable). Lo que hace es admitir docenas de idiomas, mientras que los IDEs mencionados anteriormente se limitan a un puñado cada uno (sin otros complementos).


1
He tenido buena suerte con VS y Eclipse al hacer esto, usando el editor del IDE para colorear la sintaxis (y cualquier formato que me guste), luego cortando y pegando directamente en Word. Normalmente sigo con la configuración de la fuente a través del fragmento a una fuente de ancho fijo (no siempre me pareció)
heckj

3

Esto está relacionado con esta respuesta: https://stackoverflow.com/a/2653406/931265 La creación de un objeto resolvió todos mis problemas.

Insertar> Objeto> Texto de Opendocument

Esto abrirá una ventana de documento, pegará el texto, lo formateará como desee y lo cerrará.

El resultado es una figura. Haga clic derecho en el objeto y seleccione 'agregar un título'.

Ahora puede hacer referencias cruzadas, crear una tabla de figuras.


Cuando cruza el título de referencia, también inserta código completo ¿cómo resolver este problema?
MonsterMMORPG





1

Si todavía está buscando una manera simple de agregar fragmentos de código.

puede ir fácilmente a [Insertar]> [Objeto]> [Texto del documento de operación]> pegar su código> Guardar y cerrar.

También puede poner esto en una macro y agregarlo a su barra de fácil acceso.

notas:

  • Esto solo tomará hasta una página de código.
  • Su código no será corregido automáticamente .
  • Solo puede interactuar con él haciendo doble clic en él.

1

En Word, es posible pegar código que usa color para diferenciar los comentarios del código usando "Pegar Mantener Formato de Fuente". Sin embargo, si usa el código pegado para crear un nuevo estilo, Word elimina automáticamente el texto codificado por color y lo cambia a negro (o cualquiera que sea el color predeterminado automático). Dado que aplicar un estilo es la mejor manera de garantizar el cumplimiento de los requisitos de formato del documento, Word no es muy útil para documentar programas de software. Desafortunadamente, no recuerdo que Open Office haya sido mejor. La mejor solución es usar el cuadro de texto simple predeterminado.


1

He probado todos sus métodos, pero no funcionaron para mí, de hecho, he creado un método más fácil usando MS Word Tables .

Pros:

  1. Más hermosa
  2. Más fácil de administrar y más consistente
  3. Son menos propensos a los problemas.
  4. No hay necesidad de complementos externos o micro codificación de MS Word.
  5. Más fácil de manejar por usuarios simples ( como yo ).

Contras: no mantendrá el color del código, aunque alguien podría mejorar mi truco.

Pasos:

  1. Inserte una tabla de 3x3, en mi caso siempre hago que el ancho total de la tabla sea igual al ancho de la página libre ( mínimo de 3 filas para probar el estilo de las tablas ).

  2. Use bordes invisibles ( opción " Sin bordes " ) y active la opción " Ver líneas de cuadrícula ". Debería tener este aspecto. Tenga en cuenta que esas líneas son para que pueda ver la cuadrícula de la tabla, y que no se imprimirán.

ingrese la descripción de la imagen aquí

  1. Realice los ajustes en el espaciado de las celdas y el ancho de las columnas para obtener el aspecto que desee. ( Tendrá que acceder a " Propiedades de la tabla " para un ajuste fino ). ingrese la descripción de la imagen aquí

  2. Cree un " Estilo de párrafo " con el nombre de " Código " solo para sus fragmentos de código ( consulte https://stackoverflow.com/a/25092977/8533804 para obtener la idea, no tiene que seguirlo todo)

  3. Cree otro " Estilo de párrafo " con el nombre de " Code_numberline " que se basará en el estilo creado anteriormente. ingrese la descripción de la imagen aquí

  4. En el recién creado " Code_numberline " agregue el estilo de numeración que desee (esto automatizará la numeración de líneas). ingrese la descripción de la imagen aquí

  5. Aplique " Code_numberline " a la primera columna y " Code " a la columna 3. ingrese la descripción de la imagen aquí

  6. Agregue un relleno en la columna del medio. ingrese la descripción de la imagen aquí

  7. ¡Guarda ese estilo de mesa y disfruta!


Genial hasta que dijiste Guardar ese estilo de tabla .
Martin de Hessle

@MartinofHessle, bueno para documentos extendidos donde lo completará con fragmentos de código en muchos lugares, la opción de guardar este estilo de tablas ahorra tiempo, además le permite modificar el estilo de tabla en todo el documento sin problemas, como en mi caso donde tengo un estilo para IDE e IDLE ... por otro lado, si está usando solo una tabla, entonces puede omitir el último paso
Nader Belal

Estoy de acuerdo con el por qué. Era cómo decirlo a normal.dot para que persistiera, lo que habría sido una adición útil. Lo descubrí pero no era obvio.
Martin de Hessle

@MartinofHessle, perdóname, pero no entendí tu última declaración. ¿Podrías repetirlo de nuevo en términos más simples?
Nader Belal

1
Lo sentimos error tipográfico, debería haber sido cómo guardarlo en normal.dot .
Martin de Hessle

1

Use esto: http://hilite.me/

hilite.me convierte sus fragmentos de código en un formato HTML muy impreso, fácilmente integrable en publicaciones de blog, correos electrónicos y sitios web.

Cómo: simplemente copie el código fuente en el panel izquierdo, seleccione el idioma y la combinación de colores y haga clic en "¡Resaltar!". El HTML del panel derecho ahora se puede pegar en su blog o correo electrónico, no se requieren archivos CSS o Javascript externos.

Para documentos de Microsoft Word: copie el contenido de la sección Vista previa y péguelo en su documento de Microsoft Word.

3 secciones: Código fuente, HTML y Vista previa


0

Hay una manera fácil si desea un formato de código simple.

  1. Abra la palabra> Insertar pestaña> haga clic en "Obtener complementos"
  2. buscar "Mezclador de contenido" 3.haga clic en "Agregar"

Luego, el mezclador de contenido agregar se abrirá automáticamente y puede copiar y pegar su código allí y hacer clic en "Insertar" para insertarlo en Word Doc.


0

Estas respuestas parecen anticuadas y bastante tediosas en comparación con la solución de complemento web; que está disponible para productos desde Office 2013.

Estoy usando Easy Code Formatter , que le permite codificar el texto en el lugar. También le ofrece opciones de numeración de líneas, resaltado, diferentes estilos y los estilos son de código abierto aquí: https://github.com/armhil/easy-code-formatter-styles para que pueda ampliar el estilo usted mismo. Para instalar: abra Microsoft Word, vaya a Insertar pestaña / haga clic en "Obtener complementos" y busque "Easy Code Formatter"

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.