Seite 1 von 1
Listings mit Matlab
Verfasst: Mi 19. Jun 2013, 11:35
von Hannes_r
Ich habe versucht einen Matlab Code in Latex folgendermaßen einzubinden:
\documentclass[
a4paper, 12pt
]{scrreprt}
\usepackage{listings}
\usepackage{color}
\begin{document}
\lstset{
language=Matlab,
breaklines=true,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
\lstinputlisting[language=Matlab, frame=single]{./code/regelstrategie.m}
\end{document}
Ergebnis:
im Matlabfile an dieser stelle steht:
Tsoll_H = komforttemp - 2;
Tsoll_K = komforttemp + 2;
% Heizgrenze = Tsoll_H-Rlf*qelb;
% Kuehlgrenze= Tsoll_K-Rlf*qeub;
if (T_Au_aktiv < Heizgrenze) && (T_Au_aktiv < Kuehlgrenze)
Betriebsart= 1; %Heizen
elseif (T_Au_aktiv > Heizgrenze) && (T_Au_aktiv > Kuehlgrenze)
Betriebsart= 2; %Kuehlen
elseif (T_Au_aktiv <= Heizgrenze) && (T_Au_aktiv >= Kuehlgrenze)
Betriebsart= 3; %Heizen oder Kuehlen
else
Betriebsart= 0; %Aus
end
[\code]
Das Einfügen der Kommentare klappt nicht. Wo liegt der Fehler?
Listings mit Matlab
Verfasst: Fr 21. Jun 2013, 13:28
von Hannes_r
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
[\code]
Diese Pakete hatte ich vergessen zu erwähnen. Ich benutze außerdem TeXStudio 2.5.2 und Miktex 2.9 falls das hilft.
Komisch das im Netzt kein Anderer auf dieses Problem stößt.
Verfasst: Fr 21. Jun 2013, 13:48
von Epllus
Bei mir zeigt das Minimalbeispiel das Gewünschte.
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.m}
Tsoll_H = komforttemp - 2;
Tsoll_K = komforttemp + 2;
% Heizgrenze = Tsoll_H-Rlf*qelb;
% Kuehlgrenze= Tsoll_K-Rlf*qeub;
if (T_Au_aktiv < Heizgrenze) && (T_Au_aktiv < Kuehlgrenze)
Betriebsart= 1; %Heizen
elseif (T_Au_aktiv > Heizgrenze) && (T_Au_aktiv > Kuehlgrenze)
Betriebsart= 2; %Kuehlen
elseif (T_Au_aktiv <= Heizgrenze) && (T_Au_aktiv >= Kuehlgrenze)
Betriebsart= 3; %Heizen oder Kuehlen
else
Betriebsart= 0; %Aus
end
\end{filecontents}
\documentclass[
a4paper, 12pt
]{scrreprt}
\usepackage{listings}
\usepackage{xcolor} % besser als color
\begin{document}
\lstset{
language=Matlab,
breaklines=true,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
}
\lstinputlisting[language=Matlab, frame=single]{\jobname.m}
\end{document}
Listings habe ich Version 1.4.
Grüße
Epllus
Listings mit Matlab
Verfasst: Fr 21. Jun 2013, 16:31
von Hannes_r
Danke für das Testen. Also liegt es wohl nicht an falschen Parametern für Listings.
Könnte es dann sein das andere Pakete dazwischen funken?
Bei direkt einbinden ohne externes File kam das selbe Ergebnis..
Verfasst: Fr 21. Jun 2013, 16:56
von Epllus
Ist das Paket „listings“ auf dem neuesten Stand und richtig installiert?
Listings mit Matlab
Verfasst: Fr 21. Jun 2013, 17:39
von Hannes_r
Ich habe ebenfalls die Version listings 2007/02/22 1.4.
Zur richtigen Installation kann ich nur sagen, dass im Miktex Package Manager listings mit installed on gekennzeichnet ist.
Listing ohne "s" brauch ich ja nicht oder?
Listings mit Matlab
Verfasst: Fr 21. Jun 2013, 18:00
von Hannes_r
Ok schuld ist wohl das vorherige XML Listing, daher der komplette Code.
Wie lösche ich die Einstellungen aus dem XML Listings?
\documentclass[
a4paper, 12pt
]{scrreprt}
\usepackage{listings}
\usepackage{color}
\begin{document}
\lstset{
language=XML,
breaklines=true,
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
commentstyle=\color{gray}\upshape
morestring=[b]",
morestring=[s],
morecomment=[s]{<?}{?>},
stringstyle=\color{magenta},
identifierstyle=\color{cyan},
keywordstyle=\color{darkblue},
morekeywords={day,date,Jun, low, high, text, code}
}
\begin{lstlisting}[frame=single]
<yweather:forecast day="Thu" date="6 Jun 2013" low="17" high="22" text="Partly Cloudy" code="30"/>
<yweather:forecast day="Fri" date="7 Jun 2013" low="17" high="23" text="Partly Cloudy" code="30"/>
<yweather:forecast day="Sat" date="8 Jun 2013" low="17" high="23" text="Partly Cloudy" code="30"/>
<yweather:forecast day="Sun" date="9 Jun 2013" low="17" high="24" text="Mostly Cloudy" code="28"/>
<yweather:forecast day="Mon" date="10 Jun 2013" low="17" high="23" text="AM Clouds/PM Sun" code="30"/>
\end{lstlisting}
\lstset{
language=Matlab,
breaklines=true,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
\lstinputlisting[language=Matlab, frame=single]{./code/regelstrategie.m}
\end{document}
Verfasst: Fr 21. Jun 2013, 19:38
von Epllus
Hannes_r hat geschrieben:Ok schuld ist wohl das vorherige XML Listing, daher der komplette Code.
Wie lösche ich die Einstellungen aus dem XML Listings?
Eher ein vergessenes { und Beistrich:
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.m}
Tsoll_H = komforttemp - 2;
Tsoll_K = komforttemp + 2;
% Heizgrenze = Tsoll_H-Rlf*qelb;
% Kuehlgrenze= Tsoll_K-Rlf*qeub;
if (T_Au_aktiv < Heizgrenze) && (T_Au_aktiv < Kuehlgrenze)
Betriebsart= 1; %Heizen
elseif (T_Au_aktiv > Heizgrenze) && (T_Au_aktiv > Kuehlgrenze)
Betriebsart= 2; %Kuehlen
elseif (T_Au_aktiv <= Heizgrenze) && (T_Au_aktiv >= Kuehlgrenze)
Betriebsart= 3; %Heizen oder Kuehlen
else
Betriebsart= 0; %Aus
end
\end{filecontents}
\documentclass[
a4paper, 12pt
]{scrreprt}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\lstset{
language=XML,
breaklines=true,
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
commentstyle=\color{black!50}\upshape , %%% Beistrich vergessen!!!!!!!
morestring=[b]",
morestring=[s],
morecomment=[s]{<?}{?>},
stringstyle=\color{magenta},
identifierstyle=\color{cyan},
keywordstyle=\color{blue},
morekeywords={day,date,Jun, low, high, text, code}
}
\begin{lstlisting}[frame=single]
<yweather:forecast day="Thu" date="6 Jun 2013" low="17" high="22" text="Partly Cloudy" code="30"/>
<yweather:forecast day="Fri" date="7 Jun 2013" low="17" high="23" text="Partly Cloudy" code="30"/>
<yweather:forecast day="Sat" date="8 Jun 2013" low="17" high="23" text="Partly Cloudy" code="30"/>
<yweather:forecast day="Sun" date="9 Jun 2013" low="17" high="24" text="Mostly Cloudy" code="28"/>
<yweather:forecast day="Mon" date="10 Jun 2013" low="17" high="23" text="AM Clouds/PM Sun" code="30"/>
\end{lstlisting}
\lstset{
language=Matlab,
breaklines=true,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
}
\lstinputlisting[language=Matlab, frame=single]{\jobname.m}
\end{document}
Grüße
Epllus
Listings mit Matlab
Verfasst: Fr 21. Jun 2013, 20:43
von Hannes_r
Es hat geklappt. Danke für den Hinweis es war wirklich das Komma. Das Alles wegen einem so kleinen Leichtsinnfehlers... Danke dir
