PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : newenvironment für verschachtelte Umgebung mit minted



TeacherMC
03-07-2014, 13:47
Hallo zusammen,

ich möchte eine neue Umgebung
\begin{java} \end{java} mit
\newenvironment{}{}{} in der Präambel definieren.
Folgendes habe ich bisher probiert:


\newenvironment{java}[1]
{\listing \mdframed #1}
{\endframed \endlisting }

Dies funktioniert. Aber wie füge ich nun die minted-Umgebung noch hinzu?



\newenvironment{java}[1]
{\listing \mdframed \minted {java}[linenos=true] #1}
{\endminted \endframed \endlisting }

funktioniert leider nicht.

So sieht das Ergebnis aus:
6042

Minibeispiel:


\documentclass[10pt]{article}

%Rahmen
\usepackage{anysize}
\marginsize{1cm}{1cm}{1cm}{1cm}


%Texthighlightning mit minted und pygments
\usepackage{etex}
\usepackage{minted}

%Minted mit Hintergrundfarbe und Rahmen -> besser als minted Optionnen
\usepackage{mdframed}

%Umlaute
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}

%Farben
\usepackage{color}
\definecolor{hellgrau}{rgb}{0.95,0.95,0.95}

%%Programmquellcode Schriftart einbinden
\usepackage{inconsolata}


\begin{document}

%Quellcode als Gleitumgebung
\begin{listing}[ht]

%Rahmen mit Hintergrundfarbe um den Quellcode
\begin{mdframed}[backgroundcolor=hellgrau]

%Syntaxhighlited Java Code mit Optoinalen Parametern
\begin{minted}[linenos=true]{java}
//Java Sample Code
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
\end{minted}
\end{mdframed}
\end{listing}

\end{document}

cgnieder
03-07-2014, 18:35
Ich würde der Einfachheit halber lieber tcolorbox statt mdframed verwenden. Es unterstützt nämlich gerahmte Listings von sich aus und kann auch mit minted umgehen. Obwohl ich es selber noch nie verwendet habe, konnte ich ohne großen Zeitaufwand folgendes machen:


% arara: pdflatex: { shell: on }
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{inconsolata}

\usepackage{tcolorbox}
\tcbuselibrary{skins,minted}
\tcbsubskin{java-code}{empty}{
frame code={%
\draw[fill=hellgrau] (frame.south west) rectangle (frame.north east);
}
}

\tcbuselibrary{}
\definecolor{hellgrau}{rgb}{0.95,0.95,0.95}

\newtcblisting{java}{
skin=java-code,
minted language=java,
minted options={linenos=true},
listing only
}

\begin{document}

\begin{java}
public class HelloWorld {
// A `Hello World' in Java
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
\end{java}

\end{document}

Grüße