Code-Highlight-Erweiterung für Libre Office Writer

21

Ich habe kürzlich einen Bericht für die Schule mit viel Code geschrieben. Die einzige Möglichkeit, die ich gefunden habe, war, es mit STRONG hervorzuheben, und das ist wirklich ziemlich hässlich. Gibt es eine Code-Hervorhebungs-Erweiterung für libre office writer?

Wie dieser unten:

<insert code here>

Ein Syntax-Highlight mit verschiedenen Farben ist ebenfalls in Ordnung.
Ich gebe niemals ein ganzes Programm ein, also muss ich in der Lage sein, das hervorzuheben, was ich für Code halte.

Wie dieser: echo "Hello World!";

Cooder

Ich mochte dieses Highlight normalerweise nicht, da es den Text und den gesamten nachfolgenden Text formatiert. Ich möchte einen Text markieren und dann auf eine Markierung klicken und das wars.
Dieses ist zu kompliziert und zu schwer zu bedienen. Ich muss jedes Mal, wenn ich hervorhebe, die Programmiersprache auswählen, die in einem Bericht etwa 100-mal vorkommt, das ist viel zu viel.
Ich hätte gerne etwas Ähnliches wie das, was sie auf der Website verwenden. Einfacher Code markieren, wenn Sie so wollen.

Code Colorizer Formatierer

Es wird für mich installiert, aber ich kann es nicht zum Laufen bringen und es hat keine PHP- oder HTML-Unterstützung, die ich brauche.

Alvar
quelle
als Antwort hinzugefügt, froh, dass es geholfen hat
Drake Clarris
1
Ich empfehle die Verwendung von LaTeX (siehe Beispiel ). Bevor ich Latex verwendet habe, habe ich die Quelle mit KDE Kate als HTML gespeichert und den gerenderten Code aus einem Browser kopiert, um das Büro zu öffnen
Martin Thoma,
@ Elch warum fügst du das als Kommentar statt als Antwort hinzu? Erkläre auch alle Schritte, danke.
Alvar

Antworten:

15

Es ist kein Plug-in, aber ich habe den Code in eine Website eingefügt, die die Syntax für Sie einfärbt. Die Seite, die ich benutze, ist tohtml . Ich verwende den HTML-generierten Code jedoch nicht. Ich kopiere einfach den farbigen und hervorgehobenen Code aus dem Browser und füge ihn in mein Dokument und WYSIWYG ein.

Drake Clarris
quelle
Das Kopieren von Firefox nach Libroffice hat bei mir nicht funktioniert, obwohl das Speichern als HTML und das Öffnen der Datei in Libreoffice und das anschließende Kopieren funktioniert haben
Wilf
Kopieren + Einfügen auf Ubuntu von Chrome nach Libreoffice gearbeitet! Vielen Dank!
Rrosa
11

UPDATE 2: LibreOffice-Erweiterung

Ich habe mein vorheriges Makroskript als Erweiterung veröffentlicht: Code Highlighter, das im LibreOffice Extensions Store erhältlich ist.

1. Wie installiere ich?

Befolgen Sie diese Schritte, um die Erweiterung zu installieren:

Schritt 1: Installieren Sie libreoffice-script-provider-python:

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

Schritt 2: Installieren Sie Pygments für Python 3:

sudo pip3 install pygments

Schritt 3: Laden Sie die Erweiterung codehighlighter.oxt herunter und fügen Sie sie Libre Office hinzu

2. Wie benutzt man?

  • Öffnen Sie LibreOffice Writer / Calc / Impress.
  • Fügen Sie ein Textfeld ein ( Einfügen -> Textfeld ).
  • Kopieren Sie einen beliebigen Codeausschnitt und fügen Sie ihn in das Textfeld ein.
  • Wählen Sie das Textfeld.
  • Hervorheben mit Extras -> Code hervorheben -> <Sprachenname>

Bildbeschreibung hier eingeben

Sie können Tastenkombinationen für häufig verwendete Sprachen zuweisen. Informationen zum Zuweisen von Tastenkombinationen finden Sie auf der Seite Git Hub: libreoffice-code-highlighter


Ich lasse meine ursprüngliche Antwort hier, da sie für LO <= 5 noch gültig ist.

Ich hatte die gleiche Anforderung und keine dieser Lösungen funktionierte für mich in LibreOffice 5 mit Ausnahme von 'Code Colorizer Formatter'. Der Code Colorizer Formatierer funktionierte jedoch nur in Writer (ich brauchte ihn auch für Impress). Später fand ich eine andere Lösung mit Python-Makro, die in LibreOffice 5 getestet wird.

Installation

Schritt 1: Installieren Sie libreoffice-script-provider-python:

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

Schritt 2: Installieren Sie Pygments für Python 3:

sudo pip3 install pygments

Schritt 3: Laden Sie Highlight.py herunter

Schritt 4: Kopieren Sie das Highlight.py nach / usr / lib / libreoffice / share / Scripts / python /

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

