Re: Ambiente per inserire codice LaTeX con di fianco il typeset

#10074
DMW
    Up
    0
    Down
    ::


    Lorenzo,

    Riprendo questo topic perché ho finalmente trovato due ottimi modi per riprodurre l’ambiente che cercavi.

    A parte l’ottimo pacchetto sverb, ne esiste un’altro che si chiama, nemmeno a farlo apposta
    example
    ftp://tug.ctan.org/pub/tex-archive/macros/latex209/contrib/misc/example.sty

    Ecco un esempio
    `
    \documentclass{article}
    \usepackage{amsmath,amsthm,amssymb}
    \usepackage{example}

    \begin{document}
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    \begin{example}

    $f(x)=x^2$
    $$
    g(x)=\int f(x)dx g(x)=\int f(x)dx
    $$
    \end{example}
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    \end{document}
    `

    Questo ambiente è identico a quello che ha usato Lamport nella realizzazione del suo noto libro. Come puoi notare anche questo sborda. Comunue penso che se con geometry o con setlength annulli marginparwidth, non dovrebbe sbordare.

    Il secondo metodo è quello che desideri tu ed è realizzato mediante il pacchetto listings.
    Ti metto direttamente l’esempio, perché del codice capisco solo l’ultima parte.

    `
    \documentclass[12pt]{article}
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage[writefile]{listings}
    \usepackage[italian]{babel}

    \lstset{extendedchars} % important
    \makeatletter
    \lstnewenvironment{sidebyside}{%
    \global\let\lst@intname\@empty
    \setbox\z@=\hbox\bgroup
    \setkeys{lst}{language={},style={},basewidth=0.51em,%
    basicstyle=\small\ttfamily% or whatever
    } %
    \lst@BeginAlsoWriteFile{\jobname.tmp}%
    }{%
    \lst@EndWriteFile\egroup
    \ifdim \wd\z@>.5\linewidth %%% alternative?
    \begin{center}%
    \hbox to\linewidth{\box\z@\hss}%
    \end{center}%
    \leavevmode \catcode`\^^M=10\relax
    \input{\jobname.tmp}%
    \else
    \begin{center}%
    \begin{minipage}{0.45\linewidth}%
    \hbox to\linewidth{\box\z@\hss}%
    \end{minipage}%
    \qquad
    \begin{minipage}{0.45\linewidth}%
    \leavevmode \catcode`\^^M=10\relax
    \input{\jobname.tmp}%
    \end{minipage}%
    \end{center}%
    \fi
    }
    \makeatother
    \begin{document}
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    \begin{sidebyside}
    \textit{Andrea} è il mio nome,
    \textit{Lorenzo} è il tuo.
    \LaTeX\ è il nostro programma
    preferito. Esempio con il
    pacchetto listings.
    \end{sidebyside}
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo Testo
    \end{document}
    `

    se vuoi puoi anche invertire l’ordine in questo modo:
    `…..
    \else
    \begin{center}%
    \begin{minipage}{0.45\linewidth}%
    \leavevmode \catcode`\^^M=10\relax
    \input{\jobname.tmp}%
    \end{minipage}%
    \qquad
    \begin{minipage}{0.45\linewidth}%
    \hbox to\linewidth{\box\z@\hss}%
    \end{minipage}%
    \end{center}%
    \fi
    }
    \makeatother`

    Ciao

    Alla prossima

    Andrea

    Go to top