Syntax highlighting Pakete

Schriftbild, Absätze und Auflistungen einstellen


Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Syntax highlighting Pakete

Beitrag von Crys »

Ich nutze das listings-Paket im in Ausarbeitungen Quellcode mit Syntaxhervorhebung schön darzustellen. Nur ist der Quelltext dann schön formatiert, aber farblich nicht so ansprechend.

Gibt es schon so ein Paket, bzw. Schnipsel Quelltext, mit dem der Quelltext dann auch schön farbig (und fett) dargestellt wird?

Ich schreibe gerade an Ausarbeitungen bei denen ich php- und LaTeX-Quellcode beschreibe. Dort ist der Quelltext dann nur grau auf schwarz.

\documentclass[]{scrbook}

\usepackage{listings} % Syntax Highlighting
\usepackage{color}

\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}

\lstset{ %
  %backgroundcolor=\color{white},   % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
  %basicstyle=\footnotesize,        % the size of the fonts that are used for the code
  %breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
  breaklines=true,                 % sets automatic line breaking
  captionpos=b,                    % sets the caption-position to bottom
  %commentstyle=\color{mygreen},    % comment style
  %deletekeywords={...},            % if you want to delete keywords from the given language
  %escapeinside={\%*}{*)},          % if you want to add LaTeX within your code
  %extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
  frame=single,                    % adds a frame around the code
  %keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
  %keywordstyle=\color{blue},       % keyword style
  language=TeX,        	         % the language of the code
  %morekeywords={begin,\/\/},            % if you want to add more keywords to the set
  %numbers=left,                    % where to put the line-numbers; possible values are (none, left, right)
  %numbersep=5pt,                   % how far the line-numbers are from the code
  %numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers
  %rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
  %showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
  %showstringspaces=false,          % underline spaces within strings only
  %showtabs=false,                  % show tabs within strings adding particular underscores
  %stepnumber=2,                    % the step between two line-numbers. If it's 1, each line will be numbered
  %stringstyle=\color{mymauve},     % string literal style
  %tabsize=2,                       % sets default tabsize to 2 spaces
  %title=\lstname                   % show the filename of files included with \lstinputlisting; also try caption instead of title
}

\begin{document}

\begin{lstlisting}
\begin{figure}[htb!]
	\centering
	\includegraphics[width=.5\linewidth]{abbildung}
	\caption{Abbildungsunterschrift}
	\label{fig:abbildung}
\end{figure}
\end{lstlisting}

\end{document}
Nur "end" und "centering" ist fett, der Rest ist grau

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Syntax highlighting Pakete

Beitrag von Bartman »

Hallo Crys,
Crys hat geschrieben: Gibt es schon so ein Paket, bzw. Schnipsel Quelltext, mit dem der Quelltext dann auch schön farbig (und fett) dargestellt wird?
Im Forum müsste bereits einiges zur Färbung von Quelltext zu finden sein. Alternativ lässt du eine Suchmaschine nach dem Paket minted suchen.
Crys hat geschrieben:
\documentclass{scrbook}

\usepackage[T1]{fontenc}
\usepackage{selinput} % Weil mir die Zeichenkodierung deiner tex-Datei unbekannt ist.
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß}
}
\usepackage[scaled=0.78]{luximono}

\usepackage{listings} % Syntax Highlighting
\usepackage{xcolor} % xcolor bietet mehr Gestaltungsmöglichkeiten als color

\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}

\lstset{ %
  %backgroundcolor=\color{white},   % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
  basicstyle=\ttfamily\footnotesize,        % the size of the fonts that are used for the code
  %breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
  breaklines=true,                 % sets automatic line breaking
  captionpos=b,                    % sets the caption-position to bottom
  %commentstyle=\color{mygreen},    % comment style
  %deletekeywords={...},            % if you want to delete keywords from the given language
  %escapeinside={\%*}{*)},          % if you want to add LaTeX within your code
  %extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
  frame=single,                    % adds a frame around the code
  %keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
  %keywordstyle=\color{blue},       % keyword style
  language=[LaTeX]TeX,        	         % the language of the code
  %morekeywords={begin,\/\/},            % if you want to add more keywords to the set
  %numbers=left,                    % where to put the line-numbers; possible values are (none, left, right)
  %numbersep=5pt,                   % how far the line-numbers are from the code
  %numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers
  %rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
  %showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
  %showstringspaces=false,          % underline spaces within strings only
  %showtabs=false,                  % show tabs within strings adding particular underscores
  %stepnumber=2,                    % the step between two line-numbers. If it's 1, each line will be numbered
  %stringstyle=\color{mymauve},     % string literal style
  %tabsize=2,                       % sets default tabsize to 2 spaces
  %title=\lstname                   % show the filename of files included with \lstinputlisting; also try caption instead of title
}

