2009-08-20 12 views
27

Mam pęczek kodu w środowisku listy odtwarzania. Jak mogę podświetlić (kolor tła) konkretną porcję kodu w środowisku?Podświetlanie fragmentu kodu na liście odtwarzania

+1

W przyszłości prosimy o pytania związane z LaTeX na: https://tex.stackexchange.com. –

+0

@IoannisFilippidis To byłoby przydatne wiedzieć ... 8 lat temu. –

Odpowiedz

31

Można użyć \ ColorBox oraz znak ucieczki wewnątrz wpisie:

dodać do swojej preambule

\usepackage{color} 

    \definecolor{light-gray}{gray}{0.80} 

następnie używać go w ten sposób w dokumencie:

\begin{lstlisting}[escapechar=!] 
    def mult(m: Matrix[Int], n: Matrix[Int]) { 
    val p = !\colorbox{light-gray}{new MatrixInt}!(m.rows, n.cols) 
    } 
    \end{lstlisting} 
+0

Dzięki! To było dokładnie to, czego potrzebowałem. –

+0

Potrzebuję czegoś ekstra. Używam pakietu Beamer do mojej prezentacji i muszę podkreślić kod obecny na liście. Różnica w mojej potrzebie polega na tym, że nie mogę zmienić kodu na stronie głównej, jak np. Ucieczkę lub specjalną definicję komentarza. Kod znajduje się w innym pliku, którego nie można zmienić. Kopiowanie kodu i wprowadzanie modyfikacji nie jest opcją, ponieważ jest ich wiele. Czy możemy wskazać z zewnątrz (tzn. W \ begin {lstlisting}), które linie należy podświetlić? – thequark

+7

Ładne, ale nie działa z wieloma liniami i tracisz podświetlanie składni wewnątrz 'colorbox'. – Julian

0

pakiet ofert zapewnia backgroundcolor = \ color {} jako opcja, ale jestem pewien, że sprawia, że ​​cały kolor bg, a nie kawałek.

można spojrzeć na wprowadzenie go do parbox kolorem lub pakietu ColorBox.

6

Jest to trochę uciążliwe, ale można złamać kod na kilka lstlisting środowiskach.

\begin{lstlisting} 
line 
\end{lstlisting} 
\vspace{-\baselineskip} 
\begin{lstlisting}[backgroundcolor=\color{pink}] 
very 
interesting 
\end{lstlisting} 
\vspace{-\baselineskip} 
\begin{lstlisting} 
line 
line 
\end{lstlisting} 
+1

Czy to działa, jeśli masz na przykład numery linii, czy też zostaną one ponownie uruchomione? – Edd

+0

@Edd: Domyślnie zostaną one zrestartowane, ale możesz to naprawić za pomocą słowa kluczowego "firstnumber". W tym przykładzie użylibyś 'firstnumber = 2' i' firstnumber = 4' odpowiednio w drugim i trzecim środowisku 'lstlisting'. Użycie 'firstnumber = last' powinno kontynuować numerowanie z poprzedniego środowiska' lstlisting', ale kiedy próbuję, jest wyłączone przez jeden. –

+3

Okazuje się, że istnieje jeszcze lepsze rozwiązanie problemu numerowania: użyj słowa kluczowego 'name' (np.' \ Begin {lstlisting} [name = asdf, ... '). Nazwa nie zostanie wyświetlona, ​​a środowiska 'lstlisting' z tą samą nazwą domyślnie współużytkują licznik linii. –

Powiązane problemy