PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Listings: Syntax Highlighting bei PHP-Code



droptix
26-01-2006, 11:57
Ich kann zwar mit dem Paket listings meinen PHP-Quellcode einbinden, aber geht das auch mit Syntax Highlighting wie in jedem besseren Editor? Laut der Forum-Suche erfreuten sich die Leute daran, dass sie ihre Kommentare einfärben können, aber das ist dann doch etwas wenig, oder?

Gibt es vielleicht Wege, fertige Syntax Highlighting Pakete einzubinden, die meinen PHP-Code schön farbig darstellen? Also echte Befehle anders einfärben als Strings und Funktionen etc.?

Boron
26-01-2006, 13:09
Laut listings-Dokumentation wird PHP unterstützt.
Du kannst aber selbst zusätzlich zu dem bereits eingebauten, noch Farben für Schlüsselwörter oder Strings definieren.
Du kannst also das Highlighting so definieren wie du es gerne hättest.

droptix
26-01-2006, 13:20
Das macht aber einen Haufen Arbeit und das Schlimmere: ich vergess bestimmt irgendwas.

Vor dem Problem standen doch sicher schon hunderte andere Leute. Da gibt es doch sicher was Fertiges. Kennt jemand zufällig ein Paket oder einen Link mit weiteren Infos dazu?

pospiech
26-01-2006, 14:58
Du solltest besser lesen. Boron hat doch schon gesagt, dass listings PHP unterstützt.

Matthias

droptix
26-01-2006, 15:07
Ja, PHP kann es. Das heißt aber wahrscheinlich nur, dass listings die PHP-Syntax auseinander hacken kann... eine farbliche Darstellung macht es aber nicht.

Ich habe mich durch 2 LaTeX Bücher gequält. Aber auch dort stand geschrieben, dass das Paket zu viele Optionen enthält, um sie alle aufzuzählen. Sonst war es aber schon sehr ausführlich und hilfreich. Die Doku zum Paket enthielt auch nix über internes Syntax Highlighting. Man kann eigene Styles (auch farblich) definieren, aber eingebaut ist dazu nix.

Der Parameter language=PHP hat nix mit der Farbe zu tun.

pospiech
26-01-2006, 15:19
Du kannst listings doch sagen wie Strings, Kommentare und Funktionen dargestellt werden. Mehr als das wirst du auch mit einem anderen Paket (was es nicht gibt) nicht bekommen.

Matthias

Boron
26-01-2006, 15:25
Listings macht grundsätzlich keine Farben rein so wei ich weiß.
Was es halt macht ist Kommetare und Schlüsselwörter von allem anderen hervorzuheben.
Das ist das was ich beobachtet habe.

Farbe ins Spiel kommt dann, wenn du sagst, was wie farbig gemacht werden soll.

Lies mal in diesem Dokument (listings Doku) das Kapitel 4.6 Figure out hte appearence durch: ftp://tug.ctan.org/pub/tex-archive/macros/latex/contrib/listings/listings-1.3.pdf

Bei den Optionen \basicstyle, \idetifierstyle usw. kannst du als Stil dann \color{red} oder anderes angeben.

So bringst du Farbe rein.
Nur du weißt welche Farben du willst. Listings weiß das nicht.

Jetzt bist du am Zug :).

droptix
27-01-2006, 19:45
Die Doku zu listings habe ich bereits durch. Und ich bin nicht zufrieden mit dem, was da drin steht: Genau wie du sagtest: man kann beliebige Schlüsselwörter farbig hervorheben. Das ist grundsätzlich gesehen toll, aber woher bekomme ich jetzt eine Liste aller PHP-Schlüsselwörter?

Was ich ursprünglich meinte: Theoretisch kann es das. Praktisch sicher auch. Aber haben nicht schon Leute vor mir genau dasselbe Problem gehabt und deshalb eigene Pakete geschnürt, in denen die Farben für die verschiedenen Schlüsselwörter bereits vordefiniert sind?

