Ancora su sydebyside

  • Creatore
    Topic
  • #53458
    samiel
    Partecipante
      Up
      0
      Down
      ::


      Sto provando gli “ambienti di esempio” (come sono stati definiti
      e discussi in un paio di interessantissime serie di post passati).
      Ora, con questo codice:
      `\documentclass{article}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[writefile]{listings}
      \usepackage[italian]{babel}
      \usepackage{microtype}
      \usepackage{xcolor}
      \definecolor{cyan}{rgb}{0.95,1,1}

      \lstset{%
      basicstyle=\color{black}\small\ttfamily,
      keywordstyle=\color{black},
      commentstyle=\color{black},
      stringstyle=\color{black},
      backgroundcolor=\color{cyan},
      moredelim=[is][\color{black}\textrm]{|*}{*|},
      escapeinside={£!}{!£},
      frame=lines,
      rulecolor=\color{black},
      inputencoding=utf8,
      extendedchars=\true}

      \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,%
      }%
      \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
      \footnotesize\input{\jobname.tmp}%
      \end{minipage}%
      \end{center}%
      }
      \makeatother

      \begin{document}

      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam lectus.
      Donec id dolor.

      \noindent Pellentesque semper feugiat lacus. Maecenas hendrerit, purus
      non suscipit faucibus, lectus ipsum faucibus risus, a venenatis eros neque id
      dolor.

      \begin{sidebyside}
      Qual masso che è dal vertice

      Nel mezzo del cammin più di nostra vita
      \end{sidebyside}

      \end{document}`
      ottengo un risultato strano forse legata alla codifica.

      1.
      Nella parte di codice le lettere accentate sono unite alla parola successiva,
      nel risultato prodotto mancano del tutto. Per cui ho
      `Qual masso che èdal vertice`
      da un lato e dall’altro
      `Qual masso che dal vertice`.
      E ancora più stranamente:nel secondo codice:
      `Nel mezzo del cammin ùpi di`
      con la singolare posizione della ù accentata.
      Da cosa dipende?

      2,
      In secondo luogo, le due righe che nel codice sono seperate
      nel testo risultano come un unico paragrafo.

      3.
      Infine, come eliminare il rientro delle minipage?

      Grazie
      M.

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

        Sto provando gli “ambienti di esempio” (come sono stati definiti
        e discussi in un paio di interessantissime serie di post passati).
        Ora, con questo codice:
        `\documentclass{article}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage[writefile]{listings}
        \usepackage[italian]{babel}
        \usepackage{microtype}
        \usepackage{xcolor}
        \definecolor{cyan}{rgb}{0.95,1,1}

        \lstset{%
        basicstyle=\color{black}\small\ttfamily,
        keywordstyle=\color{black},
        commentstyle=\color{black},
        stringstyle=\color{black},
        backgroundcolor=\color{cyan},
        moredelim=[is][\color{black}\textrm]{|*}{*|},
        escapeinside={£!}{!£},
        frame=lines,
        rulecolor=\color{black},
        inputencoding=utf8,
        extendedchars=\true}

        \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,%
        }%
        \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
        \footnotesize\input{\jobname.tmp}%
        \end{minipage}%
        \end{center}%
        }
        \makeatother

        \begin{document}

        Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam lectus.
        Donec id dolor.

        \noindent Pellentesque semper feugiat lacus. Maecenas hendrerit, purus
        non suscipit faucibus, lectus ipsum faucibus risus, a venenatis eros neque id
        dolor.

        \begin{sidebyside}
        Qual masso che è dal vertice

        Nel mezzo del cammin più di nostra vita
        \end{sidebyside}

        \end{document}`
        ottengo un risultato strano forse legata alla codifica.

        1.
        Nella parte di codice le lettere accentate sono unite alla parola successiva,
        nel risultato prodotto mancano del tutto. Per cui ho
        `Qual masso che èdal vertice`
        da un lato e dall’altro
        `Qual masso che dal vertice`.
        E ancora più stranamente:nel secondo codice:
        `Nel mezzo del cammin ùpi di`
        con la singolare posizione della ù accentata.
        Da cosa dipende?

        2,
        In secondo luogo, le due righe che nel codice sono seperate
        nel testo risultano come un unico paragrafo.

        3.
        Infine, come eliminare il rientro delle minipage?

        Grazie
        M.

        listings non è compatibile con utf8.

        Ciao
        Enrico

      • #53460
        samiel
        Partecipante
          Up
          0
          Down
          ::


          Ho sostituito con latin1 e cambiato la codifica dell’editor
          da utf8 a ISO8859-1 e riscritto le lettere accentata
          (che di defaut è appunto utf8), ma mi dà lo stesso errore.

          Idem se carico ucs e utf8x

          Sono sconcertato…

          M.

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


            Questo funziona, ma non uso utf8 (confesso: per inerzia, uso ancora applemac).
            `\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=false,%
            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`
            Ciao,
            L.

          • #53462
            Up
            0
            Down
            ::

            Questo funziona, ma non uso utf8 (confesso: per inerzia, uso ancora applemac).
            `\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=false,%
            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`
            Ciao,
            L.

            Non mi ero proprio accorto di “extendedchars=\true” che non ha alcun senso. Rimane l’incompatibilità con utf8. 🙁

            Ciao
            Enrico

          • #53463
            samiel
            Partecipante
              Up
              0
              Down
              ::


              Sì, così funziona!

              Vorrei però capire:
              non funziona nemmeno con utf8x
              e dunque dando nel preambolo
              `\usepackage{ucs}
              \usepackage[utf8x]{inputenc}`
              e quindi

              \lstset{%
              ……..
              inputencoding=utf8x,
              extendedchars=/true}

              Perché riproduce gli stessi errori con gli accenti.
              È normale?

              Resta poi il fatto che le due frasi, benché nel codice
              separate dallo spazio, risultano nel testo “compilato”
              come un’unica frase.

              E da ultimo, ancora: è possibile allineare il codice
              a sinistra al margine senza rientro?

              Grazie
              M.

            • #53464
              Up
              0
              Down
              ::

              Sì, così funziona!

              Vorrei però capire:
              non funziona nemmeno con utf8x
              e dunque dando nel preambolo
              `\usepackage{ucs}
              \usepackage[utf8x]{inputenc}`
              e quindi

              \lstset{%
              ……..
              inputencoding=utf8x,
              extendedchars=/true}

              Perché riproduce gli stessi errori con gli accenti.
              È normale?

              Resta poi il fatto che le due frasi, benché nel codice
              separate dallo spazio, risultano nel testo “compilato”
              come un’unica frase.

              E da ultimo, ancora: è possibile allineare il codice
              a sinistra al margine senza rientro?

              Grazie
              M.

              E “/true”, secondo te, a che serve? O scrivi “extendedchars=true” oppure solo “extendedchars”.

              È un problema noto, tuttavia, che listings non riesce a trattare correttamente utf8. Nemmeno utf8x, naturalmente.

              Ciao
              Enrico

            • #53465
              samiel
              Partecipante
                Up
                0
                Down
                ::


                Capisco… Insomma latin1 e basta.
                `E “/true”, secondo te, a che serve? O scrivi “extendedchars=true” oppure solo “extendedchars”. `
                Sugli altri codici ci dev’essere in rete un po’ di confusione,
                come spesso accade, perché si trovano post con consigli
                per entrambe le forme, quella giusta e quella insensata…

                M.

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

            Go to top