Problemi con ambiente sydebyside

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


      Ciao a tutti. In questo topic Andrea mi aveva suggerito un ambiente per riportare del codice LaTeX con a fianco il corrispondente typeset. Riporto per comodità un esempio “abbastanza minimale”:
      `\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
      cleardoubleempty,abstractoff,pointlessnumbers,
      headinclude,footinclude,BCOR5mm]{scrreprt}

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

      \lstset{frame=lines}
      \lstset{basicstyle=\normalfont\ttfamily}
      \lstset{flexiblecolumns=true}
      \lstset{moredelim={[is][\normalfont\itshape]{/*}{*/}}}

      \lstnewenvironment{codice}%
      {\lstset{basicstyle=\small\ttfamily}%
      }{}

      \lstset{extendedchars}
      \makeatletter
      \lstnewenvironment{sidebyside}{%
      \global\let\lst@intname\@empty
      \setbox\z@=\hbox\bgroup
      \setkeys{lst}{columns=fullflexible,%
      linewidth=0.45\linewidth,
      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}%
      \leavevmode \catcode`\^^M=10\relax
      \small\input{\jobname.tmp}%
      \end{minipage}%
      \end{center}%
      }
      \makeatother

      \begin{document}
      \lipsum[1]

      \begin{sidebyside}
      Ci sono voluti secoli per dimostrare che quando $n>2$
      \emph{non} ci sono tre interi positivi $a$, $b$, $c$ tali che $a^n+b^n=c^n$.
      \end{sidebyside}

      \lipsum[2]

      \begin{sidebyside}
      \begin{multline}
      f=a+b+c+ \\
      +d+e+g+h+\\
      +r+s+t
      \end{multline}
      \end{sidebyside}

      \lipsum[3]

      \end{document}
      `
      L’ambiente funziona piuttosto bene, ma c’è da limare qualcosa.

      1. Vorrei che la parte con il codice LaTeX fosse perfettamente a filo del margine sinistro (ora è leggermente rientrata a destra), e che il typeset fosse perfettamente a filo del margine destro (ora è leggermente rientrata a sinistra).

      2. Visto che strano il problema con multline? Il sorgente e il typeset vengono messi uno sopra l’altro, anziché di fianco. Ancora, il typeset di multline non è perfetto: la seconda riga non è centrata come dovrebbe. Per il resto, l’ambiente funziona benissimo, l’ho provato nelle situazioni più disparate, sempre con risultati impeccabili.

      Grazie anticipate, l’ambiente mi sta molto a cuore ed è fondamentale per la guida che sto scrivendo…

      Ciao,
      L.

    Visualizzazione 49 filoni di risposte
    • Autore
      Risposte
      • #18901
        DMW
          Up
          0
          Down
          ::


          Lorenzo,
          se metti \hfill anche l’esempio con multline va apposto.

          Comunque per avere quello che cerchi prova così:
          `
          \makeatletter
          \lstnewenvironment{sidebyside}{%
          \global\let\lst@intname\@empty
          \setbox\z@=\hbox\bgroup
          \setkeys{lst}{columns=fullflexible,%
          linewidth=0.45\linewidth,
          breaklines=true,%
          breakindent=0pt,%
          boxpos=t,%
          basicstyle=\small\ttfamily
          }%
          \lst@BeginAlsoWriteFile{\jobname.tmp}%
          }{%
          \lst@EndWriteFile\egroup
          \medskip\noindent%
          \begin{minipage}{0.45\linewidth}%
          \hbox to\linewidth{\box\z@\hss}
          \end{minipage}%
          \hfill
          \begin{minipage}{0.45\linewidth}%
          \leavevmode \catcode`\^^M=10\relax
          \small\input{\jobname.tmp}%
          \end{minipage}%
          \medskip%
          }
          \makeatother
          `

          Se ritieni che lo spazio sotto e sopra sia poco, sostituisci \medskip con \bigskip.
          C’è ancora un piccolo problemino con li ambienti matematici perché il numero non lo mette alla fine, come puoi vedere ma dipende dal fatto che la minipage è larga 0.45\linewidth. Comunque, credo che ci si può accontentare.

          Ciao

          Andrea

        • #18902
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::


            Ciao Andrea, innanzitutto ti mando un ringraziamento gigante! Da solo, non riuscirei mai a venire a capo della faccenda…

            1. Il problema con multline è risolto.

            2. Il codice che mi hai dato funziona (!!!), con un unico inconveniente: non puoi attaccare l’ambiente sidebyside ad un paragrafo, ma devi separarlo dal resto con linee bianche. Il seguente
            `Parole parole parole.
            \begin{sidebyside}

            \end{sidebyside}
            Parole parole parole.`
            dà in output un pasticcio, mentre il
            `Parole parole parole.

            \begin{sidebyside}

            \end{sidebyside}

            Parole parole parole.`
            è ok. La cosa strana è che l’ambiente di prima non aveva questo inconveniente… 😥

            Se riesci a trovare una soluzione a questo inghippo… 🙄

            Un salutone,
            L.

          • #18903
            DMW
              Up
              0
              Down
              ::


              Scusa il ritardo ma sono un po’ impegnato!

              Prova così
              `
              \makeatletter
              \lstnewenvironment{sidebyside}{%
              \global\let\lst@intname\@empty
              \setbox\z@=\hbox\bgroup
              \setkeys{lst}{columns=fullflexible,%
              linewidth=0.45\linewidth,
              breaklines=true,%
              breakindent=0pt,%
              boxpos=t,%
              basicstyle=\small\ttfamily
              }%
              \lst@BeginAlsoWriteFile{\jobname.tmp}%
              }{%
              \lst@EndWriteFile\egroup
              \par\medskip\noindent%
              \begin{minipage}{0.45\linewidth}%
              \hbox to\linewidth{\box\z@\hss}
              \end{minipage}%
              \hfill
              \begin{minipage}{0.45\linewidth}%
              \leavevmode \catcode`\^^M=10\relax
              \small\input{\jobname.tmp}%
              \end{minipage}%
              \par\medskip%
              }
              \makeatother`

              oppure questo:
              `
              \makeatletter
              \lstnewenvironment{sidebyside}{%
              \global\let\lst@intname\@empty
              \setbox\z@=\hbox\bgroup
              \setkeys{lst}{columns=fullflexible,%
              linewidth=0.45\linewidth,
              breaklines=true,%
              breakindent=0pt,%
              boxpos=t,%
              basicstyle=\small\ttfamily
              }%
              \lst@BeginAlsoWriteFile{\jobname.tmp}%
              }{%
              \lst@EndWriteFile\egroup
              \begin{flushleft}%
              \begin{minipage}{0.45\linewidth}%
              \hbox to\linewidth{\box\z@\hss}
              \end{minipage}%
              \hfill
              \begin{minipage}{0.45\linewidth}
              \leavevmode\catcode`\^^M=10\relax
              \small\input{\jobname.tmp}%
              \end{minipage}%
              \end{flushleft}%
              }
              \makeatother`

              Ciao

              Andrea

            • #18904
              lorenzo.pantieri
              Partecipante
                Up
                0
                Down
                ::


                Caro Andrea, grazie per tutti i tuoi suggerimenti. Proverò tutto con cura…

                Un saluto, per ora…

                L.

              • #18905
                lorenzo.pantieri
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Rieccomi!

                  Ho trovato un altro problemino con l’ambiente sidebyside (che alla fine mi sono deciso ad usare nella prima forma, quella col minuscolo rientro, che secondo me ci sta bene).

                  Nel codice, gli spazi bianchi sembrano non avere effetto! Eppure a me piacerebbe incolonnare (anche visivamente) alcuni simboli nel codice. Il typeset invece è perfetto. Ecco un esempio (per comodità, riporto tutto un documento compilabile).
                  `\documentclass[10pt,a4paper,twoside,openright,titlepage,
                  cleardoubleempty,abstractoff,pointlessnumbers,
                  headinclude,footinclude,BCOR5mm]{scrreprt}

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

                  \lstset{frame=lines}
                  \lstset{basicstyle=\normalfont\ttfamily}
                  \lstset{flexiblecolumns=true}
                  \lstset{moredelim={[is][\normalfont\itshape]{/*}{*/}}}

                  \lstnewenvironment{codice}%
                  {\lstset{basicstyle=\small\ttfamily}%
                  }{}

                  \lstset{extendedchars}
                  \makeatletter
                  \lstnewenvironment{sidebyside}{%
                  \global\let\lst@intname\@empty
                  \setbox\z@=\hbox\bgroup
                  \setkeys{lst}{columns=fullflexible,%
                  linewidth=0.45\linewidth,
                  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}%
                  \leavevmode \catcode`\^^M=10\relax
                  \small\input{\jobname.tmp}%
                  \end{minipage}%
                  \end{center}%
                  }
                  \makeatother

                  \begin{document}

                  \begin{sidebyside}
                  \begin{align}
                  a_1 &= b_1+c_1+d_1, \\
                  a_2 &= b_2, \notag \\
                  a_3-1 &= b_3+c_3.
                  \end{align}
                  \end{sidebyside}

                  \end{document}`
                  Non riesco ad allineare i vari & nell’ambiente align, posso aggiungere spazi a volontà, ma non succede niente…

                  C’è una cura?

                  Grazie,
                  L.

                • #18906
                  Up
                  0
                  Down
                  ::

                  Rieccomi!

                  Ho trovato un altro problemino con l’ambiente sidebyside (che alla fine mi sono deciso ad usare nella prima forma, quella col minuscolo rientro, che secondo me ci sta bene).

                  Nel codice, gli spazi bianchi sembrano non avere effetto! Eppure a me piacerebbe incolonnare (anche visivamente) alcuni simboli nel codice. Il typeset invece è perfetto. Ecco un esempio (per comodità, riporto tutto un documento compilabile).
                  `…`
                  Non riesco ad allineare i vari & nell’ambiente align, posso aggiungere spazi a volontà, ma non succede niente…

                  C’è una cura?

                  Suppongo ci voglia qualche opzione per listings. Il file sideside.tmp viene scritto con tutti gli spazi che inserisci; se listings non li rispetta, non saprei che altro farci.

                  Ciao
                  Enrico

                • #18907
                  DMW
                    Up
                    0
                    Down
                    ::


                    keepspaces=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
                    }%
                    …..`

                    Ciao

                    Andrea

                  • #18908
                    lorenzo.pantieri
                    Partecipante
                      Up
                      0
                      Down
                      ::

                      keepspaces=true,

                      Perfetto!! 😀

                      Grazie,
                      L.

                    • #18909
                      lorenzo.pantieri
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Ciao, purtroppo è saltato fuori un altro problema con l’ambiente sidebyside. 😥 Vorrei fare un esempio di bibliografia con l’ambiente thebibliography, ma purtroppo sembra che il comando \bibitem sia indigesto a sidebyside. Riporto l’esempio completo con i codici che mi interessano.
                        `\documentclass[10pt,a4paper,twoside,openright,titlepage,
                        cleardoubleempty,abstractoff,pointlessnumbers,
                        headinclude,footinclude,BCOR5mm]{scrreprt}

                        \usepackage[italian]{babel}
                        \usepackage[writefile]{listings}
                        \usepackage{classicthesis-ldpkg}
                        \usepackage[eulerchapternumbers,subfig,beramono,
                        eulermath,pdfspacing]{classicthesis}
                        \usepackage{minitoc}

                        \lstset{frame=lines}
                        \lstset{basicstyle=\normalfont\ttfamily}
                        \lstset{flexiblecolumns=true}
                        \lstset{moredelim={[is][\normalfont\itshape]{/*}{*/}}}

                        \lstnewenvironment{codice}%
                        {\lstset{basicstyle=\small\ttfamily}%
                        }{}

                        \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}%
                        \leavevmode \catcode`\^^M=10\relax
                        \small\input{\jobname.tmp}%
                        \end{minipage}%
                        \end{center}%
                        }
                        \makeatother

                        \begin{document}
                        \dominitoc\tableofcontents

                        \myChapter{La bibliografia}
                        \minitoc

                        \section{Prova}

                        \begin{sidebyside}
                        \begin{thebibliography}{9}
                        \bibitem{lamport:latex}
                        Leslie Lamport.
                        \emph{\LaTeX: a document preparation system}.
                        Addison-Wesley, 1994.
                        \bibitem{companion}
                        Michel Goossens,
                        Frank Mittelbach,
                        and Alexander Samarin.
                        \emph{The \LaTeX\ Companion}.
                        Addison-Wesley, 1994.
                        \end{thebibliography}
                        \end{sidebyside}

                        \begin{sidebyside}
                        \bibitem[Lamport 94]{lamport-latex} Leslie Lamport, …
                        \end{sidebyside}

                        \end{document}`
                        In compilazione c’è addirittura un errore di sintassi…

                        Se provo a ridefinire \bibitem come \item la bibliografia almeno viene generata, anche se naturalmente non nel formato corretto: resta però anche un’incompatibilità con minitoc.

                        Mi andrebbe bene anche una soluzione “spiccia e sporca” (purché funzionante): gli esempi bibliografici sono solo quei due, e \bibitem non lo uso più per tutta la guida.

                        Grazie di cuore,
                        L.

                      • #18910
                        Up
                        0
                        Down
                        ::

                        Ciao, purtroppo è saltato fuori un altro problema con l’ambiente sidebyside. 😥 Vorrei fare un esempio di bibliografia con l’ambiente thebibliography, ma purtroppo sembra che il comando \bibitem sia indigesto a sidebyside. Riporto l’esempio completo con i codici che mi interessano.

                        In compilazione c’è addirittura un errore di sintassi…

                        Se provo a ridefinire \bibitem come \item la bibliografia almeno viene generata, anche se naturalmente non nel formato corretto: resta però anche un’incompatibilità con minitoc.

                        Mi andrebbe bene anche una soluzione “spiccia e sporca” (purché funzionante): gli esempi bibliografici sono solo quei due, e \bibitem non lo uso più per tutta la guida.

                        Il problema è creato dal pacchetto backref, che impone, da qualche parte ci sarà pure scritto, che ogni \bibitem sia seguito da una riga vuota:
                        `\begin{thebibliography}{1}
                        \bibitem{a} testo

                        \bibitem{b} testo

                        \end{thebibliography}`
                        Questo perché ridefinisce \bibitem in termini di \BR@@bibitem che ha la definizione
                        `\def\BR@@bibitem #1#2\par{…}`
                        Dunque il secondo argomento è delimitato da \par. Ovviamente questo non basta e occorre anche modificare quel comando
                        `\catcode`\^^M=10\relax`
                        in un più onesto
                        `\catcode`\^^M=5\relax`
                        Naturalmente, scrivere \bibitem fuori da un ambiente thebibliography dà errore sempre.

                        Ciao
                        Enrico

                      • #18911
                        lorenzo.pantieri
                        Partecipante
                          Up
                          0
                          Down
                          ::

                          Questo perché ridefinisce \bibitem in termini di \BR@@bibitem che ha la definizione
                          `\def\BR@@bibitem #1#2\par{…}`
                          Dunque il secondo argomento è delimitato da \par. Ovviamente questo non basta e occorre anche modificare quel comando
                          `\catcode`\^^M=10\relax`
                          in un più onesto
                          `\catcode`\^^M=5\relax`

                          Enrico, ora funziona tutto in maniera spettacolare. 😀

                          Mi resta la curiosità di capire che cosa fa quel (per me) ermetico
                          `\catcode`\^^M=5\relax`
                          e quali sono i cambiamenti ora che ho messo 5 al posto di 10.

                          Grazie infinite,
                          L.

                        • #18912
                          Up
                          0
                          Down
                          ::

                          Questo perché ridefinisce \bibitem in termini di \BR@@bibitem che ha la definizione
                          `\def\BR@@bibitem #1#2\par{…}`
                          Dunque il secondo argomento è delimitato da \par. Ovviamente questo non basta e occorre anche modificare quel comando
                          `\catcode`\^^M=10\relax`
                          in un più onesto
                          `\catcode`\^^M=5\relax`

                          Enrico, ora funziona tutto in maniera spettacolare. 😀

                          Mi resta la curiosità di capire che cosa fa quel (per me) ermetico
                          `\catcode`\^^M=5\relax`
                          e quali sono i cambiamenti ora che ho messo 5 al posto di 10.

                          Non è affatto ermetico; basta leggere l’aureo articolo su ArsTeXnica che parla appunto dei codici di categoria. 🙂

                          ^^M indica il carattere di fine riga che TeX inserisce quando legge un file; siccome ogni sistema operativo ha il suo modo di fare, Knuth ha deciso che, una volta trovata la fine riga (secondo quanto stabilito dal SO), tutto ciò che la indica viene scartato e sostituito con un carattere fisso (quello di numero \endlinechar, usualmente 13).

                          Questo carattere ha, normalmente, codice di categoria 5. Quando TeX ne vede due consecutivi, li sostituisce con un token \par, altrimenti questo carattere diventa equivalente a un token di categoria 10 (spazio).

                          Mi dirai, ma se io su una riga batto due spazi e poi il ritorno a capo, come fa TeX a trovare due fine riga consecutivi? Risposta: gli spazi a inizio riga sono del tutto ignorati. Così si può far rientrare il codice come ci pare, senza preoccuparci di spazi spuri che, invece, possono comparire a fine riga.

                          Una definizione come \def\xxx#1\par{…} delimita l’argomento con il token \par; ma le due chiamate
                          `\xxx aaa\par
                          \xxx aaa
                          `
                          sono del tutto equivalenti.

                          Ciao
                          Enrico

                        • #18913
                          lorenzo.pantieri
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Grazie mille per la spiegazione, Enrico. Leggerò al più presto l’articolo su ArsTeXnica… 😳

                            A presto,
                            Lorenzo

                          • #18914
                            lorenzo.pantieri
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Riprendo il topic per segnalare un altro problemino con l’ambiente sidebyside, che uso nell’ultima versione riportata nel topic. (A proposito: sto usando l’iambiente in lungo e in largo e non potrei farne a meno, non sarebbe male farci un pacchetto).

                              I problemini sono questi:
                              `\begin{sidebyside}
                              Non ha importanza se
                              immetti uno o tanti spazi
                              dopo una parola.

                              Una riga vuota fa iniziare un nuovo
                              paragrafo.
                              \end{sidebyside}
                              `
                              Nel typeset (nonostante nel mio documento sia caricato il pacchetto indentfirst) i due capoversi non sono rientrati. Come si può rimediare?

                              Grazie,
                              L.

                            • #18915
                              DMW
                                Up
                                0
                                Down
                                ::


                                Non è possibile correggere il problema, a meno che il prof non trovi un rimedio, perché il tutto è dovuto alla minipage.

                                Prova a compilare questo codice:
                                `
                                \begin{minipage}{\linewidth}
                                Non ha importanza se immetti uno o tanti dopo una parola.

                                \par Una riga vuota fa iniziare un nuovo paragrafo.
                                \end{minipage}%`

                                il problema è minipage.

                                Ciao

                                Andrea

                              • #18916
                                lorenzo.pantieri
                                Partecipante
                                  Up
                                  0
                                  Down
                                  ::


                                  Carissimi, che c’è di meglio che trascorrere il giorno di Natale meditando sui misteri di LaTeX? 😉

                                  `\begin{sidebyside}
                                  \{ \} \!?%?! \$ \^{} \_ \& \# \~{}
                                  \end{sidebyside}`
                                  Questo codice viene compilato perfettamente, ma se si tolgono le due graffe {} dopo la tilde, c’è un errore! In altre parole:
                                  `\begin{sidebyside}
                                  \~
                                  \end{sidebyside}`
                                  non funziona.
                                  `! File ended while scanning use of \T1\~.`
                                  Un problema c’è anche con
                                  `\begin{sidebyside}
                                  \^
                                  \end{sidebyside}`
                                  che non viene composto bene. Se si scrive
                                  `\begin{sidebyside}
                                  \~{} \ˆ{}
                                  \end{sidebyside}`
                                  tutto funziona alla grande, invece.

                                  È normale? Ci sono rimedi?

                                  Grazie mille e ancora buon Natale,
                                  L.

                                • #18917
                                  Up
                                  0
                                  Down
                                  ::

                                  Carissimi, che c’è di meglio che trascorrere il giorno di Natale meditando sui misteri di LaTeX? 😉

                                  `\begin{sidebyside}
                                  \{ \} \!?%?! \$ \^{} \_ \& \# \~{}
                                  \end{sidebyside}`
                                  Questo codice viene compilato perfettamente, ma se si tolgono le due graffe {} dopo la tilde, c’è un errore! In altre parole:
                                  `\begin{sidebyside}
                                  \~
                                  \end{sidebyside}`
                                  non funziona.
                                  `! File ended while scanning use of \T1\~.`
                                  Un problema c’è anche con
                                  `\begin{sidebyside}
                                  \^
                                  \end{sidebyside}`
                                  che non viene composto bene. Se si scrive
                                  `\begin{sidebyside}
                                  \~{} \ˆ{}
                                  \end{sidebyside}`
                                  tutto funziona alla grande, invece.

                                  È normale? Ci sono rimedi?

                                  Solo perché a Natale si è tutti più buoni.

                                  Non hai pensato che \~ e \^ sono comandi per gli accenti che richiedono un argomento?

                                  Ciao
                                  Enrico

                                • #18918
                                  lorenzo.pantieri
                                  Partecipante
                                    Up
                                    0
                                    Down
                                    ::

                                    Solo perché a Natale si è tutti più buoni.

                                    Non hai pensato che \~ e \^ sono comandi per gli accenti che richiedono un argomento?

                                    Che sciocco che sono! In effetti sono stato tratto in inganno dalla Mica tanto breve intro, che dopo aver presentato i simboli speciali (fra cui tilde e cappuccio) dice:

                                    questi caratteri possono essere usati nei vostri
                                    documenti tutti allo stesso modo facendoli precedere da un backslash:

                                    Ne concludo che non è un caso, quelle parentesi graffe ci vogliono:
                                    `\~{} \^{}
                                    `
                                    Grazie, perfetto come sempre!

                                    Ciao,
                                    L.

                                  • #18919
                                    lorenzo.pantieri
                                    Partecipante
                                      Up
                                      0
                                      Down
                                      ::


                                      Carissimi, vi segnalo questo aspetto, che mi ricorda il paradosso degli insiemi normali.

                                      L’ambiente sidebyside è costruito con listings: nel codice (a sinistra) ci sono due righe, in alto e in basso, che delimitano il codice. A destra c’è il corrispondente typeset, senza righe.

                                      Il “problema” si presenta quando si usa l’ambiente sidebyside per… spiegare lo stesso listings!
                                      `\begin{sidebyside}
                                      \begin{lstlisting}
                                      Nell'ambiente lstlisting i
                                      comandi \LaTeX{} e i caratteri
                                      speciali (\{}!?%?!$_&#^~)
                                      non vengono interpretati.
                                      \end{lstlisting}
                                      \end{sidebyside}`
                                      Questa volta compaiono delle righe anche nel typeset, e quelle righe non ci andrebbero.

                                      Non pretendo che qualcuno di voi si sbatta per trovare una soluzione, ci mancherebbe!

                                      Tuttavia, io quelle righe nel typeset non le voglio: alla disperata, ritaglierò il risultato, lo modifcherò con un programma di grafica vettoriale e includerò l’immagine taroccata con \includegraphics…

                                      Un problema più serio è invece il rientro. È vero, minipage disabilita i rientri, ma non tutti! Per esempio se si inserisce un ambiente abstract, il testo del sommario viene rientrato eccome! Mi sembra strano che non esista una soluzione, il rientro ci vorrebbe proprio. Per esempio per mostrare il funzionamento di indentfirst…

                                      Grazie mille,
                                      L.

                                    • #18920
                                      DMW
                                        Up
                                        0
                                        Down
                                        ::


                                        Metto tutto in un unico messaggio.
                                        Io toglierei i colori alle keyword e ai commenti.
                                        L’ambiente minipage annulla \parindent, così l’ho ripristinato.
                                        `
                                        \newlength{\mnparindent}\setlength\mnparindent{\parindent}%%%%%%%%%%
                                        ….
                                        ….
                                        }{%
                                        \lst@EndWriteFile\egroup
                                        \begin{center}%
                                        \begin{minipage}{0.45\linewidth}%
                                        \hbox to\linewidth{\box\z@\hss}
                                        \end{minipage}%
                                        \qquad% o \hfil
                                        \begin{minipage}{0.45\linewidth}
                                        \setlength\parindent{\mnparindent}%%%%%%%%%%%%%%%%%
                                        \setkeys{lst}{frame=none,keywordstyle=\normalcolor,%%%%%%%%
                                        commentstyle=\normalcolor\ttfamily}%%%%%%%%%%%%%%%%
                                        % oppure lstset al psto di \setkeys{lst}
                                        \leavevmode\catcode`\^^M=5\relax
                                        \small\input{\jobname.tmp}%
                                        \end{minipage}%
                                        \end{center}%
                                        }
                                        \makeatother`

                                        i commenti %%%%%% indicano le modifiche
                                        Ciao

                                        Andrea

                                      • #18921
                                        lorenzo.pantieri
                                        Partecipante
                                          Up
                                          0
                                          Down
                                          ::


                                          Funziona perfettamente, Andrea!!!

                                          Grazie infinite,
                                          L.

                                        • #18922
                                          lorenzo.pantieri
                                          Partecipante
                                            Up
                                            0
                                            Down
                                            ::


                                            Ecco un altro problemino. Se scrivo
                                            `\begin{sidebyside}
                                            È possibile mettere tutta
                                            un'espressione\index{tutta
                                            un'espressione} nell’indice analitico.
                                            \end{sidebyside}
                                            `
                                            la voce “tutta un’espressione” viene naturalmente scritta nell’indice analitico. Vorrei evitarlo. Mi è venuta l’idea di ridefinire temporaneamente \index, annullandolo:
                                            `\let\oldindex\index
                                            \let\index\relax
                                            `
                                            e poi ripristinandolo con
                                            `\let\index\oldindex
                                            `
                                            Va bene? C’è qualche possibile effetto collaterale?

                                            Grazie mille,
                                            L.

                                          • #18923
                                            Up
                                            0
                                            Down
                                            ::

                                            Ecco un altro problemino. Se scrivo
                                            `\begin{sidebyside}
                                            È possibile mettere tutta
                                            un'espressione\index{tutta
                                            un'espressione} nell’indice analitico.
                                            \end{sidebyside}
                                            `
                                            la voce “tutta un’espressione” viene naturalmente scritta nell’indice analitico. Vorrei evitarlo. Mi è venuta l’idea di ridefinire temporaneamente \index, annullandolo:
                                            `\let\oldindex\index
                                            \let\index\relax
                                            `
                                            e poi ripristinandolo con
                                            `\let\index\oldindex
                                            `
                                            Va bene? C’è qualche possibile effetto collaterale?

                                            `\begingroup\renewcommand\index[1]{}\begin{sidebyside}
                                            È possibile mettere tutta
                                            un'espressione\index{tutta
                                            un'espressione} nell’indice analitico.
                                            \end{sidebyside}\endgroup`
                                            Altrimenti avrai qualche problemino, non trovi? Non c’è bisogno di ripristinare nulla se metti la ridefinizione nel gruppo. Non uso {…} perché \begingroup…\endgroup non modifica il modo (orizzontale, verticale o matematico), le graffe potrebbero invece avere effetti imprevisti a causa dell’ambiente sidebyside.

                                            Ciao
                                            Enrico

                                          • #18924
                                            lorenzo.pantieri
                                            Partecipante
                                              Up
                                              0
                                              Down
                                              ::

                                              `\begingroup\renewcommand\index[1]{}\begin{sidebyside}
                                              È possibile mettere tutta
                                              un'espressione\index{tutta
                                              un'espressione} nell’indice analitico.
                                              \end{sidebyside}\endgroup`

                                              Perfetto!

                                              Grazie mille,
                                              Lorenzo

                                            • #18925
                                              lorenzo.pantieri
                                              Partecipante
                                                Up
                                                0
                                                Down
                                                ::


                                                Ciao a tutti, ecco un’altra cosa che vorrei fare con questo preziosissimo ambiente. Vorrei illustrare come si inserisce un’immagine in LaTeX.

                                                Se carico il pacchetto float, nessun problema:
                                                `…Qui finisce un capoverso.

                                                \begin{figure}[H]

                                                \caption{…}
                                                \label{fig:esempio}
                                                \end{figure}

                                                Qui comincia un nuovo capoverso. Vedi la figura~\ref{fig:esempio}.
                                                `
                                                Se non carico il pacchetto float e uso un normale posizionamento [tb]:
                                                `…Qui finisce un capoverso.

                                                \begin{figure}[tb]

                                                \caption{…}
                                                \label{fig:esempio}
                                                \end{figure}

                                                Qui comincia un nuovo capoverso. Vedi la figura~\ref{fig:esempio}.
                                                `
                                                C’e’ modo di risolvere la cosa? Anche una soluzione spiccia e sporca andrebbe benissimo…

                                                Grazie mille,
                                                L.

                                                [OT]
                                                Mi scuso per la mancanza degli accenti e per il fatto che potro’ rispodere solo nei prossimo giorni, ma in Romania gli Internet Point sono una rarita’, e le tastiere sono scombinate.
                                                [OT]

                                              • #18926
                                                DMW
                                                  Up
                                                  0
                                                  Down
                                                  ::


                                                  Onestamente non saprei cosa fare. il motivo è che non si può mettere un ambiente float dentro una minipage. Nel caso di posizionamento H il pacchetto float tratta l’oggetto “flottante” come se fosse una minipage e quindi non dà errore. Nel caso di tb ma anche di h dà errore dovuto al motivo che ti ho testé detto.

                                                  Ma comunque non avrebbe senso mettere una fugura in quel modo. Io se fossi in te metterei il codice in un normale ambiente
                                                  `
                                                  \begin{lstlisting}
                                                  qui finisce un capoverso.

                                                  \begin{figure}[tb]

                                                  \caption{….}
                                                  \label{fig:esempio}
                                                  \end{figure}

                                                  Qui comincia un nuovo capoverso. Vedi la figura~\ref{fig:esempio}.
                                                  \end{lstlisting}`

                                                  e poi subito dopo scrivere una cosa tipo
                                                  `
                                                  il risultato è il seguente
                                                  \vspace{\topsep}\noindent
                                                  qui finisce un capoverso.

                                                  \begin{figure}[tb]

                                                  \caption{…}
                                                  \label{fig:esempio}
                                                  \end{figure}

                                                  Qui comincia un nuovo capoverso. Vedi la figura~\ref{fig:esempio}.

                                                  \vspace{\topsep}
                                                  Si può notare che la figura~\ref{fig:esempio} è in alto. Comunque \LaTeX\ avrebbe potuto metterla anche in basso.
                                                  `

                                                  Magari tra i due \vspace potresti mettere qualche rullo con \hrule o definirti un ambiente ad hoc.

                                                  Mi dispiace ma penso che non ci siano vie di uscita.

                                                  Se vuoi posso provare a creare un uovo ambiente dove l’output è diverso e indipendente dall’input che dai dentro l’ambiente. Così a sinistra hai questo codice
                                                  `
                                                  qui finisce un capoverso.

                                                  \begin{figure}[tb]

                                                  \caption{…}
                                                  \label{fig:esempio}
                                                  \end{figure}

                                                  Qui comincia un nuovo capoverso. Vedi la figura~\ref{fig:esempio}.`

                                                  e a destra
                                                  `

                                                  qui finisce un capoverso.
                                                  __Qui comincia un nuovo capoverso. Vedi la figura~\ref{fig:esempio}`
                                                  cioè le due righe con la figura in alto.

                                                  Fammi sapere e Buon Lavoro.

                                                  Ciao

                                                  Andrea

                                                • #18927
                                                  lorenzo.pantieri
                                                  Partecipante
                                                    Up
                                                    0
                                                    Down
                                                    ::


                                                    In effetti Andrea penso che tu abbia ragione. Forse una figura messa con opzione top dentro una minipage finirebbe addirittura per disorientare il lettore. Faccio come mi hai suggerito> metto il codice dentro ad un ambiente lstlisting.

                                                    Grazie di tutto!

                                                    A presto,
                                                    Lorenzo

                                                  • #18928
                                                    lorenzo.pantieri
                                                    Partecipante
                                                      Up
                                                      0
                                                      Down
                                                      ::


                                                      Ciao, ho bisogno di un “gioco di prestigio”.
                                                      `\begin{sidebyside}
                                                      \begin{figure}[H]
                                                      \centering
                                                      \includegraphics[width=%
                                                      0.5\textwidth]{Immagine}
                                                      \caption{Didascalia lunga}
                                                      \label{fig:float}
                                                      \end{figure}
                                                      \end{sidebyside}
                                                      `
                                                      Ecco, io vorrei che nell’elenco delle figure ci andasse una “didascalia corta” al posto di quella lunga, senza però modificare il codice che ho appena scritto.

                                                      Quindi ci vorrebbe un trucco prima e/o dopo sidebyside per avere
                                                      `\caption[Didascalia corta]{Didascalia lunga}`
                                                      senza farlo vedere a che legge (della serie: scientia est celare scientiam).

                                                      Chissà se si può fare…

                                                      Grazie,
                                                      L.

                                                    • #18929
                                                      Up
                                                      0
                                                      Down
                                                      ::

                                                      Ciao, ho bisogno di un “gioco di prestigio”.
                                                      `\begin{sidebyside}
                                                      \begin{figure}[H]
                                                      \centering
                                                      \includegraphics[width=%
                                                      0.5\textwidth]{Immagine}
                                                      \caption{Didascalia lunga}
                                                      \label{fig:float}
                                                      \end{figure}
                                                      \end{sidebyside}
                                                      `
                                                      Ecco, io vorrei che nell’elenco delle figure ci andasse una “didascalia corta” al posto di quella lunga, senza però modificare il codice che ho appena scritto.

                                                      Quindi ci vorrebbe un trucco prima e/o dopo sidebyside per avere
                                                      `\caption[Didascalia corta]{Didascalia lunga}`
                                                      senza farlo vedere a che legge (della serie: scientia est celare scientiam).

                                                      Chissà se si può fare…

                                                      Immagino di sì. Probabilmente cambiando localmente la definizione di \caption:
                                                      `\let\standardcaption\caption
                                                      \def\caption#1{\standardcaption{Didascalia corta}}`
                                                      Puoi scriverlo fra \begingroup e \begin{sidebyside}, ricordandoti di mettere \endgroup dopo \end{sidebyside}.

                                                      Ciao
                                                      Enrico

                                                    • #18930
                                                      lorenzo.pantieri
                                                      Partecipante
                                                        Up
                                                        0
                                                        Down
                                                        ::

                                                        Immagino di sì. Probabilmente cambiando localmente la definizione di \caption:
                                                        `\let\standardcaption\caption
                                                        \def\caption#1{\standardcaption{Didascalia corta}}`
                                                        Puoi scriverlo fra \begingroup e \begin{sidebyside}, ricordandoti di mettere \endgroup dopo \end{sidebyside}.

                                                        Ho provato, ma non funziona.
                                                        `\begingroup
                                                        \let\standardcaption\caption
                                                        \def\caption#1{\standardcaption{Didascalia breve}}
                                                        \begin{sidebyside}
                                                        \begin{figure}[H]
                                                        \centering
                                                        \includegraphics[width=%
                                                        0.5\textwidth]{Formica}
                                                        \caption{Didascalia lunga}
                                                        \label{fig:float}
                                                        \end{figure}
                                                        \end{sidebyside}
                                                        \endgroup
                                                        `
                                                        Non succede niente: nell’elenco delle figure la didascalia è sempre quella lunga. 🙁

                                                        Che ne pensi?

                                                        Grazie,
                                                        L.

                                                      • #18931
                                                        Up
                                                        0
                                                        Down
                                                        ::

                                                        Immagino di sì. Probabilmente cambiando localmente la definizione di \caption:
                                                        `\let\standardcaption\caption
                                                        \def\caption#1{\standardcaption{Didascalia corta}}`
                                                        Puoi scriverlo fra \begingroup e \begin{sidebyside}, ricordandoti di mettere \endgroup dopo \end{sidebyside}.

                                                        Ho provato, ma non funziona.
                                                        `\begingroup
                                                        \let\standardcaption\caption
                                                        \def\caption#1{\standardcaption{Didascalia breve}}
                                                        \begin{sidebyside}
                                                        \begin{figure}[H]
                                                        \centering
                                                        \includegraphics[width=%
                                                        0.5\textwidth]{Formica}
                                                        \caption{Didascalia lunga}
                                                        \label{fig:float}
                                                        \end{figure}
                                                        \end{sidebyside}
                                                        \endgroup
                                                        `
                                                        Non succede niente: nell’elenco delle figure la didascalia è sempre quella lunga. 🙁

                                                        Che ne pensi?

                                                        Che probabilmente è \figure che ridefinisce \caption. Ovviamente non posso sapere il tuo preambolo eccetera; prova a dare \show\figure dopo \begin{document}; se c’è lì qualche riferimento a \caption (o comandi collegati) bisogna modificare la definizione di \figure (localmente).

                                                        Ciao
                                                        Enrico

                                                      • #18932
                                                        DMW
                                                          Up
                                                          0
                                                          Down
                                                          ::


                                                          Se mi metti la definizione di sidebyside finale (quella che usi ora), posso fare un ambiente universale in cui l’output è uguale al contenuto di un comando non nullo, mentre l’ouput=input se il suddetto comando è vuoto.

                                                          Bastanto poche modifiche.

                                                          Ciao

                                                          Andrea

                                                        • #18933
                                                          lorenzo.pantieri
                                                          Partecipante
                                                            Up
                                                            0
                                                            Down
                                                            ::

                                                            Che probabilmente è \figure che ridefinisce \caption. Ovviamente non posso sapere il tuo preambolo eccetera; prova a dare \show\figure dopo \begin{document}; se c’è lì qualche riferimento a \caption (o comandi collegati) bisogna modificare la definizione di \figure (localmente).

                                                            Il mio preambolo è questo:
                                                            `\documentclass[10pt,a4paper,twoside,openright,titlepage,%fleqn,
                                                            cleardoubleempty,abstracton,pointlessnumbers,
                                                            headinclude,footinclude,BCOR5mm]{scrreprt}

                                                            \newcommand{\myName}{…}
                                                            \newcommand{\myTitle}{…}

                                                            \usepackage[applemac]{inputenc}
                                                            \usepackage[OT2,T1]{fontenc}
                                                            \usepackage[final]{microtype}
                                                            \usepackage{amsfonts,amssymb,amsthm}
                                                            \usepackage{amscd}
                                                            \usepackage[italian]{varioref}
                                                            \usepackage[square]{natbib}
                                                            \usepackage{indentfirst}
                                                            \usepackage[tight,italian]{minitoc}
                                                            \usepackage{wrapfig}
                                                            \usepackage{makeidx}
                                                            \usepackage{multicol}
                                                            \usepackage{chngpage,calc}
                                                            \usepackage{float}
                                                            \usepackage{braket}
                                                            \usepackage{mhchem}
                                                            \usepackage{empheq}
                                                            \usepackage[light,condensed,math]{iwona}
                                                            \usepackage[writefile]{listings}
                                                            \usepackage[italian,squaren,cdot]{SIunits}
                                                            \usepackage{enumitem}
                                                            \usepackage{calligra}
                                                            \usepackage{comment}
                                                            \usepackage{shapepar,lettrine}
                                                            \usepackage{epigraph}
                                                            \usepackage{verbatim}
                                                            \usepackage{numprint}
                                                            \usepackage{classicthesis-ldpkg}
                                                            \usepackage[eulerchapternumbers,subfig,beramono,
                                                            eulermath,pdfspacing]{classicthesis}
                                                            \usepackage{xfrac}
                                                            \usepackage{mathtools}
                                                            \usepackage[greek,german,english,italian]{babel}
                                                            \usepackage{classicthesis-ita}
                                                            \let\amssquare\square
                                                            \usepackage{xymtex}
                                                            \let\xymsquare\square
                                                            \renewcommand{\square}{\amssquare}
                                                            \usepackage{eurosym}
                                                            \usepackage{guit}
                                                            \usepackage{multirow,dcolumn,ctable,footnote,colortbl}`
                                                            Se scrivo \show\figure subito dopo \begin{document} c’è questo messaggio:
                                                            `> \figure=\long macro:
                                                            ->\let \caption \captionbelow \@float {figure}.
                                                            l.61 \show\figure

                                                            ?
                                                            `
                                                            Non ci capisco niente! 😳

                                                            Grazie mille,
                                                            L.

                                                          • #18934
                                                            Up
                                                            0
                                                            Down
                                                            ::

                                                            Che probabilmente è \figure che ridefinisce \caption. Ovviamente non posso sapere il tuo preambolo eccetera; prova a dare \show\figure dopo \begin{document}; se c’è lì qualche riferimento a \caption (o comandi collegati) bisogna modificare la definizione di \figure (localmente).

                                                            Se scrivo \show\figure subito dopo \begin{document} c’è questo messaggio:
                                                            `> \figure=\long macro:
                                                            ->\let \caption \captionbelow \@float {figure}.
                                                            l.61 \show\figure

                                                            ?
                                                            `
                                                            Non ci capisco niente! 😳

                                                            Come sospettavo. Dovrebbe bastare il codice che avevo scritto prima, sostituendo ogni occorrenza di “caption” con “captionbelow”.

                                                            Ciao
                                                            Enrico

                                                          • #18935
                                                            lorenzo.pantieri
                                                            Partecipante
                                                              Up
                                                              0
                                                              Down
                                                              ::

                                                              Dovrebbe bastare il codice che avevo scritto prima, sostituendo ogni occorrenza di “caption” con “captionbelow”.

                                                              Funziona!!
                                                              `\begingroup
                                                              \let\standardcaption\captionbelow
                                                              \def\captionbelow#1{\standardcaption{Didascalia breve.}}
                                                              \begin{sidebyside}
                                                              \begin{figure}[H]
                                                              \centering
                                                              \includegraphics[width=%
                                                              0.5\textwidth]{Formica}
                                                              \caption{Didascalia lunga.}
                                                              \label{fig:float}
                                                              \end{figure}
                                                              \end{sidebyside}
                                                              \endgroup
                                                              `
                                                              Il codice precedente (che riassumo per comodità) risolve egregiamente™ il problema.

                                                              Alè! 😀

                                                              Grazie mille Enrico.

                                                              A presto,
                                                              Lorenzo

                                                            • #18936
                                                              Up
                                                              0
                                                              Down
                                                              ::

                                                              Dovrebbe bastare il codice che avevo scritto prima, sostituendo ogni occorrenza di “caption” con “captionbelow”.

                                                              Funziona!!

                                                              Avevi forse qualche dubbio? 😉

                                                              Quando non si sa che cosa fa la macro \xxx, \show\xxx è la prima cosa da provare; se il comando \xxx è reso robusto, cioè definito tramite \DeclareRobustCommand, la risposta è, apparentemente, deludente:
                                                              `> \xxx=macro:
                                                              ->\protect \xxx .`
                                                              In questo caso si deve provare con
                                                              `\expandafter\show\csname xxx \endcsname`
                                                              dove il nome del comando (senza barra rovescia) va seguito da uno spazio. A questo punto si vedrà la definizione. Nel tuo caso non c’è questo problema; \show\figure ti dice che \caption viene reso uguale a \captionbelow e poi viene eseguito \@float{figure}. Et voilà.

                                                              Ciao
                                                              Enrico

                                                            • #18937
                                                              lorenzo.pantieri
                                                              Partecipante
                                                                Up
                                                                0
                                                                Down
                                                                ::

                                                                Avevi forse qualche dubbio? 😉

                                                                In questo momento mi vengono in mente solo paragoni evangelici… 😉

                                                                Grazie Enrico per la chiarissima spiegazione!

                                                                A presto,
                                                                Lorenzo

                                                              • #18938
                                                                DMW
                                                                  Up
                                                                  0
                                                                  Down
                                                                  ::


                                                                  Scusate, ma succede solo a me o anche a voi la didascalia dell’output è quella breve?

                                                                  A me nella lista delle figure c’è quella breve, nell’input c’è naturalmente il codice e nell’output (a destra) c’è quella breve. Non mi sembra che sia una buona cosa.

                                                                  Ciao

                                                                  Andrea

                                                                • #18939
                                                                  Up
                                                                  0
                                                                  Down
                                                                  ::

                                                                  Scusate, ma succede solo a me o anche a voi la didascalia dell’output è quella breve?

                                                                  A me nella lista delle figure c’è quella breve, nell’input c’è naturalmente il codice e nell’output (a destra) c’è quella breve. Non mi sembra che sia una buona cosa.

                                                                  Questo era ciò che chiedeva Lorenzo. Uno scherzetto al lettore?

                                                                  Ciao
                                                                  Enrico

                                                                • #18940
                                                                  lorenzo.pantieri
                                                                  Partecipante
                                                                    Up
                                                                    0
                                                                    Down
                                                                    ::

                                                                    Scusate, ma succede solo a me o anche a voi la didascalia dell’output è quella breve?

                                                                    A me nella lista delle figure c’è quella breve, nell’input c’è naturalmente il codice e nell’output (a destra) c’è quella breve. Non mi sembra che sia una buona cosa.

                                                                    Santo cielo Andrea, è proprio così… 🙁 🙁 🙁

                                                                    Io guardavo solo la “didascalia breve” nell’elenco delle figure (che ora va bene), non ero accorto che la “didascalia lunga” nel typeset dell’ambiente sidebyside fosse sparita!

                                                                    Ahia, il problema è dunque ancora aperto…

                                                                    Ma sono pronto a scommettere in un miracolo di Enrico. 😉

                                                                  • #18941
                                                                    lorenzo.pantieri
                                                                    Partecipante
                                                                      Up
                                                                      0
                                                                      Down
                                                                      ::

                                                                      Questo era ciò che chiedeva Lorenzo. Uno scherzetto al lettore?

                                                                      No, nessuno scherzo e io volevo fare un’altra cosa.
                                                                      `\begin{sidebyside}
                                                                      \begin{figure}[H]
                                                                      \centering
                                                                      \includegraphics[width=%
                                                                      0.5\textwidth]{Formica}
                                                                      \caption{Didascalia lunga.}
                                                                      \label{fig:float}
                                                                      \end{figure}
                                                                      \end{sidebyside}
                                                                      `
                                                                      però vorrei che nell’elenco delle figure ci fosse una didascalia breve. Naturalmente, potre cavarmela così:
                                                                      `\begin{sidebyside}
                                                                      \begin{figure}[H]
                                                                      \centering
                                                                      \includegraphics[width=%
                                                                      0.5\textwidth]{Formica}
                                                                      \caption[Didascalia breve.]{Didascalia lunga.}
                                                                      \label{fig:float}
                                                                      \end{figure}
                                                                      \end{sidebyside}
                                                                      `
                                                                      però non è quello che voglio, perché il lettore verrebbe “distratto” da quelle parentesi quadre, mentre lo voglio concentrato sul contenuto dell’esempio (che è tutt’altro, e non c’entra niente con le didascalie lunghe e corte, che ho già spiegato da un’altra parte).

                                                                      Quindi vorrei una didascalia breve nell’elenco, ma tenendo nascoste al lettore quelle quadre, che mi spezzano il filo.

                                                                      Ecco, adesso spero di essere stato più chiaro!

                                                                      L.

                                                                    • #18942
                                                                      Up
                                                                      0
                                                                      Down
                                                                      ::

                                                                      Scusate, ma succede solo a me o anche a voi la didascalia dell’output è quella breve?

                                                                      A me nella lista delle figure c’è quella breve, nell’input c’è naturalmente il codice e nell’output (a destra) c’è quella breve. Non mi sembra che sia una buona cosa.

                                                                      Santo cielo Andrea, è proprio così… 🙁 🙁 🙁

                                                                      Io guardavo solo la “didascalia breve” nell’elenco delle figure (che ora va bene), non ero accorto che la “didascalia lunga” nel typeset dell’ambiente sidebyside fosse sparita!

                                                                      Ahia, il problema è dunque ancora aperto…

                                                                      Ma sono pronto a scommettere in un miracolo di Enrico. 😉

                                                                      \begingroup
                                                                      \let\standardcaption\captionbelow
                                                                      \def\captionbelow{\standardcaption[Didascalia breve.]}
                                                                      \begin{sidebyside}
                                                                      \begin{figure}[H]
                                                                      \centering
                                                                      \includegraphics[width=%
                                                                      0.5\textwidth]{Formica}
                                                                      \caption{Didascalia lunga.}
                                                                      \label{fig:float}
                                                                      \end{figure}
                                                                      \end{sidebyside}
                                                                      \endgroup[/code]
                                                                      Non ho provato, ma dovrebbe funzionare: le successive espansioni sono
                                                                      `\caption{Didascalia lunga.}
                                                                      \captionbelow{Didascalia lunga.}
                                                                      \standardcaption[Didascalia breve.]{Didascalia lunga.}`
                                                                      e tutto dovrebbe essere a posto perché \standardcaption è uguale a \captionbelow originalmente definita dal pacchetto caption e si aspetta un argomento opzionale e uno obbligatorio.

                                                                      Ciao
                                                                      Enrico

                                                                    • #18943
                                                                      lorenzo.pantieri
                                                                      Partecipante
                                                                        Up
                                                                        0
                                                                        Down
                                                                        ::


                                                                        `\begingroup
                                                                        \let\standardcaption\captionbelow
                                                                        \def\captionbelow{\standardcaption[Didascalia breve]}
                                                                        \begin{sidebyside}
                                                                        \begin{figure}[H]
                                                                        \centering
                                                                        \includegraphics[…]{…}
                                                                        \caption{Didascalia lunga.}
                                                                        \end{figure}
                                                                        \endgroup
                                                                        `
                                                                        Ecco! Questa volta ci siamo proprio!

                                                                        Non so davvero come ringraziarvi, Enrico e Andrea! 😀

                                                                        A presto,
                                                                        L.

                                                                      • #18944
                                                                        lorenzo.pantieri
                                                                        Partecipante
                                                                          Up
                                                                          0
                                                                          Down
                                                                          ::


                                                                          Carissimi, ormai ci siamo…

                                                                          Questa finezza è l‘ultimo dubbio che riguarda l’ambiente sidebyside.

                                                                          Il problema è questo:
                                                                          `\begin{sidebyside}
                                                                          \begin{large}
                                                                          In questo momento,
                                                                          sto mentendo.\par
                                                                          \end{large}
                                                                          \end{sidebyside}
                                                                          `

                                                                          Vorrei eliminare quel fastidioso, indesiderato rientro prima delle parole “In questo momento”.

                                                                          Tanto più che se scrivo semplicemente
                                                                          `\begin{large}
                                                                          In questo momento,
                                                                          sto mentendo.\par
                                                                          \end{large}
                                                                          `
                                                                          non c’è alcun rientro.

                                                                          Grazie anticipate per l’aiuto!
                                                                          Lorenzo

                                                                        • #18945
                                                                          Up
                                                                          0
                                                                          Down
                                                                          ::

                                                                          Carissimi, ormai ci siamo…

                                                                          Questa finezza è l‘ultimo dubbio che riguarda l’ambiente sidebyside.

                                                                          Il problema è questo:
                                                                          `\begin{sidebyside}
                                                                          \begin{large}
                                                                          In questo momento,
                                                                          sto mentendo.\par
                                                                          \end{large}
                                                                          \end{sidebyside}
                                                                          `

                                                                          Vorrei eliminare quel fastidioso, indesiderato rientro prima delle parole “In questo momento”.

                                                                          Tanto più che se scrivo semplicemente
                                                                          `\begin{large}
                                                                          In questo momento,
                                                                          sto mentendo.\par
                                                                          \end{large}
                                                                          `
                                                                          non c’è alcun rientro.

                                                                          Non propagandare l’uso di \begin{large}…\end{large}, c’est plus facile.

                                                                          Ciao
                                                                          Enrico

                                                                        • #18946
                                                                          lorenzo.pantieri
                                                                          Partecipante
                                                                            Up
                                                                            0
                                                                            Down
                                                                            ::

                                                                            Non propagandare l’uso di \begin{large}…\end{large}, c’est plus facile.

                                                                            Questa è senza dubbio una soluzione.

                                                                            Tuttavia, mi piacerebbe comunque trovare la soluzione del problema ed eliminare il rientro!

                                                                            Indipendentemente dal resto.

                                                                            È davvero così difficile curare questo caso?

                                                                            Grazie Enrico e scusami per la pervicace insistenza… 😳

                                                                          • #18947
                                                                            Up
                                                                            0
                                                                            Down
                                                                            ::

                                                                            Non propagandare l’uso di \begin{large}…\end{large}, c’est plus facile.

                                                                            Questa è senza dubbio una soluzione.

                                                                            Tuttavia, mi piacerebbe comunque trovare la soluzione del problema ed eliminare il rientro!

                                                                            Indipendentemente dal resto.

                                                                            È davvero così difficile curare questo caso?

                                                                            Grazie Enrico e scusami per la pervicace insistenza… 😳

                                                                            Sarebbe carino se mettessi la definizione attuale di sidebyside e un preambolo minimalissimo che mostri il problema. Con un filone così lungo non sono riuscito a capire quale sia la definizione che usi.

                                                                            Ciao
                                                                            Enrico

                                                                          • #18948
                                                                            lorenzo.pantieri
                                                                            Partecipante
                                                                              Up
                                                                              0
                                                                              Down
                                                                              ::


                                                                              `\documentclass{scrreprt}

                                                                              \usepackage[writefile]{listings}
                                                                              \usepackage{classicthesis-ldpkg}
                                                                              \usepackage{classicthesis}

                                                                              \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

                                                                              \begin{document}
                                                                              \begin{sidebyside}
                                                                              \begin{large}
                                                                              In questo momento,
                                                                              sto mentendo.\par
                                                                              \end{large}
                                                                              \end{sidebyside}
                                                                              \end{document}
                                                                              `
                                                                              Grazie mille,
                                                                              L.

                                                                            • #18949
                                                                              Up
                                                                              0
                                                                              Down
                                                                              ::

                                                                              `\documentclass{scrreprt}

                                                                              \usepackage[writefile]{listings}
                                                                              \usepackage{classicthesis-ldpkg}
                                                                              \usepackage{classicthesis}

                                                                              \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

                                                                              \begin{document}
                                                                              \begin{sidebyside}
                                                                              \begin{large}
                                                                              In questo momento,
                                                                              sto mentendo.\par
                                                                              \end{large}
                                                                              \end{sidebyside}
                                                                              \end{document}
                                                                              `
                                                                              Grazie mille,
                                                                              L.

                                                                              Il problema è il \leavevmode prima di \catcode`\^^M=5. Puoi notare che
                                                                              `aaa\par
                                                                              \leavevmode\begin{large}Io dico la verità\end{large}`
                                                                              presenta lo stesso problema (ho messo “aaa\par” per mostrare lo spazio in più). Ora vedi tu se cancellarlo oppure no: qui risolve il problema, in altri posti potrebbe dare guai.

                                                                              Se si è in modo verticale, lo spazio dopo \begin{large} è ignorato, il paragrafo comincia solo con il primo carattere. Dopo \leavevmode quello spazio non è ignorato.

                                                                              Un ambiente che si usa anche in modo orizzontale deve avere sempre una definizione del tipo
                                                                              `\newenvironment{xxx}{…\ignorespaces}{\unskip…}`
                                                                              per togliere gli spazi spuri. Motivo in più per non propagandare gli pseudoambienti “large” e simili.

                                                                              Ciao
                                                                              Enrico

                                                                            • #18950
                                                                              lorenzo.pantieri
                                                                              Partecipante
                                                                                Up
                                                                                0
                                                                                Down
                                                                                ::

                                                                                …Motivo in più per non propagandare gli pseudoambienti “large” e simili.

                                                                                Beh Enrico, mi hai proprio convinto: ho tolto senz’latro quella parte dalla guida.

                                                                                Il lavoro è finito! Adesso l’ultimo controllo, e via!

                                                                                Un milione di grazie,
                                                                                Lorenzo

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

                                                                            Go to top