showexpl contro sidebyside

  • Creatore
    Topic
  • #29936
    lorenzo.pantieri
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti.

      Nei miei lavori su LaTeX faccio largo uso dell’ambiente sidebyside (creato ad hoc da Andrea), che funziona molto bene. Si tratta di un ambiente che permette di avere il codice sorgente LaTeX con a fianco il relativo typeset. In una recente dicussione Enrico mi ha consigliato di rimpiazzarlo con il pacchetto showexpl. Ci ho dato un’occhiata, e mi sembra davvero ben fatto. Tuttavia, i risultati non sono proprio identici, mentre vorrei che lo fossero. Si può agire sulle opzioni dell’ambiente messo a disposizione dal pacchetto in modo da avere un clone perfetto (o quasi!) di sidebyside? Di seguito riporto un esempio (in verità non proprio minimo: chiedo venia, ma volevo proporre una situazione “reale”) compilabile.
      `\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
      cleardoubleempty,abstracton,pointlessnumbers,%
      headinclude,footinclude,BCOR5mm,%
      tablecaptionabove]{scrreprt}

      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage[10pt]{type1ec}
      \usepackage[polutonikogreek,italian]{babel}
      \usepackage[writefile]{listings}
      \usepackage{classicthesis-ldpkg}
      \usepackage[eulerchapternumbers,subfig,beramono,%
      pdfspacing,parts]{classicthesis}
      \usepackage[italian]{arsclassica}
      \usepackage{showexpl}

      \definecolor{lightergray}{gray}{0.99}

      \newcommand{\greco}[1]{%
      \begin{otherlanguage*}{greek}#1\end{otherlanguage*}}

      \lstset{ %
      morekeywords=greco,%
      commentstyle=\color{Emerald}\ttfamily,%
      frame=lines,
      backgroundcolor=\color{lightergray}}

      \makeatletter
      \lstset{extendedchars}
      \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

      \begin{document}
      \begin{sidebyside}
      In lettere minuscole, \TeX{}
      si scriverebbe \greco{teq}.
      È la radice della parola greca
      \greco{t'eqnh} che vuol dire
      “arte'' e “tecnica''.
      \end{sidebyside}

      \begin{LTXexample}
      In lettere minuscole, \TeX{}
      si scriverebbe \greco{teq}.
      È la radice della parola greca
      \greco{t'eqnh} che vuol dire
      “arte'' e “tecnica''.
      \end{LTXexample}
      \end{document}`
      Noto alcune differenze:
      1. Il corpo dei font di LTXexample è normale e non small.
      2. Destra e sinistra scambiate.
      3. C’è un riquadro di troppo in LTXexample.
      4. In LTXexample, \greco non è evidenziato in blu.
      5. Le larghezze delle scatole di LTXexample sono diverse da quelle di sidebyside.

      Le due paginette di doc. non mi hanno consentito di trovare da solo un rimedio.

      Grazie anticipate,
      L.

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

        Noto alcune differenze:
        1. Il corpo dei font di LTXexample è normale e non small.
        2. Destra e sinistra scambiate.
        3. C’è un riquadro di troppo in LTXexample.
        4. In LTXexample, \greco non è evidenziato in blu.
        5. Le larghezze delle scatole di LTXexample sono diverse da quelle di sidebyside.

        Le due paginette di doc. non mi hanno consentito di trovare da solo un rimedio.

        Evidentemente non hai sufficiente pazienza, perché
        `\begin{LTXexample}[pos=r,justification={},preset=\small,rframe={},
        width=0.45\linewidth]`
        fa praticamente tutto quello che ti serve. Manca qualche dettaglio, per esempio la separazione fra le due parti. Esercizio.

        Naturalmente non occorre scrivere tutta quella roba ogni volta: è sufficiente
        `\lstset{pos=r,justification={},preset=\small,rframe={},width=0.45\linewidth,
        explpreset={morekeywords=greco}}`
        una volta per tutte (così vedi anche come passare le keywords supplementari).

        Ciao
        Enrico

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

    Go to top