ClassicThesis: “simmetrizzare” le note a margine

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


      Ciao a tutti,

      ClassicThesis compone le note a margine allineandole tutte a sinistra (sia nella pagine dispari, sia in quelle pari). Invece (ho appena controllato) nel capolavoro di Bringhurst (cui ClassicThesis si ispira), le note sono composte in modo simmetrico, ovvero allineate a sinistra nelle pagine dispari, allineate a destra in quelle pari. Non so se la differrenza sia frutto di una svista dell’autore di ClassicThesis, o sia una scelta deliberata.

      In ogni caso, come si può modifcare ClassicThesis in modo cha le note a margine siano composte “alla Bringhurst” (nei documenti fronte-retro)?

      Per comodità, riporto la definizione del comando \graffito:
      `% Graffiti as in GKP's book “Concrete Mathematics”
      \DeclareRobustCommand{\graffito}[1]{\marginpar{%
      \slshape\footnotesize%\small%
      \parindent=0pt\lineskip=0pt\lineskiplimit=0pt%\baselineskip=10pt
      \tolerance=2000\hyphenpenalty=300\exhyphenpenalty=300%
      \doublehyphendemerits=100000\finalhyphendemerits=\doublehyphendemerits%
      \raggedright\hspace{0pt}#1}}
      `
      Grazie anticipate,
      Lorenzo

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

        Ciao a tutti,

        ClassicThesis compone le note a margine allineandole tutte a sinistra (sia nella pagine dispari, sia in quelle pari). Invece (ho appena controllato) nel capolavoro di Bringhurst (cui ClassicThesis si ispira), le note sono composte in modo simmetrico, ovvero allineate a sinistra nelle pagine dispari, allineate a destra in quelle pari. Non so se la differrenza sia frutto di una svista dell’autore di ClassicThesis, o sia una scelta deliberata.

        In ogni caso, come si può modifcare ClassicThesis in modo cha le note a margine siano composte “alla Bringhurst” (nei documenti fronte-retro)?

        Per comodità, riporto la definizione del comando \graffito:
        `% Graffiti as in GKP's book “Concrete Mathematics”
        \DeclareRobustCommand{\graffito}[1]{\marginpar{%
        \slshape\footnotesize%\small%
        \parindent=0pt\lineskip=0pt\lineskiplimit=0pt%\baselineskip=10pt
        \tolerance=2000\hyphenpenalty=300\exhyphenpenalty=300%
        \doublehyphendemerits=100000\finalhyphendemerits=\doublehyphendemerits%
        \raggedright\hspace{0pt}#1}}
        `

        \marginpar ha un argomento opzionale che dovrebbe servire esattamente allo scopo:
        `% Graffiti as in GKP's book “Concrete Mathematics”
        \def\graffito@setup{%
        \slshape\footnotesize%\small%
        \parindent=0pt \lineskip=0pt \lineskiplimit=0pt %\baselineskip=10pt
        \tolerance=2000 \hyphenpenalty=300 \exhyphenpenalty=300 %
        \doublehyphendemerits=100000 \finalhyphendemerits=\doublehyphendemerits}
        \DeclareRobustCommand{\graffito}[1]{\marginpar
        [\graffito@setup\raggedleft\hspace{0pt}#1]
        {\graffito@setup\raggedright\hspace{0pt}#1}}`
        Prova, non ho tempo per farlo io.

        Ciao
        Enrico

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


          Ciao Enrico, innanzitutto ti grazie per la pronta risposta. Purtroppo però quel codice non funziona. Se compilo il seguente documento di prova:
          `\documentclass[twoside]{scrreprt}

          \usepackage{classicthesis-ldpkg}
          \usepackage{classicthesis}
          \usepackage{lipsum}

          \let\graffito\relax

          % Graffiti as in GKP's book “Concrete Mathematics”
          \def\graffito@setup{%
          \slshape\footnotesize%\small%
          \parindent=0pt \lineskip=0pt \lineskiplimit=0pt %\baselineskip=10pt
          \tolerance=2000 \hyphenpenalty=300 \exhyphenpenalty=300 %
          \doublehyphendemerits=100000 \finalhyphendemerits=\doublehyphendemerits}
          \DeclareRobustCommand{\graffito}[1]{\marginpar
          [\graffito@setup\raggedleft\hspace{0pt}#1]
          {\graffito@setup\raggedright\hspace{0pt}#1}}

          \begin{document}
          \lipsum
          \graffito{Nota in una pagina pari}
          \lipsum[1-3]
          \graffito{Nota in una pagina dispari}
          \lipsum[1-2]
          \end{document}`
          ricevo l’errore (fatale):
          `l.21 \graffito{Nota in una pagina pari}

          ?

          ! LaTeX Error: Not in outer par mode.`
          Ciao,
          Lorenzo

        • #25621
          DMW
            Up
            0
            Down
            ::


            Funziona eccome, ma, se non metti \makeatletter e \makeatother, no. 😀 `\makeatletter
            % Graffiti as in GKP's book “Concrete Mathematics”
            \def\graffito@setup{%
            \slshape\footnotesize%\small%
            \parindent=0pt \lineskip=0pt \lineskiplimit=0pt %\baselineskip=10pt
            \tolerance=2000 \hyphenpenalty=300 \exhyphenpenalty=300 %
            \doublehyphendemerits=100000 \finalhyphendemerits=\doublehyphendemerits}
            \DeclareRobustCommand{\graffito}[1]{\marginpar
            [\graffito@setup\raggedleft\hspace{0pt}#1]
            {\graffito@setup\raggedright\hspace{0pt}#1}}
            \makeatother`

            Ciao

            Andrea

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

              Funziona eccome, ma, se non metti \makeatletter e \makeatother, no. 😀

              Chiedo venia per la mia sbadataggine… 😳

              Adesso ci siamo quasi. Infatti il codice non supporta l’iserimento di immagini come note a margine (si tratta di un vezzo che Bringhurst usa spesso e volentieri). Il seguente
              `\documentclass[twoside]{scrreprt}

              \usepackage{classicthesis-ldpkg}
              \usepackage{classicthesis}
              \usepackage{lipsum}

              \let\graffito\relax

              \makeatletter
              % Graffiti as in GKP's book “Concrete Mathematics”
              \def\graffito@setup{%
              \slshape\footnotesize%\small%
              \parindent=0pt \lineskip=0pt \lineskiplimit=0pt %\baselineskip=10pt
              \tolerance=2000 \hyphenpenalty=300 \exhyphenpenalty=300 %
              \doublehyphendemerits=100000 \finalhyphendemerits=\doublehyphendemerits}
              \DeclareRobustCommand{\graffito}[1]{\marginpar
              [\graffito@setup\raggedleft\hspace{0pt}#1]
              {\graffito@setup\raggedright\hspace{0pt}#1}}
              \makeatother

              \begin{document}
              \lipsum
              \graffito{Nota in una pagina pari}
              \lipsum[1-3]
              \graffito{Nota in una pagina dispari}
              \lipsum[1-2]
              \graffito{\protect\includegraphics[width=\marginparwidth]{immagine}}
              \end{document}`
              produce l’errore:
              `! Argument of \Gin@ii has an extra }.

              \par
              l.27 …ics[width=\marginparwidth]{immagine}}`
              Senza la ridefinizione di \graffito il codice invece funziona…

              Grazie,
              L.

            • #25623
              DMW
                Up
                0
                Down
                ::


                se metti
                `\graffito{{\includegraphics[width=\marginparwidth]{img}}}`
                cioè chiudi l’immagine in un gruppo, a me funziona. Il perché non so spiegartelo.
                Oppure puoi mettere le parentesi graffe attorno all’argomento #1, cioè
                `\makeatletter
                % Graffiti as in GKP's book “Concrete Mathematics”
                \def\graffito@setup{%
                \slshape\footnotesize%\small%
                \parindent=0pt \lineskip=0pt \lineskiplimit=0pt %\baselineskip=10pt
                \tolerance=2000 \hyphenpenalty=300 \exhyphenpenalty=300 %
                \doublehyphendemerits=100000 \finalhyphendemerits=\doublehyphendemerits}
                \DeclareRobustCommand{\graffito}[1]{\marginpar
                [\graffito@setup\raggedleft\hspace{0pt}{#1}]
                {\graffito@setup\raggedright\hspace{0pt}{#1}}}
                \makeatother`
                e poi normale
                `\graffito{\includegraphics[width=\marginparwidth]{fotobn}}`

                Comunque per una cosa più precisa aspetta il prof.

                Ciao

                Andrea

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


                  Ciao Andrea, aggiungendo quelle graffe non ho più errori! 🙂 Mi sembra che ci sia ancora qualche problemino nella resa grafica delle immagini inserite come note a margine nelle pagine pari (queste immagini mi sembrano allineate a sinistra, e non a destra come dovrebbero), ma magari è un problema che riguarda il bounding box delle immagini.

                  Faccio qualche esperimento e vi faccio sapere…

                  A presto, per ora.
                  Lorenzo

                • #25625
                  DMW
                    Up
                    0
                    Down
                    ::


                    La larghezza dell’immagine è \marginparwidth ❗
                    Quindi in questo caso non esiste allineamento.
                    Fa’ una prova, metti .5\marginparwidth dentro \includegraphics. Vedi come l’allinea.
                    Nelle pagine dispari allinea a sinistra e in quelle pari a destra, come le scritte.

                    Ciao

                    Andrea

                  • #25626
                    Up
                    0
                    Down
                    ::

                    Funziona eccome, ma, se non metti \makeatletter e \makeatother, no. 😀

                    Chiedo venia per la mia sbadataggine… 😳

                    Adesso ci siamo quasi. Infatti il codice non supporta l’iserimento di immagini come note a margine (si tratta di un vezzo che Bringhurst usa spesso e volentieri). Il seguente
                    `\documentclass[twoside]{scrreprt}

                    \usepackage{classicthesis-ldpkg}
                    \usepackage{classicthesis}
                    \usepackage{lipsum}

                    \let\graffito\relax

                    \makeatletter
                    % Graffiti as in GKP's book “Concrete Mathematics”
                    \def\graffito@setup{%
                    \slshape\footnotesize%\small%
                    \parindent=0pt \lineskip=0pt \lineskiplimit=0pt %\baselineskip=10pt
                    \tolerance=2000 \hyphenpenalty=300 \exhyphenpenalty=300 %
                    \doublehyphendemerits=100000 \finalhyphendemerits=\doublehyphendemerits}
                    \DeclareRobustCommand{\graffito}[1]{\marginpar
                    [\graffito@setup\raggedleft\hspace{0pt}#1]
                    {\graffito@setup\raggedright\hspace{0pt}#1}}
                    \makeatother

                    \begin{document}
                    \lipsum
                    \graffito{Nota in una pagina pari}
                    \lipsum[1-3]
                    \graffito{Nota in una pagina dispari}
                    \lipsum[1-2]
                    \graffito{\protect\includegraphics[width=\marginparwidth]{immagine}}
                    \end{document}`
                    produce l’errore:
                    `! Argument of \Gin@ii has an extra }.

                    \par
                    l.27 …ics[width=\marginparwidth]{immagine}}`
                    Senza la ridefinizione di \graffito il codice invece funziona…

                    Il problema è l’argomento opzionale di \includegraphics dentro l’argomento opzionale di \marginpar: è sempre così quando hai questa situazione, perché la ] dell’argomento opzionale del comando interno viene presa come quella di chiusura dell’argomento opzionale del comando esterno. Prova a inserire graffe attorno ai due #1 nella definizione di \graffito, non dovrebbero avere effetti collaterali.

                    Ciao
                    Enrico

                  • #25627
                    DMW
                      Up
                      0
                      Down
                      ::

                      Prova a inserire graffe attorno ai due #1 nella definizione di \graffito, non dovrebbero avere effetti collaterali.

                      ho fatto varie prove e non ho riscontrato nessun tipo di problema. Quindi direi a Lorenzo di andare tranquillo. L’allineamento poi funziona correttamente anche con le immagini.

                      Ciao

                      Andrea

                    • #25628
                      Up
                      0
                      Down
                      ::

                      ho fatto varie prove e non ho riscontrato nessun tipo di problema. Quindi direi a Lorenzo di andare tranquillo. L’allineamento poi funziona correttamente anche con le immagini.

                      Ciao

                      Andrea

                      Il mio problema nell’usare questo codice è il seguente:
                      `\makeatletter
                      \def\notamargine@setup{\setstretch{1}\slshape\footnotesize%\small%
                      \parindent=0pt\lineskip=0pt\lineskiplimit=0pt%\baselineskip=10pt
                      \tolerance=2000\hyphenpenalty=300\exhyphenpenalty=300\doublehyphendemerits=100000\finalhyphendemerits=\doublehyphendemerits}
                      \DeclareRobustCommand{\notamargine}[2]{#2\marginpar
                      [\notamargine@setup\raggedleft\hspace{0pt}{#1}]
                      {\notamargine@setup\raggedright\hspace{0pt}{#1}}}
                      \makeatother`
                      Uso 2 argomenti per fare in modo che la nota a margine sia all’inizio del paragrafo, come:
                      `testo…

                      \notamargine{NOTA}Resto del paragrafo…`
                      venga allineata a “Resto” e non a “testo…”.
                      Se metto un’immagine però viene con la base in linea con “Resto” e l’immagine sale verso il paragrafo superiore.
                      è possibile fare in modo che l’immagine scenda in basso, nel paragrafo a cui si riferisce?

                      Grazie a tutti.

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

                        Il problema è l’argomento opzionale di \includegraphics dentro l’argomento opzionale di \marginpar: è sempre così quando hai questa situazione, perché la ] dell’argomento opzionale del comando interno viene presa come quella di chiusura dell’argomento opzionale del comando esterno. Prova a inserire graffe attorno ai due #1 nella definizione di \graffito, non dovrebbero avere effetti collaterali.

                        Con quelle graffe in più tutto funziona perfettamente!

                        Grazie mille, Enrico e Andrea!

                        Ciao,
                        L.

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

                    Go to top