\begin{document}

\begin{lstlisting}
\begin{figure}[htb!]
	\centering
	\includegraphics[width=.5\linewidth]{abbildung}
	\caption{Abbildungsunterschrift}
	\label{fig:abbildung}
\end{figure}
\end{lstlisting}

\end{document}
Nur "end" und "centering" ist fett, der Rest ist grau
In der Paketdokumentation von Listings steht in Abschnitt 2.4 etwas über die Möglichkeit, optionale Sprachdialekte angeben zu können. Siehe language im Quelltext.

Außerdem habe ich basicstyle um ttfamily ergänzt und noch einige Pakete geladen, was nach meiner Wahrnehmung die Quelltextdarstellung ansehnlicher macht.

Gruß

Bartman

Besserwisser

Beitrag von Besserwisser »

Du hast in Deinem Quelltext doch bereits Kommentare für das Einfärben drin. Du musst nur die Kommentarzeichen vor den entsprechenden Zeilen entfernen. Vielleicht solltest Du einfach mal in der listings-Anleitung die auskommentierten Einstellungen nachlesen …

Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Re: Syntax highlighting Pakete

Beitrag von Crys »

Danke Bartman!
Bartman hat geschrieben:Im Forum müsste bereits einiges zur Färbung von Quelltext zu finden sein.
Ich habe glaub ich zu viel von dem Paket erwartet. Man kann ja nur die Funktionen und Kommentare unterschiedlich formatieren!?
Ich hatte gehofft, dass man auch noch Parameter (wie "scale=.5") und anderes unterschiedlich formatieren kann, aber das erkennt das Paket anscheinend nicht.

Bartman hat geschrieben:Alternativ lässt du eine Suchmaschine nach dem Paket minted suchen.
Ich habe mich in "minted" versucht und gescheitert. Bekomme das nicht zu laufen, weil man noch Pythen und sonst was einbinden muss ...
Meine Suchmöglichkeiten sind hier mit ~7kBit (je nach Bewölkung) auch sehr beschränkt, bzw. zeitaufwändig :?

Bartman hat geschrieben:In der Paketdokumentation von Listings steht in Abschnitt 2.4 etwas über die Möglichkeit, optionale Sprachdialekte angeben zu können. Siehe language im Quelltext.
Danke, das war es. Mit dem Dialekt und ein paar deiner Modifikationen sieht das jetzt echt ansehnlich aus.


Noch eine Frage: Was soll "SelectInputMappings" und das Pakte "selinput" bringen?

Genmutant
Forum-Guru
Forum-Guru
Beiträge: 488
Registriert: Di 8. Jul 2008, 11:00
Wohnort: Augsburg

Beitrag von Genmutant »

Ja bei minted und den ähnlichen, auf der Pygments Bibliothek aufbauenden Paketen brauchst du Python und eben Pygments.
Das sollte aber eigentlich ne Sache von 5min zu installieren sein. Beachte allerdings, dass du Python 2.7 (oder 2.6) brauchst, nicht die 3.xx Versionen.
Es gibt noch einige andere LaTeX-Pakete die das benutzen, hier ein Vergleich.

Zu deinem letzten Punkt mit "SelectInputMappings": Da wir nicht wissen mit welcher Kodierung du das speicherst, und auch um es uns leichter zu machen, werden statt eine Kodierung (latin1, utf8,...) mit inputenc vorzuschreiben, selinput geladen. Das erkennt dann an der Kodierung der Sonderzeichen in SelectInputMappings selber wie das Dokument abgespeichert ist.

Antworten