Willkommen auf STK-MD.de
Login
Nickname

Passwort


Passwort vergessen?

Noch keinen Account?
Registriere dich jetzt!

Hauptmenü

Wetter
, °C

Wer ist online ?
· 1 Besucher
· 0 Mitglied(er)

Expand/Collapse Bitte einloggen oder registrieren
  Forum Index
  Matlab, C, LaTeX, Linux, ...
  LaTeX Tipps & Tricks
Thema drucken 

floz   LaTeX Tipps & Tricks

Webmaster
Beiträge: 909
[Check it out: I have put all of the below into a small package. See the very end of this post and „edit 3“ for more infos...]

here i would like to descibe a nice and (once setup) easy way to include syntax highlighted matlab code in your document. results as described here will lead to this:



for that, we will be using the package listings (be aware of the 's' at the end!) which comes with a normal \LaTeX distribution. if you don't have it, here is its homepage.

if you want to have monochrome "highlighting", you might want to use a type-writer font that also has the bold series included, for example LuxiMono (see below).


First: put this in the preamble of the document to load the package
\includepackage{listings}

Then you might want to load the color-package to define the colors:
\includepackage{color}

that done, you can setup listings - here is how i did it:

Color:
\lstset{language=matlabmod,
basicstyle=\small\ttfamily,
keywordstyle=\color[rgb]{0,0,1},
commentstyle=\color[rgb]{0.133,0.545,0.133},
stringstyle=\color[rgb]{0.627,0.126,0.941},
frame=single, framexleftmargin=6mm, xleftmargin=6mm,
numbersep=3mm, numbers=left, numberstyle=\tiny
}


Monochrome:
\includepackage{luximono}
\lstset{language=matlabmod,
basicstyle=\footnotesize\ttfamily,
keywordstyle=\bfseries,
commentstyle=\color[rgb]{0.66,0.66,0.66}\itshape,
stringstyle=\color[rgb]{0.5,0.5,0.5},
frame=single, framexleftmargin=6mm, xleftmargin=6mm,
numbersep=3mm, numbers=left, numberstyle=\tiny
}

please refer to the listings manual to find out what all the settings do.

what you also need, is to add a modified language definition for matlab. i did this because i want my highlighted code to look just like in the matlab editor. the matlab language definition included in the package doesn't do this though. so here is what i did: in the preamble of your document, i added:

\lstdefinelanguage{matlabmod}%
{morekeywords={break,case,catch,continue,elseif,else,end,for,function,global,%
if,otherwise,persistent,return,switch,try,while},%
morecomment=[l]\%,%
morestring=[m]',%
}[keywords,comments,strings]%



Second, to finally include code in your document put this:
\begin{lstlisting}
YOUR CODE STRAIGH COPY-PASTED FROM MATLAB
\end{lstlisting}



EDIT: If you prefer the Courier font instead of the CMR tt or Luximono fonts, you can put
basicstyle={\fontfamily{pcr}\selectfont\footnotesize}

as your basic style. I also added the following lines
\inlcudepacke{textcomp} % in the preamble !
upquote=true % in \lstset{ } !

to have "upright" quotes in the listings ( ' instead of ´ )


EDIT 2: Another fancy thing you can do with the listings package is replace certain strings by LaTeX expressions. by adding the following line:
literate={~}{{$\neg$}}1 {<=}{{\tiny$\leq$ }}1 
{>=}{{\tiny$\geq$ }}1 {~=}{{\tiny$\neq$ }}1 {delta}{{\tiny$\Delta$}}1
to \lstset{...}, all '~' get replaced by \neg's, <= by ≤, >= by ≥, ~= by ≠, delta by Δ – which facilitates reading a lot....


EDIT 3: Due to high demand I've made a little package of it, which is attached to this post. The package provides three options – bw, for printer friendly highlighting, framed for a frame around the code and numbered for line numbers. See the header of the package for more infos...
EDIT–EDIT: Updated version 1.1 now features the final option and \mcode{SOMETHING} for inline codes (similar to \verb...)


ps: an die forummitglieder: hab den beitrag auf englisch geschrieben, da ich ihn an anderer stelle verlinkt habe... aber ein bissl englisch schaded ja nie ;-)

