Wie Zeilen im Quellcode grün hinterlegen?

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


Tobias85
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: So 1. Jan 2012, 23:39

Wie Zeilen im Quellcode grün hinterlegen?

Beitrag von Tobias85 »

Hallo Zusammen,
erstmal ein frohes, neues Jahr 2012!

Ich hänge nun den ganzen Abend schon an meinem Java-Quellcode in der Beamerpräsentation. Leider will es mir nicht gelingen, Java-Quellcode links zu plazieren, rechts Erklärungen und passende Zeilen im Quellcode markieren. Solange alles den gleichen Hintergrund hat, geht alles glatt, aber sind es einzelne Zeilen.
Hier beginnt er durch das neue Listing natürlich immer neu zu Zählen, auch ist der Abstand der Blöcke viel zu groß:
\begin{frame}[fragile]
	\frametitle{Summen \"uber Software-Artefakte}
		\begin{columns}[totalwidth=\textwidth]
    \column{.5\textwidth}
				\begin{lstlisting}
					package U09;
					
					public abstract class A {
					  abstract int a(); 
					}
				
					class B extends A {
				  // Does this...\end{lstlisting}
				\begin{lstlisting}[backgroundcolor=\color{green}]
				  public void a() {...}\end{lstlisting}
				\begin{lstlisting}[backgroundcolor=\color{white}]
				  // Does that...\end{lstlisting}
				\begin{lstlisting}[backgroundcolor=\color{green}]
				  public void b() {...}\end{lstlisting}
				\begin{lstlisting}[backgroundcolor=\color{white}]
				}
				
				class C extends B {}\end{lstlisting}
				\begin{lstlisting}[backgroundcolor=\color{green}]
				  public void c(int i) {...}
				}
				\end{lstlisting}    \column{.45\textwidth}%
       \begin{block}{\footnotesize Lines of...}LOC = 16\\ ELCO = 3 \\ CLOC \\ NCLOC \end{block}
       \begin{block}{\footnotesize Number of..}NOC \\ NOM \\ NOP \end{block}
    \end{columns}
\end{frame}
Hier stimmt alles, nur wird das markierte nicht formatiert:
\begin{frame}[fragile]
	\frametitle{Summen \"uber Software-Artefakte}
		\begin{columns}[totalwidth=\textwidth]
    \column{.5\textwidth}
				\begin{lstlisting}[escapechar=!]
					package U09;
					
					public abstract class A {
					  abstract int a(); 
					}
				
					!\colorbox{green}{class B extends A}!
				  // Does this...
				  public void a() {...}
				  // Does that...
				  public void b() {...}
				}
				
				class C extends B {}
				  public void c(int i) {...}
				}
				\end{lstlisting}
		\column{.45\textwidth}%
       \begin{block}{\footnotesize Lines of...}LOC = 16\\ ELCO = 3 \\ CLOC \\ NCLOC \end{block}
       \begin{block}{\footnotesize Number of..}NOC \\ NOM \\ NOP \end{block}
    \end{columns}
\end{frame}
Hat jemand eine Idee, wie ich beides vereine? Vielen Dank im Vorraus
Zuletzt geändert von Tobias85 am Mo 2. Jan 2012, 20:39, insgesamt 2-mal geändert.

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Kurz googlen liefert folgende Idee:
\documentclass[12pt]{article}
\usepackage{listings,color}
\begin{document}

\newcommand{\Hilight}{\makebox[0pt][l]{\color{cyan}\rule[-4pt]{0.65\linewidth}{14pt}}}
\begin{lstlisting}[escapechar=\%]
   start:$
   %\Hilight%mov   r1,   xF0  -- Reset ptr value$
   mov   r2,   x00  -- Reset total value$
\end{lstlisting}
\end{document}
Quelle: http://www.latex-community.org/forum/vi ... f=4&t=2835

Tobias85
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: So 1. Jan 2012, 23:39

Beitrag von Tobias85 »

Das hört sich gut an. Allerdings bekomme ich keine zwei Zeilen untereinander markiert, ohne dass sich ein weißer Streifen dazwischen bildet, oder der Quelltext dadrunter sich verschiebt. Gibt es dazu auch noch einen Tipp? Vielen Dank.

Antworten