Ich schreibe gerade an einem Dokument, in dem sehr viele Codebeispiele enthalten sind, die ich mit dem Paket minted darstelle. Für jedes Codebeispiel wird beim Kompilieren das externe Programm pygments aufgerufen, soweit ich das sehe temporär irgendeine externe Datei geschrieben ..., was mit wachsendem Dokument die Kompilierzeit merklich in die Höhe treibt. Gibt es eine Möglichkeit das Kompilieren zu beschleunigen, z.B. eine Option die für Codebeispiele pygments nur dann aufruft, wenn sich was geändert hat? gefragt 10 Aug '14, 18:10 feynman
Ergebnis 5 von 12
show 7 more comments
|
Der aktuelle Development-Snapshot bietet eine Damit wird der Quellcode unverändert, aber mit den wichtigen Einstellungen direkt und ohne den externen Python-Aufruf an eine Aufgrund der Tatsache, dass es sich eben um einen Development-Snapshot handelt, empfehle ich, daher Die dazugehörige Anleitung kann von https://github.com/gpoore/minted/raw/master/source/minted.pdf heruntergeladen werden. Die Anleitung scheint allerdings ein wenig hinterherzuhängen, ihr letzter Commit ist 8 Monate alt, die Draft Option wurde erst vor wenigen Wochen auf meine Anfrage hinzugefügt. beantwortet 10 Aug '14, 20:31 NobbZ Danke für die Antwort. Mit der draft Option könnte ich sehr gut leben. Allerdings erhalte ich mit deinem Vorschlag die Meldung ! LaTeX Error: File `lineno.sty' not found.
(10 Aug '14, 22:50)
feynman
(10 Aug '14, 22:52)
NobbZ
tlmgr habe ich unter Archlinux nicht zur Verfügung. Mal schauen, ob ich das irgendwie anders auftreiben kann.
(10 Aug '14, 22:55)
feynman
Habs jetzt. draft Option funktioniert so, danke.
(10 Aug '14, 22:57)
feynman
Auch unter Arch-Linux funktioniert das deinstallieren der paketierten Version und mit anschliessender händischer Installation von TeX-Live. Wenigstens ist bei Arch das paketierte TL etwas aktueller als bei Debian und Derivaten (bis Ubuntu 12.10 wurde mir da TL2009 installiert) Und gerade wegen dieser Kluft und dem fehlenden tlmgr habe ich mich für händische Installation entschieden. Unter Arch gibt es zB das Paket
(10 Aug '14, 23:06)
NobbZ
Nachdem das Dummy-Paket installiert wurde macht man weiter wie im TL-Handbuch beschrieben: https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-140003
(10 Aug '14, 23:06)
NobbZ
Ergebnis 5 von 7
show 2 more comments
|
@feynman Das Paket bietet das nicht. Außerdem gäbe es das grundsätzliche Problem, überhaupt zu erkennen, ob sich etwas geändert hat.
Dann finde ich wohl deshalb auch nichts in der Dokumentation. Sollte ich die Frage dann löschen?
@feynman: Es ist unabhängig davon, ob es eine befriedigende Antwort dafür gibt, eine berechtigte Frage. BTW: Wenn die Listings alle externe Dateien wären, könnte man tatsächlich versuchen, die Ergebnisse des
pygments
-Laufs nicht zu löschen, sondern zu erhalten und dann das Dateidatum der Ergebnisdatei mit dem der Listings vergleichen. Über Erweiterungen vonpdfTeX
ist das Änderungsdatum theoretisch verfügbar. Leider bietet das Paket auch nicht die Möglichkeit, externe Listing zu laden, sondern erwartet die Listings immer im Quelltext des Dokuments. Das macht alles etwas kompliziert …Könnte man eventuell auch an die Stellen der listings Dummies setzen, die den Platz reservieren, sodass man in einem Entwurfsmodus ohne minted kompilieren kann und dann für die finale Version erst minted verwendet?
@feynman: Ich wüsste nicht, was man dabei gewinnen würde, denn um den Platz zu reservieren, müsste man wissen wie groß die formatierten Listings sind. Dazu wiederum müsste man
pygments
laufen lassen, um dann das Ergebnis auszumessen …Als Alternative zu minted habe ich gerade noch das Paket pythontex entdeckt. Dessen Benutzung ist aber keine wirkliche Antwort auf die Frage.
@feynman: Ich weiß ja nicht, was Du konkret machst, aber vielleicht wäre
listings
ja für Dich auch ausreichend. Das benötigt kein externen Programme.@Ijon Tichy Das Paket kenne ich und habe es auch schon benutzt, allerdings gefällt mir da das Syntaxhighlighting nicht. Ich weiß zwar, dass man das dort auch anpassen kann, aber z. B. bei meinen Python-Codes habe ich es nicht geschafft, dass es Namen von Funktionen zuverlässig erkennt. Das geht vermutlich auch nur, wenn der Code durch ein externes Programm läuft, dass die Syntax und Semantik der Programmiersprache kennt!?
Das Paket pythontex ist sehr jung, erst seit letzter Woche auf CTAN. Die Dokumentation fand ich beim ersten drüberlesen sehr knapp.
Also bei mir in TeXLive 2013 ist es dabei. Dokumentation ist doch weit über 100 Seiten groß. Ich teste es gerade. Paar Dinge fehlen mir, z.B. automatischen Zeilenumbruch im Code.
OK, Sorry, mein Fehler, das neue Paket das auf das
Pygments
-Projekt setzt istPygmenTeX
, dass wurde erst letzten Montag (2014-08-04) auf c.t.tex angekündigt. Und mit gerade mal 18 Seiten ist die Anleitung sehr Knapp und besteht eigentlich mehr aus vielen bunten Beispielen als aus Erklärungen.Davon abgesehen ist
PythonTeX
ein allgemeiner Wrapper von LaTeX nach Python. Soweit ich es bisher verstanden habe quasi ein luaLaTeX der mit Python läuft und sich als Paket einbinden lässt. Aber PythonTeX selbst stellt AFAIK keine Highlighting Methode dar.Im Gegenteil, es ist eine der Vorbedingungen die minted an das System stellt. Im übrigen sind beide Pakete vom gleichen Autor.