--
Dateianhang:
mcode_floz.zip (Dateigrösse: 3.52 kb; 807 Treffer)
 17.05.2005, 16:56  Profil Homepage

floz   Re: Vertikale Ausrichtung

Webmaster
Beiträge: 909
Ich hab ewig gebraucht, herauszufinden, wie man Dinge oder Bilder in \LaTeX top-aligned, also vertikal an der oberen Kante ausrichtet.

Hier ist eine Möglichkeit: man eröffne zwei minipages mit alignment top und füge dann jeweils eine vspace 0 ein. Dadurch wird die baseline nach oben verlegt und die Ausrichtung der minipages bewirkt das gewünschte top-alignment.

Bsp:
\begin{minipage}[t]{BREITE}{\vspace{0pt} INHALT 1 \end{minipage}
\begin{minipage}[t]{BREITE}{\vspace{0pt} INHALT 2 \end{minipage}


Ich habe mir in meinem Paket einen Befehl \topalign definiert, der dem ich als Argumente die Breiten der beiden "Spalten" (in % der Gesamtzeilenbreite), INHALT1, was dazwischen soll, und INHATL2 übergebe:
% top-align syntax: \topalign{width1 in %}{width2 in %}{content1}{inbetween]{content2}
\newcommand{\topalign}[5]{%
\begin{minipage}[t]{#1\linewidth}{\vspace{0pt} #3}\end{minipage}#4%
\begin{minipage}[t]{#2\linewidth}{\vspace{0pt} #5}\end{minipage}%
}


das 4. argument ("inbetween") kann z.b. \hfill sein, um beide blöcke auseinander zu drücken, wenn width1 + width2 < 100% sind...
 18.05.2005, 13:56  Profil Homepage

floz   Liste aller Symbole in LaTeX

Webmaster
Beiträge: 909
Wer schon immer mal auf der Suche nach einer so ziemlich kompletten Liste aller Symbole in \LaTeX war wird hier fündig:

The Comprehensive LaTeX Symbols List (2.4 MB) oder hier auch als DjVu (419 KB)
 24.05.2005, 11:20  Profil Homepage

praeci   Re: Liste aller Symbole in LaTeX

Doktor
Beiträge: 494
Blablubb ...

Solche und noch eine ganze Menge mehr Tipps – zwar plain-TeX, aber leicht übertragbar – findet man am besten in DEK (also Donald Ervin Knuth)s „TeXbook“. Das ist bei jeder MikTeX-Distribution dabei – zusammen mit dem MetaFontbook. Es liegt in Rohform vor, muss also noch „ge-TeX-t“ werden ...

Es hilft auch ungemein das jeweilige doc-Verzeichnis einmal zu durchforsten: Die Pakete tragen meistens die Namen, deren Funktion sie bereitstellen. Zum Beispiel: Elektrische Schaltungen lassen sich mit „circ“ erstellen, etc ...

– Andi.
 24.05.2005, 16:30  Profil

floz   Re: Liste aller Symbole in LaTeX

Webmaster
Beiträge: 909
zum TeX-Book: kompilieren kann man es aus copyright-gründen nicht selber, aber ... das können auf andere für einen tun ;-)

Google hilft weiter...
 29.06.2005, 12:58  Profil Homepage

floz   Re: Liste aller Symbole in LaTeX

Webmaster
Beiträge: 909
Wer die doppelt–gestrichenen Buchstaben aus \mathbb von der \AmS (amssymb–Paket) nicht mag
\text{\LARGE$\mathbb{R,N,Z,Q}$}
sollte sich mal den Doublestroke Font von Olaf Kummer angucken:
\text{\LARGE $\mathds{R,N,Z,Q}.$}

Einfach \usepackage{dsfont} in die Präambel, und dann $\mathds{N}$     ;-)
 15.07.2005, 15:07  Profil Homepage

floz   Re: Liste aller Symbole in LaTeX

Webmaster
Beiträge: 909
Noch 'ne optische Sache. Ich hab' lange geforscht, wie ich die \underbrace etwas „dünner“ / „leichter“ bekomme — ich find' die nicht sehr chique, die standardmäßig im CMEX ist, vor allem in Situationen wie dieser:
\d h = p\d v + v\underbrace{\d p}<sub>=0</sub>

Wenn man folgenden Code in die Präambel des Dokuments packt, benutzt die \underbrace einen anderen Symbol–Font (den von Adobe Times, Paket txfonts), so dass sie etwas dünner und meiner Meinung nach chiquer erscheint:
\makeatletter
\DeclareSymbolFont{largesymbolsA}{U}{txexa}{m}{n}
\DeclareSymbolFont{extsymbols}{OMX}{txex}{m}{n}
\def\re@DeclareMathSymbol#1#2#3#4{%
\let#1=\undefined%
\DeclareMathSymbol{#1}{#2}{#3}{#4}%
}
\re@DeclareMathSymbol{\br@cext}{\mathord}{largesymbolsA}{"20}
\re@DeclareMathSymbol{\braceld}{\mathord}{extsymbols}{"7A}
\re@DeclareMathSymbol{\bracerd}{\mathord}{extsymbols}{"7B}
\re@DeclareMathSymbol{\bracelu}{\mathord}{extsymbols}{"7C}
\re@DeclareMathSymbol{\braceru}{\mathord}{extsymbols}{"7D}
\def\downbracefill{$\m@th%
\braceld\mkern-1mu\cleaders\hbox{$\mkern-.5mu\br@cext\mkern-.5mu$}%
\hfill\mkern-1mu%
\braceru\bracelu%
\mkern-1mu\cleaders\hbox{$\mkern-.5mu\br@cext\mkern-.5mu$}%
\hfill\mkern-1mu\bracerd$}
\def\upbracefill{$\m@th%
\bracelu\mkern-1mu\cleaders\hbox{$\mkern-.5mu\br@cext\mkern-.5mu$}%
\hfill\mkern-1mu%
\bracerd\braceld%
\mkern-1mu\cleaders\hbox{$\mkern-.5mu\br@cext\mkern-.5mu$}%
\hfill\mkern-1mu\braceru$}
\makeatother
 17.07.2005, 16:13  Profil Homepage

floz   Re: Liste aller Symbole in LaTeX

Webmaster
Beiträge: 909
Was für Krümelkacker wie mich: Wenn man Variablen definiert, benutzt man meistens das Symbol $\Huge$:=. Das unschöne daran ist, dass der Doppelpunkt standardmäßig vertikal nicht zentriert wird im Mathemodus — und somit nicht "auf einer Achse" mit dem Gleichheitszeichen sitzt. Um dies zu korrigieren kann man entweder das colonequals Paket und den Befehl \colonequals benutzen, oder folgendes Konstrukt in den Header seines Dokuments einbinden um einfach durch die Bank weg alle Doppelpunkte (im Mathemodus) zu zentrieren:
\mathchardef\ordinarycolon\mathcode`\:
mathcode`\:=string"8000
begingroup \catcode`\:=\active
gdef:{\mathrel{\mathop\ordinarycolon}}
\endgroup
 03.12.2009, 13:02  Profil Homepage
Thema drucken 


«  vorheriges Thema  |  nächtes Thema  »
Ähnliche Threads
 
Thema Autor Antw. gelesen Datum
  Latex Kurs vom FaRaFVST apfelbienchen 0 1091 20.10.2013, 20:42
  [LATEX] \underbrace TFTD 9 8739 15.05.2012, 14:13
  Latex Abbildungsverzeichnis holli 3 5474 03.09.2010, 11:23
  [LaTeX] Gleitobjekte in zweispaltigem Text André 3 4991 15.06.2010, 15:01
  MATLAB Tipps & Tricks floz 5 11092 30.03.2010, 03:38


Online
Gesamt sind 1 User Online.  [ Administrator ]  [ Moderator ]  [ Benutzer ]
1 Anonymous User
0 Registrierte Benutzer:
Berechtigung
Du kannst nicht schreiben.
Du kannst nicht ändern.
Du kannst keine Umfragen erstellen.
Du kannst keine Dateien anhängen.
Du kannst nicht antworten.
Du kannst nicht löschen.
Du kannst nicht abstimmen.
portal © 2004 runcms | design & mods by Florian Knorn | banners by kone | weatherdata by weather.com | page generated in 0.16 s | 159 db-querries | pure html: 45.65 kB | 282565 visits in 4185 days