extensión de resaltado de código para el escritor de Libre Office


21

Recientemente escribí un informe para la escuela con mucho código. La única forma en que encontré trabajar fue resaltarlo con FUERTE y eso es realmente bastante feo. Entonces, ¿hay una extensión de resaltado de código para escritor de oficina libre?

Como este a continuación:

<insert code here>

Un resaltado de sintaxis con diferentes colores también está bien.
Nunca entro en un programa completo, así que necesito poder resaltar lo que creo que es código.

Como éste: echo "Hello World!";

Más fresco

Personalmente, no me gustó este resaltado ya que formatea el texto y todo el texto que viene después. Quiero marcar algo de texto, luego hacer clic en un resaltado y listo.
Este es demasiado complicado y difícil de usar, tengo que seleccionar un lenguaje de programación cada vez que destaco, que será aproximadamente 100 veces en un informe, eso es demasiado.
Me gustaría algo similar a lo que usan en el sitio. resalte el código simple si lo desea.

Code Colorizer Formatter

Se instala para mí, pero no puedo hacer que funcione y no tiene soporte para PHP o HTML, lo que necesito.


agregado como respuesta, me alegro de que haya ayudado
Drake Clarris

1
Recomiendo usar LaTeX (ver ejemplo ). Antes de usar látex, guardé la fuente como HTML con KDE Kate y copié el código renderizado desde un navegador para abrir la oficina
Martin Thoma

@ Moose, ¿por qué agrega esto como un comentario en lugar de una respuesta? explica todos los pasos también gracias.
Alvar

Respuestas:


15

No es un complemento, pero puse el código en un sitio web que le da color a la sintaxis. El sitio que uso es tohtml . Sin embargo, no uso el código html generado, solo copie el código coloreado y resaltado del navegador y lo pego en mi documento y WYSIWYG.


Copiar no funcionó para mí desde Firefox a Libroffice, aunque guardar como HTML y abrir el archivo en Libreoffice y luego copiar funcionó
Wilf

¡copiar + pegar funcionó en ubuntu desde chrome a libreoffice! ¡Gracias!
rrosa

11

ACTUALIZACIÓN 2: Extensión LibreOffice

He publicado mi macro script anterior como una extensión: Code Highlighter que está disponible en la tienda de Extensiones de LibreOffice.

1. ¿Cómo instalar?

Siga estos pasos para instalar la extensión:

Paso 1: Instalar libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Paso 2: Instalar pigmentos para Python 3:

sudo pip3 install pygments

Paso 3: descargue y agregue la extensión codehighlighter.oxt a Libre Office

2. ¿Cómo usar?

  • Abra LibreOffice Writer / Calc / Impress.
  • Inserte un cuadro de texto ( Insertar -> Cuadro de texto ).
  • Copie y pegue cualquier fragmento de código en ese cuadro de texto.
  • Seleccione el cuadro de texto.
  • Resaltar por herramientas -> Resaltar código -> <Idioma-Nombre>

ingrese la descripción de la imagen aquí

Puede asignar métodos abreviados de teclado para idiomas de uso frecuente. Para ver cómo asignar atajos de teclado, visite la página de Git Hub: libreoffice-code-highlighter


Aquí dejo mi respuesta original, ya que todavía es válida para LO <= 5.

Tenía el mismo requisito y ninguna de estas soluciones me funcionó en LibreOffice 5, excepto 'Code Colorizer Formatter'. Pero Code Colorizer Formatter funcionó solo en Writer (también lo necesitaba para Impress). Más tarde encontré otra solución usando la macro Python que se prueba en LibreOffice 5.

Instalación

Paso 1: Instalar libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Paso 2: Instalar pigmentos para Python 3:

sudo pip3 install pygments

Paso 3: descarga Highlight.py

Paso 4: Copie Highlight.py a / usr / lib / libreoffice / share / Scripts / python /

sudo cp Highlight.py /usr/lib/libreoffice/share/Scripts/python/

Paso 5: establezca el permiso de solo lectura para el script.

sudo chmod 0444 /usr/lib/libreoffice/share/Scripts/python/Highlight.py

