8

I am writing a short introductory book on LaTeX and I would like to implement nice looking code example boxes. Using this answer: Source code listing with frame around code? I made the boxes with the listings packages by setting in the preamble:

\usepackage{listings}
\usepackage{xcolor}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{%
  \parbox{\textwidth}{\colorbox{gray}{\parbox{\textwidth}{#1#2#3}}\vskip-4pt}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}
\lstset{frame=lrb,xleftmargin=\fboxsep,xrightmargin=-\fboxsep,language=[LaTeX]{TeX},columns=flexible}
\renewcommand{\lstlistingname}{Example}

and in the text for example:

\begin{lstlisting}[label=firstlook,caption=A First Look]
\documentclass{article}
\begin{document}
Hello World!
\end{document}
\end{lstlisting}

Which results in: Nice-looking box

And looks nice. I would like to make something similar for the output, and was wondering how I could do that (by manually writing the output I mean, not automatically taking what I enter there and evaluate it). Just the same looking box would be cool, having this box split in the middle and show an "output panel" or something would be even cooler. Does anyone know how I can do such a thing?

Sacha Epskamp
  • 871
  • 2
  • 10
  • 15

2 Answers2

8

I think the good package is showexpl .This package works with listings.

I work actually on the tkzexample package. The last version is on ctan but I try to finish the doc. You can present the source code and the result but it's not possible to highlight the syntax.

 \documentclass[]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}  
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz,tkzexample}

\usetikzlibrary{shapes,arrows}     
\colorlet{graphicbackground}{red!10!white}%
\colorlet{codebackground}{blue!10!white}% 
\colorlet{codeonlybackground}{gray!20}   
\begin{document}
\parindent=0pt   

\begin{tkzexample}[small,width=8cm,overhang,frame tex=red,frame code=blue]
    \begin{minipage}{6cm}
      \section{Minipage et  èçéà\&§}
    Ceci est un test pour "minipage"
    \end{minipage}
\end{tkzexample}

\hspace{24pt}
\begin{tkzexample}[small,width=3cm,frame tex=red,frame code=blue]
\begin{tikzpicture}
     \draw (0,0)  node[circle,
                       shade,
                       ball color=Peach,minimum size=2cm]{};
\end{tikzpicture}
\end{tkzexample}

\hspace{24pt}  
\begin{tkzltxexample}[line frame width=2pt]
\begin{tkzexample}[width=4cm,frame tex=red,frame code=blue]
  \tikz[baseline] 
  \node [circle,line width=1ex,draw=blue,fill=blue]
  {\textcolor{white}{\Large{TikZ}}};
\end{tkzexample}
\end{tkzltxexample}

\hspace{24pt}  
\begin{tkzexample}[width=4cm,frame tex=red,frame code=blue]
  \tikz[baseline] 
  \node [circle,line width=1ex,draw=blue,fill=blue] 
  {\textcolor{white}{\Large{TikZ}}};
\end{tkzexample}      

\hspace{24pt}  
\begin{tkzexample}[width=3cm,frame tex=red,frame code=blue]   
   $x \mathbin{\tikz[baseline]  \draw[|->,>=triangle 45]%
  (0pt,.5ex) -- (8ex,.5ex);} f(x)$
\end{tkzexample}   

\end{document}

enter image description here

Alain Matthes
  • 95,075
7

I know it's an old question, but in case somebody arrives here, it's worth to mention tcolorbox which original goal was:

to have accentuated and colored boxes to display source code and compiled text in combination.

Next there are some little examples:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{listings}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\begin{document}

\begin{tcblisting}{title=A simple example}
Hello World, this is \LaTeX
\end{tcblisting}

\begin{tcblisting}{title=Side by side, listing outside text}
Hello World, this is \LaTeX
\end{tcblisting}

\begin{tcblisting}{title=Side by side, text side listing}
Hello World, this is \LaTeX
\end{tcblisting}
\end{document}

enter image description here

Some more complex examples:

Code examples, like in the TikZ/PGF manual

How to automatically arrange an unknown number of images?

tcolorbox listing error using beamers begin{frame}

Ignasi
  • 136,588