Layout 2 colonne con contenuti diversi (come realizzarlo?)

  • Creatore
    Topic
  • #62288
    Up
    0
    Down
    ::


    Salve a tutti,
    Ho da poco ripreso in mano LaTeX, per realizzare un manuale, ma ho trovato grosse difficoltà nel realizzare il layout che avevo in mente.

    In pratica voglio due colonne, quella interna con il testo dei capitoli e quella esterna con tabelle, immagini ed esempi:
    `___________________ ___________________ ___________________ ___________________
    | | ————– | | ————– | |
    | | ————– | | ————– | |
    | img | ————– | | ————– | |
    | | ————– | | ————– | testo |
    | | ————– | | ————– | |
    | | ————– | | ————– | |
    | tabella | ————– | | ————– | |
    | | ————– | | ————– | |
    | | ————– | | ————– | |
    | | ————– | | ————– | |
    | | ————– | | ————– | img |
    | | ————– | | ————– | |
    ___________________ ___________________ ___________________ ___________________`

    Dopo diverse ricerche e svariate prove ho optato per l’utilizzo delle note a margine.

    ora ho due domande:
    1) E’ la scelta giusta? oppure esiste un metodo migliore?
    2) Perchè le note a margine delle pagine pari non mantengono la spaziatura con la colonna del testo?

    Grazie, Giorgio

    Allego il codice di esempio:
    `\documentclass[7pt,a4paper,twoside,openright]{book}

    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{lmodern}
    \usepackage[italian]{babel}
    \usepackage{amsmath,amsfonts,amssymb,amsthm}
    \usepackage{fancyhdr}
    \usepackage{makeidx}
    \usepackage{graphicx}
    \usepackage{verbatim}
    \usepackage{marginfix}
    \usepackage{booktabs}
    \usepackage{nonfloat}
    \usepackage[font=footnotesize]{caption}
    \usepackage{xcolor}
    \usepackage{atbegshi,picture}

    % ————————————————————–

    \newcommand{\notaSeparatore}{\vspace{20pt}}
    \newcommand{\notaEliminaSeparatore}{\vspace*{-20pt}}
    \newcommand{\notaTestoSize}{\footnotesize{}}
    \newcommand{\notaTitolo}[1]{\normalsize{}\textbf{#1}}

    \newcommand{\notaEsempio}[2]{\marginpar{\notaSeparatore{}\colorbox{gray!40}{\vbox{\notaTitolo{#1}\newline{}\notaTestoSize{}#2{\tiny\newline{}{\centering(Questo riquadro contiene informazioni di esempio)}}}}}}

    % ————————————————————–

    \setlength{\textwidth}{8cm}

    \setlength{\textheight}{19cm}

    \setlength{\footskip}{3cm}

    \setlength{\evensidemargin}{8cm}
    \setlength{\marginparwidth}{7cm}

    % ————————————————————–

    \title{“Esempio layout”}
    \author{Hiperblade}

    \begin{document}

    \cleardoublepage

    \pagestyle{fancy}
    \fancyhead[LE,RO]{\bfseries\thepage}

    \mainmatter

    % inclusione dei capitoli
    \chapter{“Prova”}
    \notaEsempio{Esempio 1}{Testo dell'esempio}
    Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla.
    \notaEsempio{Esempio 2}{Testo del secondo esempio}
    Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla.

    \backmatter

    % chiusura del documento

    \end{document}`

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #62289
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Certo, se usi un font più piccolo (fino a \tiny) l’interlinea diventa più piccola; se lasciassi la stessa interlinea il tessto delel note diventerbbe quasi ileggibile. Se vuoi mantenere lo stesso avanzamento di riga, non cambiare corpo al font.

        Poi rivedi accuratamente il layout delle pagine pari e dispari; così come hai impostato tu, la pagina dispari viene spostata verso il margine esterno; per un documento di classe book, questo non va assolutamente bene.

        Ricordati inoltre che le note marginali o stanno completamente nel margine, oppure vengono spostate nella pagina successiva; questo potrebbe darti dei problemi, ma non c’è nulla da fare, che io sappia, per evitare questo spostamento; la composizione automatica di LaTeX ne viene, quindi, piuttosto compromessa e richiede un mucchio di aggiustamenti a mano, aggiustamenti da eseguire solo alla fine del documento, quando non ci sono più altre correzioni da apportare, altrimenti ad ogni correzione ti tocca riguardare dove sono andate a finire le note marginali (nel file log quando una nota marginale viene spostata viene segnalata la nota e la pagina, ma è una magra consolazione).

        La scelta stilistica che hai fatto è interessante, ma difficile da gestire; credo che lo sarebbe ugualmente con gli impaginatori commerciali e professionali, ma in quelli tutto viene fatto a mano.

        Personalmente io comporrei il testo ad una sola colonna inserendo gli esercizi, esempi, osservazioni, come testi in display, sufficientemente differenziati come impaginazione e con un font di contrasto o almeno di copro leggermente più piccolo; però certamente sarebbe una impaginazione molto più tradizionale; dipende dal tipo di lettori a cui è destinato e dal numero di inserti che prevedi siano presenti al massimo in ogni pagina.

      • #62290
        Up
        0
        Down
        ::


        Grazie per la solerte risposta 😉

        Non capisco dove sbaglio nella definizione del layout; la esplicito qui di seguito:
        `% larghezza della colonna del testo
        \setlength{\textwidth}{8cm}

        % altezza della colonna del testo
        \setlength{\textheight}{19cm}

        % altezza nota a piè pagina (per il momento non mi interessa)
        \setlength{\footskip}{3cm}

        % margine della colonna del testo nelle pagine pari
        \setlength{\evensidemargin}{8cm}

        % larghezza delle note a margine
        \setlength{\marginparwidth}{7cm}`

        Ho guardato lo schema del layout di questo sito e non mi sembra di modificare il margine delle pagine dispari
        `oddsidemargin`

        dove sto sbagliando?

        Poi non capisco perché il parametro:
        `marginparsep`
        che è unico sia per le pagine dispari sia per quelle pari, invece venga azzerato o ignorato nelle pagine pari

        ho provato varie combinazioni, riducendo le dimensioni delle note o variando i margini senza però ottenere il risultato voluto

        poi ho provato a mettere le dimensioni di caratteri delle note tutti su normalsize ma non è cambiato molto: le note continuano ad ogni pagina a posizionarsi sempre più in basso rispetto alla loro definizione, non ne capisco il motivo.

      • #62291
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Guarda questo coddice:`
          % !TEX TS-program = pdflatex
          % !TEX encoding = UTF-8 Unicode

          \documentclass[a4paper]{book}

          \usepackage[T1]{fontenc}
          \usepackage[utf8]{inputenc}
          \usepackage{lmodern}
          \usepackage[italian]{babel}
          \usepackage{amsmath,amssymb,amsthm}
          \usepackage{fancyhdr}
          \usepackage{makeidx}
          \usepackage{graphicx}
          \usepackage{verbatim}
          \usepackage{marginfix}
          \usepackage{booktabs}
          \usepackage{nonfloat}% Pessima scelta!
          \usepackage[font=footnotesize]{caption}
          \usepackage{xcolor}
          \usepackage{atbegshi,picture}

          % ————————————————————–

          \newcommand{\notaSeparatore}{\vspace{\marginaparpush}}
          \newcommand{\notaEliminaSeparatore}{\vspace*{-\marginarpush}}
          \newcommand{\notaTestoSize}{\normalsize}
          \newcommand{\notaTitolo}[1]{\normalsize\textbf{#1}}

          \newcommand{\notaEsempio}[2]{\marginpar{%\notaSeparatore{}
          \colorbox{gray!40!white}{\vbox{\notaTitolo{#1}\newline\notaTestoSize#2{\par
          \centering\tiny(Questo riquadro contiene informazioni di esempio)\par}}}}}

          % ————————————————————–
          \newlength{\fulltextwidth}\fulltextwidth=\textwidth
          \textwidth=6cm
          \marginparsep=10pt
          \marginparwidth=\dimexpr\fulltextwidth-\marginparsep-\textwidth\relax
          \evensidemargin=\dimexpr\evensidemargin+\marginparwidth+
          \marginparsep\relax

          \newlength{\OffsetTestatine}
          \setlength{\OffsetTestatine}{\dimexpr\fulltextwidth-\textwidth\relax}

          \pagestyle{fancy}%
          \fancyheadoffset[LE,RO]{\OffsetTestatine}
          \fancyhf{}
          \fancyhead[LE,RO]{\bfseries\thepage}
          \fancyhead[LO]{\bfseries\rightmark}
          \fancyhead[RE]{\bfseries\leftmark}
          \renewcommand{\headrulewidth}{0.4pt}

          \fancypagestyle{plain}{%
          \headwidth\fulltextwidth
          \fancyhead{}\renewcommand{\headrulewidth}{0pt}}

          \setlength{\textheight}{19cm}

          \setlength{\footskip}{20pt}% 3cm, non ti interessa, d'accordo, ma è una
          % schioppettata; questa è la distanza fra l'ultima riga del testo e la
          % base della prima riga della prima nota.

          % ————————————————————–

          \title{“Esempio layout”}
          \author{Hiperblade}

          \begin{document}

          \mainmatter

          \pagestyle{fancy}

          % inclusione dei capitoli
          \chapter{Prova}
          Questo testo di prova non serve a nulla.
          \notaEsempio{Esempio 1}{Testo dell'esempio}
          Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla.
          \notaEsempio{Esempio 2}{Testo del secondo esempio}
          Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla.
          \notaEsempio{Esempio 3}{Testo del terzo esempio}
          Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla. Questo testo di prova non serve a nulla.

          \backmatter

          % chiusura del documento

          \end{document}
          `

          Poi aggiustati tu le testatine, il loro stile e il loro contenuto.

          È molto difficile modificare e impostare dei valori diversi per la larghezza del testo sottraendo mettendo dei valori “a caso” la cui somma non dà il valore precalcolato dalla classe; se però vuoi usare geometry per descrivere la geometria della pagina può nascondere tutte le difficoltà dietro i comandi di geometry.

        • #62292
          Up
          0
          Down
          ::


          Grazie 1000

          con geometry e il tuo codice il layout va molto meglio

          non mi è chiaro però, perché mi sconsigli il pacchetto NONFLOAT
          lo uso per mettere le caption alle figure e alle tabelle nelle note a margine

          `\newcommand{\notaImmagine}[3]{
          \nota{
          \centering
          \includegraphics{#3}
          \figcaption{#1}
          \label{fig:#2}

          }
          }`

          c’é un modo migliore?

          Poi c’è ancora un problema coi margini, se nel tuo esempio metti:
          `\marginparsep=0pt`
          nelle pagine pari la nota risulta troppo lunga e finisce sotto il testo, mentre nelle pagine dispari pur essendo della stessa lunghezza essa sborda a destra fuori dai margini
          se riduco la sua lunghezza (\marginparwidth) mi ritrovo le pagine dispari a posto ma nelle pagine pari la nota è più corta ma continua a finire sotto il testo
          ora continuo a fare le prove e vediamo se ci cavo qualcosa

          EDIT: il problema è legato all’uso del colorbox
          e visto che in realtà non voglio mettere uno sfondo grigio ma voglio “scurire” l’immagine di sfondo della pagina o mettere una immagine di sfondo al box
          forse non vale la pena perdere del tempo con il colorbox…

          faccio una ricerca sulle trasparenze e sulle immagini di sfondo 😉

        • #62293
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Non mettere mai \marginparsep a zero perché esso rappresenta la distanza orizzontale fra la scatola che contiene la nota e la scatola che contiene il testo; l’aritmetiche che io ho scritto fa sempre in modo tale che la larghezza delle note marginali sia calcolata per differenza fta la \fulltextwidth, la testwidth e il separatore \marginaprsep, quindi non li puoi fissare separatamente..

            Il pacchetto nonfloat non serve solo per le figure marginali, ma anche per le altre figure e tabelle. I pacchetti wrapfig e picinpar sono più adatti a gestire quelle cose e accettano il comando \caption. Loro pensano a inserire direttamente la figura nella colonna delle note marginali, quindi non c’è nemmeno bisogno di definre nulla per quelle figure o tabelle.

            geometry va bene, ma, attenzione, che la sua griglia di composizione non prende mai in considerazione le note marginali e quindi tocca sempre al compositore determinare la larghezza delle note marginali per differenza (in definitiva con i miei comandi 😎 o con comandi simili)

          • #62294
            Up
            0
            Down
            ::


            Si ho capito il meccanismo 😉 ho messo \marginparsep a 0 sono per prova per capire dove e perché si sovrapponeva.

            Mi guarderò wrapfig e picinpar, grazie dell’informazione

            Ora sto sbattendo la testa su un modo alternativo per scurire l’immagine di sfondo della pagina sotto il box…
            Ho pensato di creare un’immagine png semitrasparente e di metterla come sfondo del box (strecciata o ripetuta)

            Ho optato per deformare l’immagine definendo altezza e larghezza, perché non ho trovato informazioni su come ripetere l’immagine come un pattern, dopo diversi tentativi sono arrivato a questo:
            `\newcommand{\notaEsempio}[2]{\marginpar{%
            \vbox{%
            \makebox(0,0)[tl]{\includegraphics[width=\marginparwidth,height=50px{SfondoEsempi.png}}%
            \notaTitolo{#1}\newline\notaTestoSize#2{\par\centering\tiny(Questo riquadro contiene informazioni di esempio)\par}%
            }%
            }}`

            ma ho i seguenti problemi:

            1) non riesco a posizionarla correttamente, verticalmente parte dalla base della prima riga della nota
            2) l’altezza dell’immagine deve variare a seconda del testo e non so come “fillarla” al secondo box (ora l’ho fissata a 50px)

            Non esiste un comando per mettere un’immagine di sfondo ad un box???

          • #62295
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Certo che esiste il comando \colorbox, ma devi impostare \framesep a 0pt altrimenti la scatola contiene 3pt di margine attorno al suo contenuto e questo scompone l’allineamento della prima riga (e di quelle successive).
              Alternativamente usi \colorbox con il margine di default e la rialzi di 3pt con \raisebox.

              Non so se queste cose siano raccontate nell’Arte, ma sono sicuramente raccontate nell’Introduzione; link nella pagina delle Guide qui sopra.

            • #62296
              Up
              0
              Down
              ::


              Non ho trovato nessun riferimento neanche nell’introduzione
              comunque mi accontento del comando \raisebox 😀
              grazie

            • #62297
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Hai ragione \framesep non esiste, mi sono sbagliato citando a memoria; ma \framebox c’è, \colorbox anche, \fcolorbox altrettanto e avresti visto che il separatore si chiama \fboxsep. invece che \framsep.

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

            Go to top