Matlab Code einbinden

Schriftbild, Absätze und Auflistungen einstellen


stealthmx
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 23. Okt 2013, 18:53

Matlab Code einbinden

Beitrag von stealthmx »

Hallo zusammen, ich versuche seit einer Weile ein Problem in den Griff zu bekommen, schaffe es aber nicht. Es geht um einen Quelltext (Quelle Matlab) den ich versuche einzubinden. Ich habe hier (http://www.golatex.de/matlab-code-einbinden-t9746.html) eine Methode gefunden um die Formatierung gut darzustellen, allerdings habe den dann eine Menge Fehler.
\documentclass[ngerman,toc=listof,headsepline]{scrartcl}
\usepackage{geometry}
\geometry{a4paper, top=30mm, left=30mm, right=30mm, bottom=30mm,
headsep=10mm, footskip=10mm}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage[automark]{scrpage2}

\usepackage{amstext}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{dsfont}
\usepackage{stmaryrd}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[section]{placeins}

\usepackage{float}
\usepackage{textcomp}
\usepackage{array}
\usepackage[hyphens]{url}

\usepackage[bookmarks=false,colorlinks=true,citecolor=blue,linkcolor=blue]{hyperref}

\numberwithin{equation}{section}

\lhead{Hausaufgabe 4}
\rhead{\rightmark}
\lfoot{\today}
\cfoot{Gruppe 12}
\rfoot{Seite \thepage} 

\renewcommand{\sectionmark}[1]{\markright{\thesection.~#1}}
\renewcommand{\headrulewidth}{0.0pt} \renewcommand{\footrulewidth}{0.5pt}
\makeatother

\usepackage{xcolor, showframe} 


\definecolor{mlgreen}{rgb}{.035,.6,.251} 
\definecolor{mlviolett}{rgb}{.643,.259,.804} 

\usepackage{listings} 
\lstdefinestyle{mlab}{language=Matlab, numbers=left, numberstyle=\tiny,%5 
basicstyle={\ttfamily},% 
 keywordstyle={\color{blue}},% 
 commentstyle=\color{mlgreen},% 
 stringstyle=\color{mlviolett},% 
 breaklines=true, 
 }  % 


\begin{document}
Hier Text
\newpage
\begin{lstlisting}[style=mlab, caption=Beispielcode]{name}
function Aufgabe4
close all

%Grafikeinstellungen
set(0,'DefaultAxesFontName','CMU Serif'); 
set(0,'DefaultAxesFontSize', 12)

d=6000;         %Dauer der Lösung in Sekunden
ST=550;         %Schmelztemperatur
function Y=Temp(t)

%Periodizität:
    while t>=3780
        t=t-3720;
    end
\end{lstlisting} 

\end{document}
Zum ersten, werden eine Menge Fehler bezüglich ü,ä,ö etc angezeigt, etwas mit utf8 Kodierung. Als zweites Wird leider "mlgreenrgb.035,.6,.251 mlviolettrgb.643,.259,.804" ganz oben auf der Seite angezeigt. Außerdem wird die Liste hier irgendwie als Code interpretiert sodass unten auch alle Fehler angezeigt werden.

Ich muss dazu sagen, dass diese Vorlage nicht meinem Hirn entsprungen ist. Es wurde innerhalb der Gruppe entschieden, dass einer diese bereitsstellt. Sie hat grundlegend schon zwei Fehler, die ich leider nicht finden und beseitigen kann. Sie haben aber keinen Einfluss auf das Endergebnis.

Ich weiß leider nicht wie ich weiter die Fehler entfernen soll.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Die zwei an sich schon vorhandenen Fehler kommen davon, dass sowohl fancyhdr als auch scrpage2 geladen werden. Da in der Vorlage dann der pagestyle fancy genutzt wird und du an die Vorlage gebunden bist, solltest du die Zeile mit \usepackage{scrpage2} auskommentieren oder löschen. (Ansonsten wäre es besser scrpage2 statt fancyhdr zu nutzen.)

Außerdem machen die Umlaute in den Kommentaren des Listings Schwierigkeiten. Wenn ich folgendes einfüge, dann funktioniert das bei mir:
\lstset{literate=%
  {Ö}{{\"O}}1
  {Ä}{{\"A}}1
  {Ü}{{\"U}}1
  {ß}{{\ss}}2
  {ü}{{\"u}}1
  {ä}{{\"a}}1
  {ö}{{\"o}}1
}
Mit diesen beiden Änderungen läuft dein Beispiel bei mir fehlerfrei durch.
Das Problem mit der Ausgabe der Farbennamen kann ich also nicht nachvollziehen.

Ach und das Paket showframe, mit dem die Seitenaufteilung angezeigt wird, gehört bestimmt nicht zu der Vorlage. Das kannst du einfach löschen.

Gruß
Elke

stealthmx
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 23. Okt 2013, 18:53

Beitrag von stealthmx »

Hallo, die zwei "Standardfehler" sind weg danke, aber der Rest ist leider geblieben. Habe es mit dem Code erweitert, führt aber immer noch zu den oben beschriebenen Fehlern.
\documentclass[ngerman,toc=listof,headsepline]{scrartcl}
\usepackage{geometry}
\geometry{a4paper, top=30mm, left=30mm, right=30mm, bottom=30mm,
headsep=10mm, footskip=10mm}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{fancyhdr}
\pagestyle{fancy}

\usepackage{amstext}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{dsfont}
\usepackage{stmaryrd}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[section]{placeins}

\usepackage{float}
\usepackage{textcomp}
\usepackage{array}
\usepackage[hyphens]{url}

\usepackage[bookmarks=false,colorlinks=true,citecolor=blue,linkcolor=blue]{hyperref}

\numberwithin{equation}{section}

\lhead{Hausaufgabe 4}
\rhead{\rightmark}
\lfoot{\today}
\cfoot{Gruppe 12}
\rfoot{Seite \thepage} 

\renewcommand{\sectionmark}[1]{\markright{\thesection.~#1}}
\renewcommand{\headrulewidth}{0.0pt} \renewcommand{\footrulewidth}{0.5pt}
\makeatother

\definecolor{mlgreen}{rgb}{.035,.6,.251} 
\definecolor{mlviolett}{rgb}{.643,.259,.804} 

\usepackage{listings} 
\lstdefinestyle{mlab}{language=Matlab, numbers=left, numberstyle=\tiny,%5 
basicstyle={\ttfamily},% 
 keywordstyle={\color{blue}},% 
 commentstyle=\color{mlgreen},% 
 stringstyle=\color{mlviolett},% 
 breaklines=true, 
 }  % 



\lstset{literate=% 
  {Ö}{{\"O}}1 
  {Ä}{{\"A}}1 
  {Ü}{{\"U}}1 
  {ß}{{\ss}}2 
  {ü}{{\"u}}1 
  {ä}{{\"a}}1 
  {ö}{{\"o}}1 
}


\begin{document}
Hier Text
\newpage
\begin{lstlisting}[style=mlab, caption=Beispielcode]{name}
function Aufgabe4
close all

%Grafikeinstellungen
set(0,'DefaultAxesFontName','CMU Serif'); 
set(0,'DefaultAxesFontSize', 12)

d=6000;         %Dauer der Lösung in Sekunden
ST=550;         %Schmelztemperatur in K
function Y=Temp(t)

%Periodizität:
    while t>=3780
        t=t-3720;
    end
    ...
\end{lstlisting} 

\end{document}

Die Kommentare werden auch nicht grün dargestellt sondern bleiben schwarz.

Bild

stealthmx
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 23. Okt 2013, 18:53

Beitrag von stealthmx »

OK, habe vergessen das Paket color einzubinden. Damit bleibt nur noch der Fehler mit dem UTF8. äüö etc.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Binde statt color besser gleich xcolor ein - wie in deinem ursprünglichen Beispiel.

Mit xcolor läuft der angegebene Code bei mir dann fehlerfrei durch. Deshalb: Bekommst du die Kodierungsfehler wirklich mit dem angegebenen Beispiel oder steht am Anfang statt „Hier Text“ vielleicht etwas anderes, was Umlaute enthält? Dann solltest du prüfen, ob deine Datei tatsächlich utf8 kodiert ist. Du kannst statt \usepackage[utf8]{inputenc} aber auch
\usepackage{selinput} 
\SelectInputMappings{adieresis={ä},germandbls={ß}}
verwenden.

Gruß
Elke

stealthmx
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 23. Okt 2013, 18:53

Beitrag von stealthmx »

Hallo, ok xcolor wurde ersetzt. Nein der Fehler ist immer noch da: Das ist der kopierte Auszug:
\documentclass[ngerman,toc=listof,headsepline]{scrartcl}
\usepackage{geometry}
\geometry{a4paper, top=30mm, left=30mm, right=30mm, bottom=30mm,
headsep=10mm, footskip=10mm}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{fancyhdr}
\pagestyle{fancy}

\usepackage{amstext}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{dsfont}
\usepackage{stmaryrd}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[section]{placeins}
\usepackage{xcolor}
\usepackage{float}
\usepackage{textcomp}
\usepackage{array}
\usepackage[hyphens]{url}

\usepackage[bookmarks=false,colorlinks=true,citecolor=blue,linkcolor=blue]{hyperref}

\numberwithin{equation}{section}

\lhead{Hausaufgabe 4}
\rhead{\rightmark}
\lfoot{\today}
\cfoot{Gruppe 12}
\rfoot{Seite \thepage} 

\renewcommand{\sectionmark}[1]{\markright{\thesection.~#1}}
\renewcommand{\headrulewidth}{0.0pt} \renewcommand{\footrulewidth}{0.5pt}
\makeatother

\definecolor{mlgreen}{rgb}{.13,0.55,.13} 
\definecolor{mlviolett}{rgb}{.643,.259,.804} 

\usepackage{listings} 
\lstdefinestyle{mlab}{language=Matlab, numbers=left, numberstyle=\tiny,%5 
basicstyle={\ttfamily},% 
 keywordstyle={\color{blue}},% 
 commentstyle=\color{mlgreen},% 
 stringstyle=\color{mlviolett},% 
 breaklines=true, 
 }  % 



\lstset{literate=% 
  {Ö}{{\"O}}1 
  {Ä}{{\"A}}1 
  {Ü}{{\"U}}1 
  {ß}{{\ss}}2 
  {ü}{{\"u}}1 
  {ä}{{\"a}}1 
  {ö}{{\"o}}1 
}


\begin{document}
\newpage
\lstinputlisting[style=mlab, caption=Beispielcode]{test.m}
\end{document}
in der test.m file habe ich mal probiert einfach mal mehrere öäü zu setzten, dann kommt zu jedem öä ein Fehler das mit dem "Hier Text hat keine Auswirkung, deswegen habe ich es auch rausgenommen.

im test.m steht:
function Aufgabe4
close all

%Grafikeinstellungen
set(0,'DefaultAxesFontName','CMU Serif'); 
set(0,'DefaultAxesFontSize', 12)

d=6000;         %Dauer der Lösung in Sekundenööööüüßß
ST=550;         %Schmelztemperatur
Die Fehler sind immer noch statt, statt des utf8 habe ich Code von dir benutzt ist der gleiche Fehler.

Ich muss dazusagen, es gab dieses Problem mit den öäü schon mal, es war total merkwürdig. Wir hatten eine Hauptdokument in den dann jeweils die einzelnen Aufgaben eingebunden wurden. (mit \input{aufgabe1.tex etc}) In einer der Aufgaben konnten wir normal äüö etc schreiben in die andere Datei hingegen mussten wir "o benutzten. obwohl die Daten identisch waren. Wir haben auch sie dann kopiert und quasi mehrfach eingebunden, doch auch da der Fehler blieb.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Dein Problem kann ich reproduzieren, wenn ich test.m und die tex Datei mit verschiedenen Kodierungen abspeichere.

Kontrolliere also bitte die Kodierung deiner Datei test.m! Die muss mit der von deiner Hauptdatei übereinstimmen.

Siehe auch Problem mit Umlauten in verschiedenen Kapiteln

Gruß
Elke

stealthmx
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 23. Okt 2013, 18:53

Beitrag von stealthmx »

Hallo, Tatsache, die m File war in charset=iso-8859-1 kodiert, nun habe ich es hinbekommen, das Matlab in UTf8 zu speichern. Werde es zuhause testen

stealthmx
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mi 23. Okt 2013, 18:53

Beitrag von stealthmx »

Ne das klappt leider auch nicht es werden immer noch alle äöü angekreidet und nicht dargestellt. Habe es mit Ubuntu getestet beide Daten haben UTF8 Kodierung. Sowohl das m File als auch das Minimalbeispiel. Jetzt weiß ich nicht mehr weiter.


Ach die Ursprungsdatei (Minimalbeispiel) wurde mit einem Mac verfasst.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Solange nur Kommentare in den Listings Probleme machen, kannst du notfalls immer noch ae statt ä schreiben. Trotzdem läuft das folgende Beispiel bei mir unter aktuell Miktex in Windows und aktuellem Texlive2013 unter Windows und unter Ubuntu fehlerfrei durch:
\listfiles
\documentclass[ngerman]{scrartcl} 
\usepackage{babel}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}

\usepackage{xcolor} 
\definecolor{mlgreen}{rgb}{.13,0.55,.13} 
\definecolor{mlviolett}{rgb}{.643,.259,.804} 

\usepackage{listings} 
\lstdefinestyle{mlab}{language=Matlab, numbers=left, numberstyle=\tiny,%5  
 basicstyle={\ttfamily},%  
  keywordstyle={\color{blue}},%  
  commentstyle=\color{mlgreen},%  
  stringstyle=\color{mlviolett},%  
  breaklines=true, 
  }  %  

\lstset{literate=%  
   {Ö}{{\"O}}1 
   {Ä}{{\"A}}1 
   {Ü}{{\"U}}1 
   {ß}{{\ss}}2 
   {ü}{{\"u}}1 
   {ä}{{\"a}}1 
   {ö}{{\"o}}1 
} 


\begin{document} 
\begin{lstlisting}[style=mlab]
 d=6000;         %Dauer der Lösung in Sekunden 
%Periodizität: 
\end{lstlisting} 
\end{document}
Lass bei dir mal wirklich genau dieses Beispiel laufen. Das \listfiles am Anfang dieser Datei sorgt dafür, dass du am Ende der log Datei alle geladenen Dateien aufgeführt bekommst. Dann siehst du, welche Paketversionen bei dir verwendet werden und kannst sie mit meinen vergleichen.
 *File List*
scrartcl.cls    2012/07/29 v3.11b KOMA-Script document class (article)
scrkbase.sty    2012/07/29 v3.11b KOMA-Script package (KOMA-Script-dependent ba
sics and keyval usage)
 scrbase.sty    2012/07/29 v3.11b KOMA-Script package (KOMA-Script-independent 
basics and keyval usage)
  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
scrlfile.sty    2012/06/15 v3.12 KOMA-Script package (loading files)
tocbasic.sty    2012/04/04 v3.10b KOMA-Script package (handling toc-files)
scrsize11pt.clo    2012/07/29 v3.11b KOMA-Script font size class option (11pt)
typearea.sty    2012/07/29 v3.11b KOMA-Script package (type area)
   babel.sty    2008/07/08 v3.8m The Babel package
 bblopts.cfg    2006/07/31 v1.0 MiKTeX 'babel' configuration
ngermanb.ldf    2008/07/06 v2.6n new German support from the babel system
selinput.sty    2007/09/09 v1.2 Semi-automatic input encoding detection (HO)
inputenc.sty    2008/03/30 v1.1d Input encoding file
kvsetkeys.sty    2012/04/25 v1.16 Key value parser (HO)
infwarerr.sty    2010/04/08 v1.3 Providing info/warning/error messages (HO)
etexcmds.sty    2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
ifluatex.sty    2010/03/01 v1.3 Provides the ifluatex switch (HO)
stringenc.sty    2011/12/02 v1.10 Convert strings between diff. encodings (HO)
 ltxcmds.sty    2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
pdfescape.sty    2011/11/25 v1.13 Implements pdfTeX's escape features (HO)
pdftexcmds.sty    2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO)
   ifpdf.sty    2011/01/30 v2.3 Provides the ifpdf switch (HO)
kvoptions.sty    2011/06/30 v3.11 Key value format for package options (HO)
 ix-name.def    2011/05/27 v1.10 Name list (inputenx)
 se-utf8.def    2011/12/02 v1.10 stringenc: UTF-8
    utf8.def    2008/04/05 v1.1m UTF-8 support for inputenc
   t1enc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
  ot1enc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
  omsenc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
  xcolor.sty    2007/01/21 v2.11 LaTeX color extensions (UK)
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
  pdftex.def    2011/05/27 v0.06d Graphics/color for pdfTeX
listings.sty    2013/08/26 1.5b (Carsten Heinz)
 lstmisc.sty    2013/08/26 1.5b (Carsten Heinz)
listings.cfg    2013/08/26 1.5b listings configuration
supp-pdf.mkii
lstlang1.sty    2013/08/26 1.5b listings language file
 ***********
Gruß
Elke

Antworten