Syntax-Highlighting für PHP in LaTeX

Wie man mit dem listings–Paket von LaTeX auto­ma­ti­sches Syntax-High­light­ing akti­viert, habe ich bereits am Bei­spiel von Matlab erklärt.

Für PHP jedoch fand ich kein fertig aus­ge­ar­bei­te­tes Optio­nen-Set und musste selbst bas­teln. Dabei ver­suchte ich, das typi­sche Farb­schema des PHP-Manu­als nach­zu­ah­men, was im Wesent­li­chen gelun­gen ist.

Ob die Farben für den Druck auf Papier taugen, stelle ich in Frage. Bei der Bild­schirm­dar­stel­lung hat sich die Farb­kom­bi­na­tion jedoch bewährt und ist daher sicher­lich keine ganz schlechte Idee.

Fol­gende Optio­nen sind in die Prä­am­bel zu mei­ßeln:

% Farben definieren
\usepackage{xcolor}
\definecolor{codeGray}{RGB}{240,240,240}
\definecolor{codeBlack}{RGB}{0,0,0}
\definecolor{codeRed}{RGB}{221,0,0}
\definecolor{codeBlue}{rgb}{0,0,187}
\definecolor{codeYellow}{RGB}{255,128,0}
\definecolor{codeGreen}{RGB}{0,119,0}

% … und zuweisen
\lstset{%
    language=PHP,%
    %
    % Farben, diktengleiche Schrift
    backgroundcolor={\color{codeGray}},% 
    basicstyle={\small\ttfamily\color{codeGreen}},% 
    commentstyle={\color{codeYellow}},%
    keywordstyle={\color{codeBlue}},%
    stringstyle={\color{codeRed}},%
    identifierstyle={\color{codeBlue}},%
    %
    % Zeilenumbrüche aktivieren, Leerzeichen nicht hervorheben
    breaklines=true,%
    showstringspaces=false,%
    % 
    % Listing-Caption unterhalb (bottom)
    captionpos=b,%
    % 
    % Listing einrahmen
    frame=single,%
    rulecolor={\color{codeBlack}},%
    % 
    % winzige Zeilennummern links
    numbers=left,%
    numberstyle={\tiny\color{codeBlack}}%
}

Im direk­ten Ver­gleich fallen einem sicher schnell einige Unter­schiede auf; ins­be­son­dere die grünen Spitz­klam­mern bei \<?php und ?\> sind sehr ungüns­tig. Näher kam ich mit den Mög­lich­kei­ten des Packa­ges aber nicht an die Vor­lage heran – viel­leicht ist Minted eine mäch­ti­gere Alter­na­tive, mit der ich aber erst noch befas­sen muss.

Für Kor­rek­tur­vor­schläge bin ich bis dahin offen! Diesem Blog­post liegt näm­lich mal wieder eine zu schrei­bende Fach­ar­beit zugrunde. :-)

Andwils Avatar

~andwil

Geek aus Kiel. tobt sich hier vor allem über den Open-Source-Kosmos im Allgemeinen (und Linux im Speziellen) sowie Heavy Metal aus.