Probleme beim Einbinden von Matlab Code in LaTeX

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: Probleme beim Einbinden von Matlab Code in LaTeX

von steffn » Mi 29. Jul 2015, 10:17

So, habe jetzt die ² durch ^2 ersetzt, wie Johannes empfohlen hat. Jetzt klappts wunderbar ;)

War gar nicht so schwer :wink:

Danke für die Hilfe!

von u_fischer » Di 28. Jul 2015, 17:42

steffn hat geschrieben: Ansich ist mein Dokument aber glaub ich nicht in ansinew gespeichert

Im angehängten Screenshot ist die Auswahl an möglichen Codierungen. Wie gesagt ich hatte das Dokument bisher immer in ISO-8859-1 gespeichert
Das sollte passen. ansinew und latin1/ISO-8859-1 sind mehr oder weniger das Gleiche. Außerdem hattest du ja keine grundsätzlichen Problem mit Umlauten sondern nur eines mit deiner 2 im Listing. Hast du denn mein Beispiel ausprobiert?

von Johannes_B » Di 28. Jul 2015, 16:59

Wie überprüfe ich die Standardeingabekodierung in meinem Editor?

Ich würde grundsätzlich utf8 empfehlen, dann kommst du aber auch gleich beim nächsten Problem an: Wie kann ich Umlaute mit dem Paket listings darstellen?


Ich persönlich würde allerdings die Erklärung der Variablen als Text schreiben, nicht als Code. Und in Code grundsätzlich nur ASCII. Aber das ist meine Meinung.

von steffn » Di 28. Jul 2015, 16:45

Ok, dann mal vielleicht noch ne Frage zu den ganzen Codierungen. Das ansinew war in der mydefs.sty von der Vorlage ausgewählt, also:
\usepackage[ansinew]{inputenc}
Ansich ist mein Dokument aber glaub ich nicht in ansinew gespeichert...zumindest kann ich das bei der Kodierungswahl nicht direkt auswählen. Evtl hat ansinew noch einen zweiten Namen?!

Im angehängten Screenshot ist die Auswahl an möglichen Codierungen. Wie gesagt ich hatte das Dokument bisher immer in ISO-8859-1 gespeichert und bis auf das mit dem Code keine Probleme bei der Darstellung.

Mir persönlich ist es egal, in was es codiert ist, hauptsache es funktioniert ;) also die Frage, welche Codierung ist sinnvoll?
Dateianhänge
Wahl der Kodierung
Wahl der Kodierung
kodierung.jpg (203.57 KiB) 2305 mal betrachtet

von u_fischer » Di 28. Jul 2015, 16:20

Mein Beispiel kompiliert (wenn es in ansinew gespeichert wird) fehlerfrei. Das habe ich getestet.

von steffn » Di 28. Jul 2015, 16:16

Sorry, aber kannst du noch kurz was dazu schreiben. Was ist das jetzt genau? habe gesehen, dass du n paar Zeilen geändert hast, aber beim Compilieren im online Editor kommen immer noch Fehler.

Bin einfach nicht so erfahren in LaTeX

von u_fischer » Di 28. Jul 2015, 16:06

\documentclass{report}

\usepackage[english,ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}

%%%%%%%%%%%%%%%%% Quellcode:
\usepackage{listings}
\usepackage{color}
\lstset{
    numbers=left,
    basicstyle=\footnotesize,
    captionpos=b,
    language=Matlab,
    tabsize=2,                      % sets default tabsize to 2 spaces
    numberstyle=\tiny\color[gray]{0.6},   % line number style
    keywordstyle=\color{blue},                    % keyword style
    commentstyle=\color{darkgreen},       % comment style
    showspaces=false,               % show spaces adding particular underscores
    showstringspaces=false,           % underline spaces within strings
    stringstyle=\color{red}         % string literal style
    extendedchars=true,
    literate=
    {²}{{\textsuperscript{2}}}1
}

\begin{document}
\begin{lstlisting}

Erklärungen und Variablenbezeichnungen:

Variablenbezeichnungen:

a: Wellenlaufgeschwindigkeit [m/s]
a_Ventil: Beschleunigung des Ventilkörbers [m/s²]
anzSchritte: Gibt an wie oft die Zeitschleife durchlaufen werden soll

\end{lstlisting}
\end{document} 

von steffn » Di 28. Jul 2015, 16:02

Danke Martin für das Beispiel und dass ihr nicht aufgebt ;) weiß nicht, warum sich das so schwierig gestaltet...bin nicht soo bewandert mit LaTeX und habe eine Vorlage, in die ich alles geschrieben hatte. Die Codierung ist im Dokument wie gesagt auf ISO-8859-1 gestellt.

Hier nochmal ein Versuch, hoffe das passt so:
\documentclass{report}
\usepackage{listings}
\usepackage[english,german,ngerman]{babel}
\input{babelbst}
\selectlanguage{ngerman}  % evtl. nicht notwendig?
\usepackage[ansinew]{inputenc}