Paso 6: Abra el Escritor de LibreOffice y vaya a Herramientas -> Personalizar -> Teclado

  • Seleccione el botón de opción LibreOffice (disponible en la esquina superior izquierda)
  • Seleccione cualquier acceso directo deseado
  • Seleccione share / Highlight / Highlight_source_code en la categoría Funciones
  • Haga clic en el botón Modificar para establecer el acceso directo

Uso

LibreOffice Impress

  • Abra LibreOffice Impress.
  • Inserte un cuadro de texto (Insertar -> Cuadro de texto).
  • Copie y pegue cualquier fragmento de código en ese cuadro de texto.
  • Crear un nuevo estilo (haga clic derecho en un estilo existente -> Nuevo ...)
  • Nombra el estilo como code-<language>
  • Aplique el estilo al cuadro de texto de su fragmento de código.
  • Seleccione el cuadro de texto.
  • Use sus teclas de acceso directo para ejecutar la macro.

LibreOffice Writer / Calc

  • Abra LibreOffice Writer / Calc.
  • Inserte un cuadro de texto (Insertar -> Cuadro de texto).
  • Copie y pegue cualquier fragmento de código en ese cuadro de texto.
  • Haga clic derecho en el cuadro de texto y seleccione 'Descripción'.
  • Agregue una descripción en el siguiente formato: code-<language>
  • Seleccione el cuadro de texto
  • Use sus teclas de acceso directo para ejecutar la macro.

ACTUALIZACIÓN 1:

He agregado soporte de estilo personalizado a esta extensión. Úselo code-<language>para el estilo predeterminado y code-<language>-<style>para el estilo personalizado. Los estilos disponibles se enumeran en mi página de Git Hub.

Por ejemplo, Code-Java-Emacscoloreará el código Java usando el estilo Emacs.


Esto funciona bastante bien, ¡gracias! ¿Cómo puedo cambiar el tema de pigmentos?
greschd

Por favor revise la publicación actualizada. He actualizado mi script para admitir estilos personalizados. Debe actualizar el script Highlight.py para poder usar esta nueva función.
Gobinath

Genial gracias. Una cosa todavía me molesta: cuando acabo de guardar el archivo y luego intento ejecutar la macro, restablece el texto a alguna versión anterior. ¿Sabes por qué es esto y si podría solucionarse fácilmente?
greschd

No me he enfrentado a ese problema. ¿Podría por favor dejarme saber los pasos exactos para reproducir este problema?
Gobinath

(en Impress): edito un código en un cuadro de texto que ya había formateado previamente, guardo el documento (Ctrl + S), selecciono el cuadro de texto, intento resaltar (Ctrl + Shift + H) y restablece parte del texto Escribí
greschd 01 de

4

COOder

COOder parece estar abandonado, y no se puede instalar en LibreOffice 4.2.8.2.

Code Colorizer Formatter

Code Colorizer Formatter se instala y funciona correctamente en LibreOffice. Code Colorizer Formatter también ha agregado compatibilidad con PHP, pero falta la compatibilidad con HTML por completo y JavaScript no funcionó cuando lo probé. Las instrucciones sobre cómo hacer que funcione en el sitio web de Code Colorizer Formatter no funcionaron para mí, sin embargo, obtuve Code Colorizer Formatter para trabajar en LibreOffice de la manera más difícil, y aquí están mis instrucciones:

  1. Descargue Code Colorizer Formatter desde la página de inicio del proyecto Code Colorizer Formatter e instálelo en LibreOffice Writer como cualquier otra extensión de LibreOffice.

  2. Abra su archivo de código en LibreOffice Writer. Code Colorizer Formatter es compatible con Bash, Basic, C ++, Java, Perl, PHP, Python, R, SQL, XML, C #, 8085 Assembler y x86 Assembler.

  3. Seleccione el código para colorear.

  4. Seleccione Herramientas -> Macros -> Organizar macros -> LibreOffice Basic .

  5. Se abrirá una nueva ventana de Macros básicos de LibreOffice . Bajo el encabezado Macro desde , seleccione Mis macros -> MacroFormatterADP -> un lenguaje de programación compatible. En la captura de pantalla a continuación, Java está seleccionado.

  6. En el encabezado Macros existentes en ... , seleccione HighlightSelLanguage donde Language en HighlightSelLanguage es el mismo que el lenguaje de programación que se seleccionó en el paso cinco. En la captura de pantalla a continuación, se selecciona HighlightSelJava.

  7. Haga clic en el botón Ejecutar para colorear el código seleccionado.