Schritt 5: Legen Sie die schreibgeschützte Berechtigung für das Skript fest.

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

Schritt 6: Öffnen Sie den LibreOffice Writer und gehen Sie zu Extras -> Anpassen -> Tastatur

  • Wählen Sie das Optionsfeld LibreOffice (Verfügbar in der oberen linken Ecke)
  • Wählen Sie eine beliebige Verknüpfung
  • Wählen Sie share / Highlight / Highlight_source_code unter der Funktionskategorie
  • Klicken Sie auf die Schaltfläche Ändern, um die Verknüpfung festzulegen

Verwendung

LibreOffice Impress

  • Öffnen Sie LibreOffice Impress.
  • Fügen Sie ein Textfeld ein (Einfügen -> Textfeld).
  • Kopieren Sie einen beliebigen Codeausschnitt und fügen Sie ihn in das Textfeld ein.
  • Erstellen Sie einen neuen Stil (Klicken Sie mit der rechten Maustaste auf einen vorhandenen Stil -> Neu ...)
  • Nennen Sie den Style als code-<language>
  • Wenden Sie den Stil auf Ihr Code-Snippet-Textfeld an.
  • Wählen Sie das Textfeld.
  • Verwenden Sie Ihre Tastenkombinationen, um das Makro auszuführen.

LibreOffice Writer / Calc

  • Öffnen Sie LibreOffice Writer / Calc.
  • Fügen Sie ein Textfeld ein (Einfügen -> Textfeld).
  • Kopieren Sie einen beliebigen Codeausschnitt und fügen Sie ihn in das Textfeld ein.
  • Klicken Sie mit der rechten Maustaste auf das Textfeld und wählen Sie "Beschreibung".
  • Fügen Sie eine Beschreibung im folgenden Format hinzu: code-<language>
  • Wählen Sie das Textfeld
  • Verwenden Sie Ihre Tastenkombinationen, um das Makro auszuführen.

UPDATE 1:

Ich habe dieser Erweiterung benutzerdefinierte Formatvorlagen hinzugefügt. Verwenden Sie diese Option code-<language>für den Standardstil und den code-<language>-<style>benutzerdefinierten Stil. Die verfügbaren Styles sind auf meiner Git Hub-Seite aufgelistet.

Färbt beispielsweise Code-Java-Emacsden Java-Code im Emacs-Stil.

Gobinath
quelle
Das funktioniert ganz gut, danke! Wie kann ich das Pygment-Thema ändern?
Greschd
Bitte überprüfen Sie den aktualisierten Beitrag. Ich habe mein Skript aktualisiert, um benutzerdefinierte Stile zu unterstützen. Sie müssen das Highlight.py-Skript aktualisieren, um diese neue Funktion nutzen zu können.
Gobinath
Nett, danke. Eines stört mich immer noch - wenn ich die Datei gerade gespeichert habe und dann versuche, das Makro auszuführen, wird der Text auf eine frühere Version zurückgesetzt. Wissen Sie, warum das so ist und ob es leicht zu beheben ist?
Greschd
Ich habe ein solches Problem nicht konfrontiert. Könnten Sie mir bitte die genauen Schritte zur Reproduktion dieses Problems mitteilen?
Gobinath
(in Impress): Ich bearbeite Code in einem Textfeld, das ich zuvor bereits formatiert hatte, speichere das Dokument (Strg + S), wähle das Textfeld aus, versuche es hervorzuheben (Strg + Umschalt + H) und setze einen Teil des Texts zurück Ich schrieb
greschd
4

COOder

COOder scheint aufgegeben zu sein und kann in LibreOffice 4.2.8.2 nicht installiert werden.

Code Colorizer Formatierer

Der Code Colorizer Formatter wird in LibreOffice installiert und funktioniert ordnungsgemäß. Der Code Colorizer Formatter hat auch PHP-Unterstützung hinzugefügt, aber HTML-Unterstützung fehlt vollständig und JavaScript funktionierte nicht, als ich es getestet habe. Die Anleitung, wie man es auf der Code Colorizer Formatter-Website zum Laufen bringt, hat bei mir nicht funktioniert, aber ich habe Code Colorizer Formatter dazu gebracht, auf die harte Tour in LibreOffice zu arbeiten, und hier sind meine Anweisungen:

  1. Laden Sie Code Colorizer Formatter von der Homepage des Code Colorizer Formatter-Projekts herunter und installieren Sie es in LibreOffice Writer wie jede andere LibreOffice-Erweiterung.

  2. Öffnen Sie Ihre Codedatei in LibreOffice Writer. Der Code Colorizer Formatter unterstützt Bash, Basic, C ++, Java, Perl, PHP, Python, SQL, XML, C #, 8085 Assembler und x86 Assembler.

  3. Wählen Sie den Code aus, der eingefärbt werden soll.

  4. Wählen Sie Extras -> Makros -> Makros organisieren -> LibreOffice Basic .

  5. Ein neues LibreOffice Basic-Makrofenster wird geöffnet. Wählen Sie unter Makro von die Option Meine Makros -> MacroFormatterADP -> eine unterstützte Programmiersprache aus. In der Abbildung unten ist Java ausgewählt.

  6. Wählen Sie unter Vorhandene Makros in ... die Option HighlightSelLanguage aus, wobei Language in HighlightSelLanguage mit der in Schritt 5 ausgewählten Programmiersprache identisch ist. In der Abbildung unten ist HighlightSelJava ausgewählt.

  7. Klicken Sie auf die Schaltfläche Ausführen , um den ausgewählten Code einzufärben.

