Ambienti per “orrori”

  • Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni fa da egreg9.
  • Creatore
    Topic
  • #26777
    lorenzo.pantieri
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti.

      Sto scrivendo un articolo sui comandi obsoleti di LaTeX. Vorrei realizzare un ambiente (in realtà due, come si vedrà fra poco) per inserire il codice errato in modo che sia immediatamente visibile, e che non ci lo possa confondere con quello giusto.

      Ho visto che nell’ “Elenco dei peccati” viene proposto un codice scritto in rosso per gli orrori ed uno in verde per le correzioni. Questa soluzione, però, ha lo svantaggio di non essere utile se si stampa l’articolo con stampante b/n.

      Pensavo a una “serpentina” che affiancasse il codice errato, per tutta la sua estensione (quindi usando un comando come \marginpar o \graffito).

      Gli ambienti che uso per introdurre il codice giusto sono “codice” e “sidebyside”.
      `\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
      cleardoubleempty,abstracton,pointlessnumbers,%
      headinclude,footinclude,BCOR5mm,%
      tablecaptionabove]{scrreprt}

      \usepackage{lipsum}
      \usepackage[writefile]{listings}
      \usepackage{classicthesis-ldpkg}
      \usepackage[eulerchapternumbers,subfig,beramono,%
      eulermath,pdfspacing]{classicthesis}

      \lstset{frame=lines,flexiblecolumns=true}

      \lstset{extendedchars}
      \makeatletter
      \lstnewenvironment{sidebyside}{%
      \global\let\lst@intname\@empty
      \setbox\z@=\hbox\bgroup
      \setkeys{lst}{columns=fullflexible,%
      linewidth=0.45\linewidth,keepspaces=true,%
      breaklines=true,%
      breakindent=0pt,%
      boxpos=t,%
      basicstyle=\small\ttfamily
      }%
      \lst@BeginAlsoWriteFile{\jobname.tmp}%
      }{%
      \lst@EndWriteFile\egroup
      \begin{center}%
      \begin{minipage}{0.45\linewidth}%
      \hbox to\linewidth{\box\z@\hss}
      \end{minipage}%
      \qquad
      \begin{minipage}{0.45\linewidth}%
      \setkeys{lst}{frame=none}%
      \leavevmode \catcode`\^^M=5\relax
      \small\input{\jobname.tmp}%
      \end{minipage}%
      \end{center}%
      }
      \makeatother

      \lstnewenvironment{codice}%
      {\setkeys{lst}{columns=fullflexible,keepspaces=true}%
      \lstset{basicstyle=\small\ttfamily,escapeinside={£*}{*£}}%
      }%
      {}

      \begin{document}

      \lipsum[1]

      \begin{codice}
      Due matrici $n\times n$ complesse $A$ e $B$ si dicono \emph{simili}
      se esiste una matrice $n\times n$ invertibile $T$ tale che
      \begin{equation}
      B=T^{-1}AT.
      \end{equation}
      \end{codice}

      \lipsum[2]

      \begin{sidebyside}
      Due matrici $n\times n$
      complesse $A$ e $B$ si dicono
      \emph{simili} se esiste una
      matrice $n\times n$
      invertibile $T$ tale che
      \begin{equation}
      B=T^{-1}AT.
      \end{equation}
      \end{sidebyside}

      \lipsum[3]
      \end{document}`
      Qualcuno ha voglia di cimentarsi nell’impresa definire due nuovi ambienti, partendo da questi qui?

      Grazie mille,
      L.

    Visualizzazione 0 filoni di risposte
    • Autore
      Risposte
      • #26778
        Up
        0
        Down
        ::

        Ciao a tutti.

        Sto scrivendo un articolo sui comandi obsoleti di LaTeX. Vorrei realizzare un ambiente (in realtà due, come si vedrà fra poco) per inserire il codice errato in modo che sia immediatamente visibile, e che non ci lo possa confondere con quello giusto.

        Ho visto che nell’ “Elenco dei peccati” viene proposto un codice scritto in rosso per gli orrori ed uno in verde per le correzioni. Questa soluzione, però, ha lo svantaggio di non essere utile se si stampa l’articolo con stampante b/n.

        Pensavo a una “serpentina” che affiancasse il codice errato, per tutta la sua estensione (quindi usando un comando come \marginpar o \graffito).

        Gli ambienti che uso per introdurre il codice giusto sono “codice” e “sidebyside”.
        `…`
        Qualcuno ha voglia di cimentarsi nell’impresa definire due nuovi ambienti, partendo da questi qui?

        Idea iniziale:
        `\newbox\codbox
        \lstnewenvironment{xcodice}
        {\setbox\codbox=\vbox\bgroup\setkeys{lst}{columns=fullflexible,keepspaces=true}%
        \lstset{basicstyle=\small\ttfamily,escapeinside={£*}{*£}}%
        }
        {\egroup\smallskip\serp}

        \def\serp{\hbox to\hsize{\llap{\vbox to\ht\codbox{
        \vskip1ex\leaders\hbox{-}\vfill\vskip2ex} }\box\codbox}\vskip-\smallskipamount}`
        Si tratta di sostituire \hbox{-} con quello che più ti aggrada e di perfezionare la faccenda.

        Ciao
        Enrico

    Visualizzazione 0 filoni di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top