Wiederherstellen der Deafult-Werte beim listings Package?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Wiederherstellen der Deafult-Werte beim listings Package?

von Johannes_B » Do 23. Okt 2014, 08:07

blackbee045 hat geschrieben:Da ich eine Programmierungsumgebung leider nicht nutzen kann, da ich Code per \lstinputlisting importiere, habe ich mir einfach eine neue Standardumgebung gebastelt und verwende nur in der \lstset: ???
Völlige Zustimmung, auch wenn das Spam ist.

Was mich verwirrt, ist das Fehlen des von dir beschriebenen Handelns im Minimalbeispiel. Woher sollen wir wissen, was du genau machst?

Bitte beachte auch, dass \\\\ bestimmt falsch ist. Wenn du uns sagst, was du damit erreichen willst, dann gibt es bestimmt eine Alternative.

von Besserwisser » Do 23. Okt 2014, 08:03

Man kann auch bei \lstinputlisting Optionen angeben, also beispielsweise \lstinputlisting[language=custompython]{Datei}. Dann braucht man keine zusätzliche Umgebung. Wichtig ist einfach nur, dass man \lstset wirklich nur verwendet, wenn man die Standardeinstellungen (für die aktuelle Gruppe) ändern will. Das ist vergleichbar mit der Verwendung von \sffamily o. ä.

von Nikero » Mi 22. Okt 2014, 20:43

Johannes_B hat geschrieben:Du beschreibst das zu erwartende Verhalten.
Entweder, übergieb ein optionales Argument für die Listings, oder definier dir gleich neue Umgebungen.
Vielen Dank für die Antwort. Da ich eine Programmierungsumgebung leider nicht nutzen kann, da ich Code per \lstinputlisting importiere, habe ich mir einfach eine neue Standardumgebung gebastelt und verwende nur in der \lstset:
\documentclass[ngerman,12pt,bibtotoc]{scrartcl}

\usepackage[usenames,dvipsnames]{color}
\usepackage{listings}

\lstdefinelanguage{custompython}{
      language=Python,
        %
        literate=*{1}{{{\color{red}1}}}1
}

\lstdefinelanguage{custommatlab}{
      language=Matlab,
        %
        stringstyle=\color{green},
        %
}

\newenvironment{donothing}{}{}

\begin{document}
\begin{donothing}
	\lstset{language=custompython}
	\begin{lstlisting}
	a=1
	stri='hello'
	\end{lstlisting}
	Python 1: richtig\\\\
\end{donothing}

\begin{donothing}
	\lstset{language=custommatlab}
	\begin{lstlisting}
	a=1
	stri='hello'
	\end{lstlisting}
	Matlab 1: richtig\\\\
\end{donothing}
\begin{donothing}
	\lstset{language=custompython}
	\begin{lstlisting}
	a=1
	stri='hello'
	\end{lstlisting}
	Python 2: richtig
\end{donothing}
\end{document}

von Johannes_B » Mi 22. Okt 2014, 17:55

Du beschreibst das zu erwartende Verhalten.
Entweder, übergieb ein optionales Argument für die Listings, oder definier dir gleich neue Umgebungen.
\documentclass[ngerman,12pt,bibtotoc]{scrartcl}

\usepackage[usenames,dvipsnames]{color}
\usepackage{listings}

\lstdefinelanguage{custompython}{
      language=Python,
        %
        literate=*{1}{{{\color{red}1}}}1
}

\lstdefinelanguage{custommatlab}{
      language=Matlab,
        %
        stringstyle=\color{green},
        %
}
\lstnewenvironment{python}{\lstset{language=python,
        literate=*{1}{{{\color{red}1}}}1
}}{}
\lstnewenvironment{matlab}{
	\lstset{language=Matlab,
	stringstyle=\color{green},
}
}{}
\begin{document}

\begin{lstlisting}[language=custompython]
a=1
stri='hello'
\end{lstlisting}
Python 1: richtig

\begin{lstlisting}[language=custommatlab]
a=1
stri='hello'
\end{lstlisting}
Matlab 1: falsch (Zahlen rot)

\begin{lstlisting}[language=custompython]
a=1
stri='hello'
\end{lstlisting}
Python 2: falsch (Strings gruen)
\par\noindent\rule{\textwidth}{.4pt}
\begin{python}
a=1
stri='hello'
\end{python}
\begin{matlab}
a=1
stri='hello'
\end{matlab}
\end{document}

Wiederherstellen der Deafult-Werte beim listings Package?

von Nikero » Mi 22. Okt 2014, 14:08

Hallo Allerseits.
Ich schreibe derzeit an einem Dokument, in dem ich Code in mehreren Sprachen habe. Dabei habe ich mir für jede Sprache eine eigene Highlight Syntax gebastelt.
Das Problem ist nur, dass die von der vorherigen Sprache geänderten Werte bei der Benutzung des nächsten Styles bzw. Sprache einfach mit übernommen werden, solange ich sie nicht explizit überschreibe. Dies macht das wechseln zwischen den verschieden Sprachen teilweise sehr mühselig.
Daher suche ich einen Befehl oder ähnliches, mit dem ich einfach die Default Werte wieder herstellen kann. Per Google habe ich so etwas leider nicht gefunden, aber gibt es da eine Möglichkeit?
Falls es sowas nicht gibt, kennt jemand einen Trick, um es doch so hinzukriegen?

Ich bedanke mich bereits im Vorraus für Antworten. Hier ein Minimalbeispiel:
\documentclass[ngerman,12pt,bibtotoc]{scrartcl}

\usepackage[usenames,dvipsnames]{color}
\usepackage{listings}

\lstdefinelanguage{custompython}{
		language=Python,
        %
        literate=*{1}{{{\color{red}1}}}1
}

\lstdefinelanguage{custommatlab}{
		language=Matlab,
        %
        stringstyle=\color{green},
        %
}
\begin{document}
\lstset{language=custompython}
\begin{lstlisting}
a=1
stri='hello'
\end{lstlisting}
Python 1: richtig\\\\
\lstset{language=custommatlab}
\begin{lstlisting}
a=1
stri='hello'
\end{lstlisting}
Matlab 1: falsch (Zahlen rot)\\\\
\lstset{language=custompython}
\begin{lstlisting}
a=1
stri='hello'
\end{lstlisting}
Python 2: falsch (Strings gruen)
\end{document}

Nach oben