Wie CSS-Quellcode formatieren (listings?)?

Schriftbild, Absätze und Auflistungen einstellen


kahlchen
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: Mo 12. Okt 2009, 12:40

Wie CSS-Quellcode formatieren (listings?)?

Beitrag 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.

Syralist
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 71
Registriert: Di 8. Jul 2008, 09:26
Wohnort: Bremen

Beitrag 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]
Ubuntu 11.10 / Windows 7
TexLive 2011 / MikTeX 2.8
vim / TeXworks 0.3
---
Dass jemand paranoid ist heißt nicht, dass er nicht verfolgt wird.

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag 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}

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag 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

kahlchen
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: Mo 12. Okt 2009, 12:40

Beitrag 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! :)

Syralist
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 71
Registriert: Di 8. Jul 2008, 09:26
Wohnort: Bremen

Beitrag 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. ;)
Ubuntu 11.10 / Windows 7
TexLive 2011 / MikTeX 2.8
vim / TeXworks 0.3
---
Dass jemand paranoid ist heißt nicht, dass er nicht verfolgt wird.

kahlchen
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: Mo 12. Okt 2009, 12:40

Beitrag 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.

Antworten