Seite 1 von 1

Fehler mit lstlisting Umgebung (MikTeX 2.9.6745 (64 Bit))

Verfasst: Mo 29. Apr 2019, 12:11
von dennxs
Hallo,

ich habe ein Problem mit der "lstlisting" Umgebung und finde leider keine Lösung dazu.

Die Kompilierung bleibt an der Stelle stehen, wo sich der Inhalt der "lstlisting" Umgebung befindet. Befindet sich kein Inhalt in der Umgebung, so funktioniert die Kompilierung.

Beispiel:
\begin{lstlisting}
\end{lstlisting}
funktioniert.
Was wiederum nicht funktioniert ist:
\begin{lstlisting}
int i = 1
\end{lstlisting}
oder:
\begin{lstlisting}
<<Absatz>>
\end{lstlisting}
Leider finde ich keine Lösung dazu. Der Kompiler bleibt an der Stelle "C:\Users\xxx\AppData\Local\Programs\MiKTeX2.9\tex\latex\listings\lstlang1.sty" stehen und läuft nicht mehr weiter. Kompiliert wird an dieser Stelle mit PdfLaTeX.

Meine LaTeX Dateien basieren auf folgendes Template (https://github.com/jreichwald/DHBW_LaTeX_Template), welches sich auch problemlos mit "lstlisting" Umgebung kompilieren lässt. Sobald ich aber meine config.tex in dem Template kopiere, funktioniert es nicht mehr. Daher vermute ich das Problem in meiner config.tex.

Kann mir jemand weiter helfen?

Re: Fehler mit lstlisting Umgebung (MikTeX 2.9.6745 (64 Bit)

Verfasst: Mo 29. Apr 2019, 13:48
von markusv
dennxs hat geschrieben:Was wiederum nicht funktioniert ist:
\begin{lslisting}
int i = 1
\end{lstlisting}
oder:
\begin{lslisting}
<<Absatz>>
\end{lstlisting}
Dass dies nicht funktionieren kann, ist logisch, da lslisting (ohne t) nicht der Umgebung entspricht. Wenn dies nicht der entscheidende Fehler ist, rate ich dazu, ein ordentliches Minimalbeispiel anzufertigen.

Verfasst: Mo 29. Apr 2019, 14:05
von dennxs
Dass dies nicht funktionieren kann, ist logisch, da lslisting (ohne t) nicht der Umgebung entspricht. Wenn dies nicht der entscheidende Fehler ist, rate ich dazu, ein ordentliches InfoMinimalbeispiel anzufertigen.
Entschuldige das ist ein Übertragungsfehler. Die Umgebungen sind mit lstlisting angegeben und das Kompilieren führt auch nicht zu Fehler.

Das Beispiel (Der Kompiler bleibt hier bei "MiKTeX 2.9\tex\latex\lm\t1lmtt.fd" stehen):
\documentclass[
	12pt,
	BCOR=5mm,
	DIV=12,
	headinclude=on,
	footinclude=off,
	parskip=half,
	bibliography=totoc,
	listof=entryprefix,
	toc=listof,
	pointlessnumbers,
    plainfootsepline]{scrreprt}
    
    \input{config}
    %\usepackage{listings}
    \begin{document}
        \chapter{Test}
            \begin{lstlisting}
                int i = 5;
            \end{lstlisting}
    \end{document}
Beispiel und die angehängte config.tex müssen in dem selben Ordner sein.

Verfasst: Mo 29. Apr 2019, 14:06
von Gast
Am fehlenden t liegt es leider nicht allein.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{listings}

\usepackage{hyperref}
\usepackage{varioref}
\usepackage{cleveref}


\begin{document}
\begin{lstlisting}
int i = 1
\end{lstlisting}
\end{document}
zeigt ein ähnliches Endlosschleifenproblem.

Der Fehler liegt in der Aufrufreihenfolge der drei Pakete hyperref, varioref und cleveref. Es ist bekannt, dass hyperref im Allgemeinen als eines der letzten Pakete geladen werden sollte. Dagegen verstößt die verlinkte und auch die herunterladbare config.tex schon in recht eklatanter Weise. Eine Ausnahme von dieser Regel ist das Paket cleveref, das explizit nach hyperref zu laden ist.

Mit der Ladereihenfolge
\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}
müsste es gehen.

Ich möchte dennoch dazu raten, die config.tex etwas aufzuräumen oder besser gleich die ganze Vorlage wegzuwerfen und klein neu anzufangen. Siehe auch https://komascript.de/latexvorlage

Verfasst: Mo 29. Apr 2019, 14:18
von dennxs
Anonymous hat geschrieben:Am fehlenden t liegt es leider nicht allein.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{listings}

\usepackage{hyperref}
\usepackage{varioref}
\usepackage{cleveref}


\begin{document}
\begin{lstlisting}
int i = 1
\end{lstlisting}
\end{document}
zeigt ein ähnliches Endlosschleifenproblem.

Der Fehler liegt in der Aufrufreihenfolge der drei Pakete hyperref, varioref und cleveref. Es ist bekannt, dass hyperref im Allgemeinen als eines der letzten Pakete geladen werden sollte. Dagegen verstößt die verlinkte und auch die herunterladbare config.tex schon in recht eklatanter Weise. Eine Ausnahme von dieser Regel ist das Paket cleveref, das explizit nach hyperref zu laden ist.

Mit der Ladereihenfolge
\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}
müsste es gehen.

Ich möchte dennoch dazu raten, die config.tex etwas aufzuräumen oder besser gleich die ganze Vorlage wegzuwerfen und klein neu anzufangen. Siehe auch https://komascript.de/latexvorlage
Danke, du hast meine Bachelorarbeit gerettet :D Es lag daran, dass cleverref vor hyperref geladen wurde. Habe jetzt beides am Ende der Datei gepackt. Die Zeit reicht leider nicht mehr, um nochmal von neu anzufangen :D

Tausend Dank.

Verfasst: Mo 29. Apr 2019, 17:30
von Bartman
\crefname{chapter}{Kapitel}{Kapitel}
\crefname{section}{Unterkapitel}{Unterkapitel}
\crefname{subsection}{Unterkapitel}{Unterkapitel}
\crefname{listing}{Quelltext}{Quelltexte}% <- eingefügt
Die erste Änderung ist unnötig. Die zweite und dritte Änderung brauchst Du nur, wenn es tatsächlich eine Vorgabe sein sollte, die Querverweise auf Abschnitte so zu benennen. Da ich passend zu den Änderungen
\renewcommand{\lstlistingname}{Quelltext} 
\renewcommand{\lstlistlistingname}{Quelltextverzeichnis}


in Deiner angehängten Datei keine Anpassung der Beschriftung der Querverweise für Quelltexte finden konnte, habe ich meinen Vorschlag hinzugefügt.

Bei der gemeinsamen Verwendung der beiden Pakete für Querverweise und dem Befehl \vref solltest Du auch die Berichtigung einer unerwünschten Ausgabe einfügen.