Hallo!

Ich brauche in einem Dokument sowohl minted (alternativlos!) als auch dottex (gerne auch Alternativen).

Jetzt ist es so, dass bereits in minted eine listing-Umgebung definiert wird und dottex das Paket moreverb lädt, welches ebenfalls versucht eine entsprechende Umgebung zu definieren und es kommt natürlich zum Fehler.

Wie kann ich also in einem Dokument sowohl minted als auch dottex nutzen? Bzw. gibt es alternativen zu dottex, welche nicht dieses Problem erzeugen?

Bereits folgendes Minimalbeispiel erzeugt den genannten Fehler:

Open in writeLaTeX
% arara: pdflatex: {shell: yes}
\documentclass{minimal}

\usepackage{minted}
\usepackage{dottex}

\begin{document}
  ohne Inhalt...
\end{document}

gefragt 03 Sep '14, 14:00

NobbZ's gravatar image

NobbZ
33731017
Akzeptiert-Rate: 40%


Ich habe von dottex keine Ahnung und minted habe ich auch schon ewig nicht mehr verwendet. Aber ich würde einfach mal

Open in writeLaTeX
% arara: pdflatex: {shell: yes}
\documentclass{article}

\usepackage{minted}
\let\mlisting\listing
\let\endmlisting\endlisting
\let\listing\relax
\expandafter\let\csname mlisting*\expandafter\endcsname\csname
listing*\endcsname
\expandafter\let\csname endmlisting*\expandafter\endcsname\csname
endlisting*\endcsname
\expandafter\let\csname listing*\endcsname\relax
\usepackage{dottex}

\begin{document}
\begin{mlisting}
Statt der listing-Umgebung von minted verwenden wir jetzt mlisting.
\end{mlisting}
\end{document}

ausprobieren.

Dabei wird ausgenützt, dass eine Umgebung foo intern als \foo und \endfoo definiert wird. Im Beispiel wird nun einfach \mlisting auf die Bedeutung von \listing und \endmlisting auf die Bedeutung von \endlisting gesetzt. Dadurch ist mlisting nun prinzipiell wie listing definiert. Damit listing neu definiert werden kann, wird \listing außerdem auf \relax gesetzt. Das gleiche wird dann noch für die Sternvariante mlisting* bzw. listing* gemacht, was etwas aufwendiger ist, weil * normalerweise nicht Teil eines Makronamens sein kann.

Theoretisch könnte man auch den umgekehrten Weg beschreiten, also der Umgebung von moreverb einen neuen Namen geben. Allerdings verwendet moreverb intern, beispielsweise bei \listinginput ebenfalls die Umgebung listing und erwartet dort natürlich die eigene Umgebung. Also müsste man dort weit mehr ändern.

Ob das ganze tatsächlich funktioniert, hängt dann natürlich auch davon ab, ob sonst noch irgendwo die Umgebung von minted unbedingt unter dem Namen listing oder listing* erwartet wird. In obigem Beispiel funktioniert es erst einmal. Leider musst Du so ggf. alle listings-Umgebungen von minted, die Du im Dokument hast, durch mlisting-Umgebungen ersetzen. Aber das sollte mit Suchen/Ersetzen schnell erledigt sein.

BTW: Ich zeichne Graphen mit TikZ. Je nachdem, was man macht, kann auch lt3graph eine Alternative sein.

Eine Alternative zu dottex wäre außerdem graphviz:

Open in writeLaTeX
% arara: pdflatex: {shell: yes}
\documentclass{article}

\usepackage{minted}
\usepackage{graphviz}

\begin{document}
Test
\end{document}

Die Klasse minimal ist übrigens nicht für vollständige Minimalbeispiele gedacht und dafür auch nur eingeschränkt tauglich. Das ist mehr so eine Art interne Testklasse für den LaTeX-Kern bzw. das Laden desselben.

Permanenter link

beantwortet 03 Sep '14, 16:00

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 03 Sep '14, 16:11

Funktioniert zumindest auf Seiten minted, was dagegen überhaupt nicht funktioniert ist dottex. Wobei ich allerdings auch gerade feststelle, dass es sich dabei um ein generelles dottex Problem zu handeln scheint, denn es tritt selbst dann auf, wenn ich dottex für sich alleine nutze, mache gleich eine neue Frage auf deswegen.

(03 Sep '14, 16:43) NobbZ
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×9
×3
×2

gestellte Frage: 03 Sep '14, 14:00

Frage wurde gesehen: 8,385 Mal

zuletzt geändert: 03 Sep '14, 16:43