Hallo!

Leider wird mein Quellcode, mit wenigen Ausnahmen, blau angezeigt. Was mache ich falsch?

Zusatz: Ist es vll. möglich einen Titel (oben, fett) und eine Bildunterschrift (unten) anzuzeigen (lt. Handbuch Kap. 4.9 ersetzt die caption den title), möglichst ohne weitere Umgebungen dazuzunehmen.

Also z.B. so in der Art:

alt text

Genau so muß es nicht sein, die Hauptfarbe sollte vll. schon besser schwarz sein.

Danke!

alt text

Open in writeLaTeX
%\documentclass[varwidth, margin=10pt]{standalone} %GEHT NICHT
\documentclass[a5paper]{scrreprt}

\usepackage[margin=8mm]{geometry}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[ngerman]{babel}

\usepackage{xcolor} 
   \pagecolor{lightgray!15}
%=================================
\usepackage{listings} 
\renewcommand{\lstlistlistingname}{Codeverzeichnis}
\renewcommand{\lstlistingname}{Quellcode}
%   \lstset{caption=\lstname}

% Lokale Einstellungen
\lstdefinestyle{latex}{
  language=TeX,
  frame=single,
  backgroundcolor=\color{yellow!30},
  rulecolor=\color{lightgray!40},
  breaklines=true,
%  xleftmargin=\parindent,
  basicstyle=\footnotesize\ttfamily,
  keywordstyle=\bfseries\color{purple!40!black},
  commentstyle=\itshape\color{green!40!black},
  identifierstyle=\color{blue},
  stringstyle=\color{orange},
}
%=================================
% Globale Einstellungen
\usepackage{accsupp}    
%% Nummern nicht auswählbar machen
\newcommand{\noncopynumber}[1]{ \BeginAccSupp{method=escape,ActualText={}}
        #1
\EndAccSupp{}}%
%%

    \lstset {numberstyle=\tiny\color{gray!90!black}\noncopynumber, 
    numbers=left, 
    numbersep=1.5pt,
%    stepnumber=2,
    columns=flexible,
    literate={ä}{{\"a}}1{ö}{{\"o}}1 {ü}{{\"u}}1{ß}{{\ss}}1,
    captionpos=b,      % t op,  b ottom
title=\bfseries  %TUT NICHT!!!
    }
%=================================

%=========
\begin{document}
%=========
\lstlistoflistings
\vspace{1cm}
%%%
\begin{lstlisting}[style=latex, 
title=ams-Dokumentenklassen, caption=Minimalbeispiel für die ams-Dokumentenklassen, 
label=ams,
] 
\documentclass{amsart} %amsart amsproc amsbook
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[ngerman]{babel}

\usepackage{blindtext}
\begin{document}
\tableofcontents

\blindmathpaper

\blindmathtrue
\blinddocument\blinddocument

\end{document}
\end{lstlisting}
%%%
%=========
\end{document}
%=========

gefragt 30 Mai '14, 13:56

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 30 Mai '14, 14:57

1

Nimm identifierstyle=\color{blue} heraus und ändere die Sprache language=[LaTeX]TeX oder language=[AlLaTeX]TeX. Kontrollsequenzen, die dann noch nicht gefärbt werden, kannst Du mit moretexcs = {SelectInputMappings, blinddocument} hinzufügen

(30 Mai '14, 15:02) cgnieder

OK, der Stil wäre so schonmal angepaßt. Jetzt müßte man nur noch den Titel manipulieren.

(30 Mai '14, 15:10) cis

@cis Schreibst Du nicht schon in der Frage, dass sich caption und title gegenseitig ausschließen?

(30 Mai '14, 15:12) cgnieder

Ja schon, aber das ist vll. ein Grund, kein Hindernis.

(30 Mai '14, 15:14) cis

PS: Die Option ist übrigens äußerst kurios: Du kannst die caption oben oder unten oder "oben und unten" (captionpos=tb) anzeigen; aber dann zeigt es oben und unten einfach das Gleiche an, sinvoller wäre die Möglichkeit oben und unten Verschiedenes anzuzeigen.

(30 Mai '14, 15:22) cis

@cis ganz so kurios ist es nicht: da listings ja davon ausgeht, dass Du entweder Titel oder Beschriftung hast, braucht man ja keine Option für oben und unten.

(30 Mai '14, 16:52) cgnieder
Ergebnis 5 von 6 show 1 more comments

Die Formatierung lässt sich einfach richten:

Nimm identifierstyle=\color{blue} heraus und ändere die Sprache in LaTeX: language=[LaTeX]TeX oder language=[AlLaTeX]TeX. Kontrollsequenzen, die dann noch nicht gefärbt werden, kannst Du mit

Open in writeLaTeX
moretexcs = {SelectInputMappings, blinddocument}

hinzufügen.


Schwieriger wird es, Titel und Beschriftung hinzuzufügen. So ganz erschließt sich mir den Sinn dahinter auch nicht... sei's drum: hier folgt eine Idee, wie man das vielleicht machen könnte.

Die folgende Umdefinierung von \lst@caption sorgt dafür, das \lst@title nicht automatisch gelöscht wird:

Open in writeLaTeX
\makeatletter
\lst@Key{caption}\relax{%
  \lstKV@OptArg[{#1}]{#1}{\def\lst@caption{##2}\def\lst@@caption{##1}}%
}

Dann kann man zum Haken Init noch die Ausgabe des Titels hinzufügen:

Open in writeLaTeX
\lst@AddToHookAtTop{Init}{%
  \ifx\lst@title\@empty
  \else
    \def\lst@captionpos{b}% nur für den Fall
    \textbf{\lst@maketitle\lst@title}%
    \let\lst@title\@empty % damit die caption trotzdem geschrieben wird
  \fi
}
\makeatother

Wenn man jetzt die Disziplin hat, den Titel vor der Beschriftung anzugeben, werden beide ausgegeben.

alt text

Mein kompletter Code:

Open in writeLaTeX
\documentclass[a5paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
  adieresis  = {ä} ,
  germandbls = {ß}
}
\usepackage[ngerman]{babel}

\usepackage{listings,xcolor}

\makeatletter
% \lst@Key{title}\relax{\def\lst@title{#1}}
\lst@Key{caption}\relax{%
  \lstKV@OptArg[{#1}]{#1}{\def\lst@caption{##2}\def\lst@@caption{##1}}%
}
\lst@AddToHookAtTop{Init}{%
  \ifx\lst@title\@empty
  \else
    \def\lst@captionpos{b}% nur für den Fall
    \textbf{\lst@maketitle\lst@title}%
    \let\lst@title\@empty % damit die caption trotzdem geschrieben wird
  \fi
}
\makeatother

\lstdefinestyle{latex}{
  language        = [AlLaTeX]TeX ,
  basicstyle      = \footnotesize\ttfamily ,
  keywordstyle    = \color{purple!40!black} ,
  commentstyle    = \itshape\color{green!40!black} ,
  stringstyle     = \color{orange} ,
  moretexcs       = {
    tableofcontents ,
    SelectInputMappings ,
    blindmathpaper ,
    blindmathtrue ,
    blinddocument
  } ,
  deletekeywords = {document}
}
\lstset{
  style           = latex ,
  numberstyle     = \tiny\color{gray!90!black}\noncopynumber ,
  numbers         = left , 
  numbersep       = 5pt ,
  frame           = single ,
  backgroundcolor = \color{yellow!30} ,
  rulecolor       = \color{lightgray!40} ,
  breaklines      = true ,
  columns         = fullflexible ,
  literate        = {ä}{{\"a}}1{ö}{{\"o}}1 {ü}{{\"u}}1{ß}{{\ss}}1 ,
  captionpos      = b
}

\renewcommand{\lstlistlistingname}{Codeverzeichnis}
\renewcommand{\lstlistingname}{Quellcode}

\usepackage{accsupp}
\newcommand{\noncopynumber}[1]{%
  \BeginAccSupp{method=escape,ActualText={}}
    #1%
  \EndAccSupp{}%
}

% Beschriftungen einstellen:
\setkomafont{caption}{\raggedright}
\setkomafont{captionlabel}{\bfseries}

% das AmS-Logo:
\usepackage{hologo}
\newcommand*\AmS{\hologo{AmS}}

\begin{document}

\lstlistoflistings

\begin{lstlisting}[
  title   = {\AmS-Dokumentenklassen} ,
  caption = {Minimalbeispiel für die \AmS-Dokumentenklassen} ,
  label=ams]
\documentclass{amsart} %amsart amsproc amsbook
\usepackage{selinput}
\SelectInputMappings{
  adieresis  = {ä} ,
  germandbls = {ß}
}
\usepackage[ngerman]{babel}

\usepackage{blindtext}% für Blindtext

\begin{document}
\tableofcontents

\blindmathpaper

\blindmathtrue
\blinddocument\blinddocument

\end{document}
\end{lstlisting}

\end{document}
Permanenter link

beantwortet 30 Mai '14, 17:06

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 30 Mai '14, 17:06

Super, genau so sollte es sein ;)

(30 Mai '14, 18:41) cis
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×23

gestellte Frage: 30 Mai '14, 13:56

Frage wurde gesehen: 12,047 Mal

zuletzt geändert: 30 Mai '14, 18:41