Seite 1 von 1

Wie CSS-Quellcode formatieren (listings?)?

Verfasst: Mo 22. Feb 2010, 07:51
von kahlchen
Hallo,
ich möchte gerne CSS-Quellcode darstellen. Bezüglich des Quellcodes allgemein habe ich schon gegooglet und listings gefunden. Nur leider scheint hier CSS nicht unterstützt zu werden. Der Code an sich wird ausgegeben, nur eingefärbt ist nichts. Die Listings-Implementierung und definition der Farben ist aber 100% korrekt, Habe ich aus diesem Forum unter Tutorials glaub ich, gefunden.
(Hinweis: ich bin ziemlich neu, was den Umgang mit latex angeht)

Wäre super, wenn jemand eine Idee hat und helfen kann!!! :)
Danke im Voraus.

Verfasst: Mo 22. Feb 2010, 11:49
von Syralist
Hallo.

Wenn ich dich richtig verstanden habe, hast du das Paket listings schon gefunden. Laut Anleitung kennt Listings kein CSS. Das kann man ihm aber beibringen. Zum Beispiel so:
\documentclass{minimal}

\usepackage[ngerman]{babel}
\usepackage{listings}
\usepackage{xcolor}
\lstdefinelanguage{CSS}
{morekeywords={color,background,margin},
sensitive=false,
morecomment=[l]{//},
morecomment=[s]{/*}{*/},
morestring=[b]",
}

\begin{document}
normal:
\begin{lstlisting}[language=CSS]
h1 {color=#008000;}
\end{lstlisting}

bunt:
\begin{lstlisting}[language=CSS,keywordstyle=\color{red}]
h1 {color=#008000;}
\end{lstlisting}
\end{document}
Du müsstest dann nur die Liste mit den Keywords vervollständigen. Und in der Standardeinstellung macht listings auch nichts bunt. Das kannst du ihm aber auch einfach beibringen. Siehe Code oben.[/code]

Verfasst: Mo 22. Feb 2010, 14:16
von phi
Für Quelltext gibt es viele Pakete, nicht nur listings. Hier ein Beispiel mit minted:
\documentclass{minimal}

\usepackage{minted}

\begin{document}

\begin{minted}{css}
h1 {color=#008000;} 
\end{minted}

\end{document}

Verfasst: Mo 22. Feb 2010, 15:03
von bloodworks
Ja nur ist das Problem mit minted, dass es z.b. Pygments aufruft. Das ist zwar ein Super Ergebnis (feiner Steuerbar als listings), aber man braucht 1. shell-escape, was nicht jeder machen möchte und 2. musst du Pygments zusätzlich installieren, was das Verteilte Arbeiten einschränkt.

Deshab musst du bei deinem Minimaldokument dazu sagen, dass Pygments installiert sein muss. grz

Verfasst: Di 23. Feb 2010, 08:52
von kahlchen
Syralist hat geschrieben:Hallo.

Wenn ich dich richtig verstanden habe, hast du das Paket listings schon gefunden. Laut Anleitung kennt Listings kein CSS. Das kann man ihm aber beibringen.
Hallo und vielen vielen Dank.
Ich habe die Vorlage aus dem Forum mit deinen Ergänzungen zusammengefügt. Falls es noch jemand verwenden will:
\usepackage{listings}		% Quellcode einbinden
\usepackage{xcolor}			% Text farbig markieren							

\definecolor{hellgelb}{rgb}{1,1,0.8}
\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{1,0,0}
\definecolor{colComments}{rgb}{0,0.7,0.4}
\definecolor{colString}{rgb}{0,0.5,0}

\lstset{%
    float=hbp,%
    basicstyle=\ttfamily\small, %
    identifierstyle=\color{colIdentifier}, %
    keywordstyle=\color{colKeys}, %
    stringstyle=\color{colString}, %
    commentstyle=\color{colComments}, %
    columns=flexible, %
    tabsize=2, %
    frame=single, %
    extendedchars=true, %
    showspaces=false, %
    showstringspaces=false, %
    numbers=left, %
    numberstyle=\tiny, %
    breaklines=true, %
    backgroundcolor=\color{hellgelb}, %
    breakautoindent=true, %
    captionpos=b%
}

\lstdefinelanguage{CSS}
{morekeywords={color,background,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width},
sensitive=false,
morecomment=[l]{//},
morecomment=[s]{/*}{*/},
morestring=[b]",
}
und dann an der Stelle, wo der Code folgen soll:
\begin{lstlisting}[language=CSS,label=meinLabel,caption=meineBeschriftung]
... Quellcode ...
\end{lstlisting}
Also vielen Dank nochmal! :)

Verfasst: Di 23. Feb 2010, 10:00
von Syralist
Die Angaben, die ich bei morecomment und morestring gemacht habe, musst du ggfs noch nachbessern. Ich wusste nicht mehr wie man Kommentare und Strings in CSS kennzeichnet. ;)

Verfasst: Di 23. Feb 2010, 10:22
von kahlchen
Syralist hat geschrieben:Die Angaben, die ich bei morecomment und morestring gemacht habe, musst du ggfs noch nachbessern. Ich wusste nicht mehr wie man Kommentare und Strings in CSS kennzeichnet. ;)
Passt schon, ich mache die Kommetare in CSS imme so:
/* kommentar */
und diesen Fall hast du ja berücksichtigt, wenn auch vielleicht zufällig :D ;)
Also vielen Dank nochmal.