UND: Wenn ich listings sage, dass meine language=PHP ist und ich Schlüsselwörter hervorheben kann, dann muss listings doch diese Schlüsselwörter intern kennen, oder?

Ich kann einerseits unmöglich alle kennen (geschweigedenn dann auch noch von Hand definieren) und andererseits will ich ja auch keins auslassen.

Boron
27-01-2006, 19:51
Dann frage ich mal blöd: "Hast du denn schon auspobiert, was Latex aus deinem PHP Code macht?"

Ich meine, wenn bereits automatisch alle Schlüsselwörter fett dargestellt würden, dann brauchst du ihnen doch nur noch eine Farbe zuweisen.
Und den Strings und Zahlen auch.

Ich habe leider grad kein Latex installiert. Und erst recht keine PHP Code.
Sonst könnte ich selbst nachschauen, wie PHP von listings dargestellt wird.

bischi
27-01-2006, 19:51
Doku Seite 28: "keywordstyle=" - tönt doch irgendwie vielversprechend?!

MfG Bischi

countbela666
28-01-2006, 01:10
UND: Wenn ich listings sage, dass meine language=PHP ist und ich Schlüsselwörter hervorheben kann, dann muss listings doch diese Schlüsselwörter intern kennen, oder?Sorry, aber ich seh dein Problem einfach nicht. Natürlich kennt das listings-Paket die Schlüsselwörter. Und wenn du die Doku richtig gelesen hättest, wüsstest du auch, wie du Schlüsselwörter etc. hervorheben kannst; standardmäßig wird das nicht getan, aber wie folgender Code zeigt, ist das mit wenigen Handgriffen getan:

\documentclass{article}
\usepackage{listings,color}
\lstset{
language=PHP,
keywordstyle=\color{red},
commentstyle=\color{blue},
stringstyle=\color{green}
}
\begin{document}
\begin{lstlisting}
// nur'n dummes Beispiel
echo date("j.n.Y, H:i");
\end{lstlisting}
\end{document}Grüße,
Marcel

droptix
03-02-2006, 15:52
Das Paket listings differenziert mir viel zu wenig. Zum Beispiel unterschiedet es nicht zwischen Funktionen, Operatoren und Variablen -> das sind halt alles Schlüsselwörter. Also bekommen alle dieselbe Farbe.