ingrese la descripción de la imagen aquí


Parece abandonado, yendo a la sección de extensiones en LibreOffice dice que no ha tenido una actualización en más de un año
Purefan

La cantidad de trabajo para usar el CCF no vale el resultado, en mi humilde opinión. Pensé que la página tohtml funcionaba mejor con los resultados (por ejemplo, puntos de colores, paréntesis, etc.). Sin embargo, si alguien quiere usar esta "manera fácil" ™, puede ir a Herramientas >> Personalizar ... >> Menús contextuales (pestaña) >> Menú (lista desplegable) >> Texto >> Agregar ... ( botón) >> Macros de LibreOffice >> Mis macros >> MacroFormatterADP >> (seleccionar idioma) >> HighlightSel (idioma) >> Cerrar . Después de esto, simplemente resalte el texto, haga clic y busque la nueva opción en el menú contextual para formatear el texto seleccionado; la entrada puede ser renombrada.
code_dredd

1
@karel Estoy usando la versión 5.2.2.2en Kubuntu 16.10. Lo hice unos momentos antes de mi comentario original.
code_dredd

@ray Gracias por tu sugerencia. Instalaré Kubuntu en VirtualBox y lo intentaré.
karel

@karel ¿La versión 5.2.2.2en Windows no funciona igual? Creo que solo actualizar su versión debería funcionar sin tener que pasar por una instalación completa del sistema operativo.
code_dredd

1

Tengo que seleccionar el lenguaje de programación cada vez que destaco, que será aproximadamente 100 veces en un informe, eso es demasiado

En realidad, hay una manera de vincular el color en un idioma dado a una tecla de acceso rápido. Realice el siguiente sub y vincúlelo a una tecla de acceso rápido:

Vaya a Herramientas → Macros → Organizar macros → LibreOffice Basic. Seleccione Módulo1 y presione Editar:

ingrese la descripción de la imagen aquí

Luego copie y pegue este código:

Sub COOoderInPython
  ExecuteCOOoder("python")
End Sub

Sub ExecuteCOOoder(sLanguage As String)
  oLanguage = org.openoffice.coooder.theLanguagesManager.get(GetDefaultContext()).getLanguage(sLanguage)
  If NOT isNull(oLanguage) Then
    oHighlighter = CreateUnoService("org.openoffice.coooder.Highlighter")
    oHighlighter.Language = oLanguage
    oHighlighter.parse(Null)
  End If
End Sub

Finalmente, unir eso a una tecla de acceso rápido:

ingrese la descripción de la imagen aquí


0

Uno que conozco, pero parece estar abandonado, es Code Colorizer Formatter .

No sé si todavía funciona en LO 4, pero podría valer la pena intentarlo (¡o rescatarlo y actualizarlo!).


1
Code Colorizer Formatter se actualizó el 1 de marzo de 2015 con soporte hasta LibreOffice 4.4 para muchos lenguajes de programación, incluido PHP. Probé Code Colorizer Formatter en LibreOffice 4.2. Las instrucciones en el sitio web oficial de Code Colorizer Formatter no funcionaron para mí, así que puse mis propias instrucciones para usar Code Colorizer Formatter en mi respuesta.
karel

0

Me cansé de formatear mi código en una página en línea y quería que mi código fuera diseñado dentro de LibreOffice o OpenOffice Writer.

Descubrí que la extensión "cooder" se ejecuta correctamente en mi LibreOffice 5. * incluso si la instalación parece fallar (My LibreOffice 5. * se suspendió durante la instalación).

En Extension-Manager puede activar el Cooder, reiniciar LibreOffice / NeoOffice / OpenOffice y debería ver un nuevo símbolo que puede usar para diseñar su código fuente dentro de LibreOffice.

Puede descargar la extensión en: http://extensions.libreoffice.org/extension-center/coooder

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.