%%%%%%%%%%%%%%%%% Quellcode:
\usepackage{listings}
\usepackage{color}
\lstset{
    numbers=left,
    basicstyle=\footnotesize,
    captionpos=b,
    language=Matlab
    tabsize=2,                      % sets default tabsize to 2 spaces
    numberstyle=\tiny\color[gray]{0.6},   % line number style
    keywordstyle=\color{blue},                    % keyword style
    commentstyle=\color{darkgreen},       % comment style
    showspaces=false,               % show spaces adding particular underscores
    showstringspaces=false,           % underline spaces within strings
    stringstyle=\color{red}         % string literal style
}

\begin{document}
\begin{lstlisting}

%Erklärungen und Variablenbezeichnungen:
%
%Variablenbezeichnungen:
%
%a: Wellenlaufgeschwindigkeit [m/s]
%a_Ventil: Beschleunigung des Ventilkörbers [m/s²]
%anzSchritte: Gibt an wie oft die Zeitschleife durchlaufen werden soll

\end{lstlisting}
\end{document}

Gruß Stefan

...

von nixversteh » Di 28. Jul 2015, 15:38

Stefan,

so könnte in etwa dein Code aussehen:
\documentclass{scrreprt}
\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}
\lstset{breakatwhitespace=false} %%<---this line added
\usepackage{xcolor}
% Farben für Matlab-Listings
\definecolor{hellgelb}{rgb}{1,1,0.85}     % Hintergrundfarbe
\definecolor{colKeys}{RGB}{0,0,255}       % blau
\definecolor{colIdentifier}{RGB}{0,0,0}	  % schwarz
\definecolor{colComments}{RGB}{34,139,34} % gruen
\definecolor{colString}{RGB}{160,32,240}  % violett

\lstset{%
    language=Matlab,%
    backgroundcolor={\color{hellgelb}},%
    basicstyle={\footnotesize\ttfamily},%
    breakautoindent=true,%
    breakindent=10pt,%
    breaklines=true,%
    captionpos=t,%
    columns=fixed,%
    commentstyle={\itshape\color{colComments}},%
    extendedchars=true,%
    float=hbp,%
    frame=single,%
    framerule=1pt,%
    identifierstyle={\color{colIdentifier}},%
    keywordstyle={\color{colKeys}},%
    numbers=left,%
    numbersep=1em,%
    numberstyle={\tiny\ttfamily},%
    showspaces=false,%
    showstringspaces=false,%
    stringstyle={\color{colString}},%
    tabsize=4,%
    xleftmargin=1em,%
    xrightmargin=1em%
}

\begin{document}
\textbf{Usage --- 3 ways}

1) This inline demo \mcode{for i=1:3, disp('cool'); end;} uses the \verb|\mcode{}| command.

2) The following is a block using the \verb|lstlisting| environment.
\begin{lstlisting}
for i = 1:3
	if i >= 5                % literate programming replacement
		disp('cool');       % comment with some §\mcommentfont\LaTeX in it: $\mcommentfont\pi x^2$§
	end
	[~,ind] = max(vec);
	x_last = x(1,end);
	v(end);
	really really long really really long really really long really really long really really long line % blaaaaaaaa
end
\end{lstlisting}
Note: Here, the package was loaded with the \verb|framed|, \verb|numbered|, \verb|autolinebreaks| and \verb|useliterate| options.  \textbf{Please see the top of mcode.sty for a detailed explanation of these options.}
\begin{lstlisting}[caption=Beispielbeschriftung,label=lst:nr1]{}
use Math::Derivative qw(Derivative1 Derivative2);
@dydx=Derivative1(\@x,\@y);
@d2ydx2=Derivative2(\@x,\@y);
@d2ydx2=Derivative2(\@x,\@y,$yp0,$ypn);
\end{lstlisting}
Eine Referenz auf Quellcodeauszug \ref{lst:nr1} muss immer vorhanden sein.\\
This inline demo \mcode{for i=1:3, disp('cool'); end;} uses the \verb|\mcode{}| command.
\begin{lstlisting}
function []=plotten(vector3,Q_t,var1,delta_t,Amp,Zeit,T,Drossel,vector1,Q_neu,h_neu)
% Q_t=decimate(Q_t,10);
% vector3=decimate(vector3,10);
figure(7)
a=subplot(2,2,1);
plot(vector3,Q_t,'-')
\end{lstlisting}
\end{document}
Gruß

Martin

von u_fischer » Di 28. Jul 2015, 13:52

im angehängten Screenshot ist ein Auszug des Matlab Codes und dort tauchen auch die ² auf. Da sieht man direkt die Fehlermeldungen dazu. Dachte daraus könnte man vielleicht Rückschlüsse auf das Problem ziehen.
Kann man schon. Aber warum soll ich die Zeit damit verbringen, über Experimente deine Kodierung und andere Einstellungen zu erraten, wenn du sie mit einem vernünftigen Beispiel einfach zeigen kannst?

steffn hat geschrieben: Das Ding ist allerdings, wenn ich das so in nem neuen Dokument teste, funktioniert es.
Nein. Das gibt zwar keine Fehler aber auch nicht den (wie auch immer) gewünschten Output.
Was genau soll ich posten, damit das Problem nachvollziehbar ist?
Genau das, was nötig ist, um es zu demonstrieren.

@Martin: das wird doch gleich als erstes Paket geladen?!
Eben. Und da wir das Paket nicht haben, können wir das Beispiel nicht kompilieren.

Nach oben