Bildbeschreibung hier eingeben

karel
quelle
Scheint aufgegeben zu sein, als er in den Erweiterungsbereich von LibreOffice geht. Dort heißt es, dass es seit über einem Jahr kein Update mehr gegeben hat
Purefan,
Der Arbeitsaufwand für die Nutzung des CCF ist das Ergebnis meiner Meinung nach nicht wert. Ich dachte, dass die HTML- Seite die Ergebnisse besser verarbeitet (z. B. Farbpunkte, Klammern usw.). Wenn jedoch jemand diesen "einfachen Weg" ™ nutzen möchte, kann er zu Extras >> Anpassen ... >> Kontextmenüs (Registerkarte) >> Menü (Dropdown-Liste) >> Text >> Hinzufügen ... ( Schaltfläche) >> LibreOffice-Makros >> Meine Makros >> MacroFormatterADP >> (Sprache auswählen) >> HighlightSel (Sprache) >> Schließen . Markieren Sie anschließend einfach Text, klicken Sie erneut und suchen Sie die neue Option im Kontextmenü, um den ausgewählten Text zu formatieren. Eintrag kann umbenannt werden.
Code_dredd
1
@karel Ich benutze Version 5.2.2.2in Kubuntu 16.10. Ich tat dies einige Momente vor meinem ursprünglichen Kommentar.
Code_dredd
@ray Vielen Dank für Ihren Vorschlag. Ich werde Kubuntu in VirtualBox installieren und es versuchen.
Karl
@karel Funktioniert die 5.2.2.2Windows- Version nicht gleich? Ich denke, dass nur ein Upgrade Ihrer Version funktionieren sollte, ohne eine vollständige Betriebssysteminstallation durchführen zu müssen.
Code_dredd
1

Ich muss jedes Mal die Programmiersprache auswählen, wenn ich hervorhebe, dass in einem Bericht ungefähr 100 Mal vorkommt, das ist viel zu viel

Tatsächlich gibt es eine Möglichkeit, Farben in einer bestimmten Sprache an einen Hotkey zu binden. Machen Sie das folgende Sub und binden Sie es an einen Hotkey:

Gehen Sie zu Extras → Makros → Makros organisieren → LibreOffice Basic. Wählen Sie Module1 und drücken Sie Bearbeiten:

Bildbeschreibung hier eingeben

Dann kopieren Sie diesen Code:

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

Binden Sie das schließlich an einen Hotkey:

Bildbeschreibung hier eingeben

Adobe
quelle
0

Eine, die ich kenne, die aber aufgegeben zu sein scheint, ist Code Colorizer Formatter .

Ich weiß nicht, ob es in LO 4 noch funktioniert, aber es könnte sich für Sie lohnen, es zu versuchen (oder zu retten und auf den neuesten Stand zu bringen!).

Carnendil
quelle
1
Der Code Colorizer Formatter wurde am 1. März 2015 mit Unterstützung für viele Programmiersprachen, einschließlich PHP, auf LibreOffice 4.4 aktualisiert. Ich habe Code Colorizer Formatter auf LibreOffice 4.2 getestet. Die Anweisungen auf der offiziellen Code Colorizer Formatter-Website haben bei mir nicht funktioniert, daher habe ich meine eigenen Anweisungen zur Verwendung von Code Colorizer Formatter in meine Antwort eingefügt.
Karl
0

Ich hatte es satt, meinen Code auf einer Online-Seite zu formatieren, und wollte, dass mein Code in LibreOffice oder OpenOffice Writer formatiert wird.

Ich habe festgestellt, dass die Erweiterung "cooder" auf meinem LibreOffice 5. * ordnungsgemäß ausgeführt wird, auch wenn die Installation fehlgeschlagen zu sein scheint (My LibreOffice 5. * wurde während der Installation angehalten).

Im Extension-Manager können Sie den Cooder aktivieren, LibreOffice / NeoOffice / OpenOffice neu starten und ein neues Symbol anzeigen, mit dem Sie Ihren Quellcode in LibreOffice formatieren können.

Sie können die Erweiterung unter folgender Adresse herunterladen: http://extensions.libreoffice.org/extension-center/coooder

Jo Canara
quelle