Ein LaTeX formatiertes Beispiel sieht dann so aus. (http://droptix.ohost.de/boards/latex--listings01/)

Ein gut formatiertes Beispiel (Weaverslave) sieht so aus. (http://droptix.ohost.de/boards/latex--listings02/)

Gibt's da vielleicht sowas wie "php2latex", dass mir die Formatierung zwar von Hand macht, dafür aber am Ende gut aussieht?

pospiech
04-02-2006, 15:18
Ich behaupte jetzt einfach mal das das LaTeX Beispiel besser aussieht. Warum ? Ein Editor soll dem Leser es vereinfachen im Code zu arbeiten. Ein mit LaTeX erstelltes Dokument soll vor allen Dingen einfach zu lesen sein. Dadurch das alle Klammern und Kommas noch zusätzlich hervorgehoben werden ist das aber nicht gegeben.

Ein php2LaTeX ist mir auch unbekannt, und ich schätze das wenig Leute die gleichen Anforderungen an die Darstellunge stellen wie du.

Matthias

droptix
07-02-2006, 15:27
Ich finde es normal, dass meine Funktionen anders dargestellt werden als Operatoren... Ich finde es auch besser, wenn eigens definierte Funktionen anders aussehen als fest vorgegebene... Bin halt ein Skript-Mensch.

Das LaTeX Beispiel sorgt nicht für Eindeutigkeit beim Lesen. Du findest es nur "besser", weil du bestimmt nicht ständig größere Skripte programmierst. Würde ich jetzt mal eine längere PHP-Klasse posten, siehst du mit dem LaTeX-Style absolut nicht mehr durch -- im Editor schon.

Allein schon MikTeX stellt LaTeX viel feinfühliger dar. Lediglich vier Abstufungen bei Programm-Code ist wie ein Foto in 16 Farben.

Dafür gibt's ja die Syntax Highlighting Editoren. Die stellen das alles relativ bunt dar. Bei vielen kann man sich auch die Farben selbst raussuchen, aber eben viel differenzierter als listings das kann. Für mich ist das absolut nötig. Jeder Programmierer würde mir da sicherlich zustimmen.

Ich finde es nur sehr enttäuschend, vielleicht sogar etwas übertrieben zu sagen: "listings kann Syntax-Highlighting von Programm-Code darstellen."

pospiech
07-02-2006, 19:59
Ich will dir ja auch nicht widersprechen. Was ich aussagen wollte ist, dass es sehr darauf ankommt was man mit dem abdrucken des Quelltextes bezwecken will. Ich habe auch schon Quelltext mitveröffentlicht. Aber diese waren sogar nur schwarzweiß und haben ihren Zweck ausrechend erfüllt - man konnte grob nachvollziehen was ich gemacht habe.

Das listings nicht mehr kann liegt daran, das man ansonsten einen sehr umfassenden Parser entwerfen müsste. Diesen in TeX zu realisieren wäre aber unsinnig.

Matthias

peschmae
07-02-2006, 21:57
Das Programm "highlight" kann afaik unter anderem auch LaTeX Code erstellen, den du dann includen kannst.

Ob das dann deinen Anforderungen besser entspricht weiss ich nicht (hab jetzt gerade das Problem bei obigen Screenshots nicht gesehen, aber egal... ;))

MfG Peschmä

thowi
31-08-2013, 17:20
Ich häng mich mit meiner Frage hier einfach mal dran, weil ich bei der Suche auf dieses Thema gestoßen bin.

Beim Erstellen meines Syles für mein PHP listing ist noch eine Frage für mich offen: Das einleitende
<?PHP und das schließende
?> hätte ich gerne in einer bestimmten Farbe.

Gibt es hierfür eine Definition? Kann ich mir in dem Listing Package auch einfach nur diese einzelnen Begriffe anders definieren?

Danke für euer Feedback!
LG, thowi

u_fischer
31-08-2013, 17:30
Ich häng mich mit meiner Frage hier einfach mal dran, weil ich bei der Suche auf dieses Thema gestoßen bin.


Erwartest du ernsthaft, dass wir einen 8 Jahre alten Thread durchlesen, um rauszufinden, was du vielleicht für ein Problem hast?

Eröffne eine neue Frage, und vergiss das Minimalbeispiel nicht.

cgnieder
31-08-2013, 17:32
Ist sowas gesucht?

Is there a good definition for highlighting PHP code in listings? (http://tex.stackexchange.com/a/54687/5049)

Grüße

thowi
31-08-2013, 17:39
Ach jetzt seh ich das Problem, mein Beitrag wurde nicht vollständig dargestellt. Ich möchte lediglich wissen, wie ich

<?PHP
und

?>
in meinen Listings einfärben kann. Der Rest vom style steht schon :)

Danke euch!

klops
01-09-2013, 12:45
Was genau hast Du an Ulrikes Antwort mit der Bitte nach einem neuen Thema und nach einem vollständigen Minimalbeispiel (http://www.mrunix.de/forums/showthread.php?t=66921) nicht verstanden? Und hast Du die Anleitung von listings gelesen? Im Zweifelsfall kannst Du nämlich sogar TeX-Code in ein Listing einschleusen. Neben listings würde sich auch minted anbieten (http://coding-journal.com/latex-code-listings-with-minted/). Aber da Du den Rückfragen ausweichst, wissen wir natürlich nicht, was für Dich überhaupt in Frage kommt …

thowi
01-09-2013, 12:53
Einverstanden, ich werte etwas in einem neuen Thread zusammenstellen.