Problemi di cambio pagina

  • Creatore
    Topic
  • #5982
    Up
    0
    Down
    ::


    Un saluto al forum.
    Mi trovo di fronte alla necessità di spiegare a LaTeX di non separare due righe tramite interruzione di pagina:

    `\begin{itemize}
    \item \texttt{GUIT Forum}
    \begin{enumerate}
    \item Fabusdra;
    \item E.V.;
    \item Gus.
    \end{enumerate}
    .
    .
    .
    `

    Voglio che GUIT Forum e Fabusdra si trovino in una stessa pagina.
    Se uso \nopagebreak[…] dopo `\item \texttt{GUIT Forum}` non ottengo alcun risultato.
    Se uso {\samepage testo} mi ritrovo a dover tenere insieme nella stessa pagina anche E.V e Gus, inaccettabile se l’elenco diventa troppo lungo.

    Sbaglio ad usare i comandi o devo usarne un altro?
    grazie a tutti,

    luca

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


      Per prima cosa: queste correzioni si fanno solo a documento terminato.

      Seconda cosa: userei un approccio un po’ artigianale mandando a nuova pagina l’intero elenco puntato, aumentando lo spazio stretchabile prima dell’itemize.

      Ciao.

    • #5984
      Up
      0
      Down
      ::


      Lo chiedevo appositamente per evitare di dover, una volta terminato il documento, andare a mettere le pezze qua e là in modo non propriamente rigoroso.

      Cercavo qualcosa di robusto, diciamo, in Stile LaTeX, così da poter non pensarci più.

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

        Lo chiedevo appositamente per evitare di dover, una volta terminato il documento, andare a mettere le pezze qua e là in modo non propriamente rigoroso.

        Cercavo qualcosa di robusto, diciamo, in Stile LaTeX, così da poter non pensarci più.

        Una soluzione potrebbe essere quella di usare l’ambiente table: l’uso di oggetti flottanti, posizionati prevalentemente con top e chiamati usando \vref (pacchetto varioref) ti evita appunto di preoccuparti di questioni “stile Word” del tipo “oddio che cosa faccio se questo blocco di testo viene spezzato a metà pagina”.

        Tutt’al più, dovrai modificare (leggermente!) il modo con cui introduci il tuo elenco… ma una volta scelto questo approccio puoi evitare di preoccuparti, una volta per tutte, di questioni di layout.

        Lorenzo

      • #5986
        Up
        0
        Down
        ::


        Mi darebbe, lo stesso problema di \samepage:
        nn credo di poter ottenere, lasciando stare i 25 errori che giustamente la compilazione mi darebbe, una struttura del genere:

        `\begin{itemize}
        *********** \begin{table}*************
        \item \texttt{GUIT Forum}
        \begin{enumerate}
        \item Fabusdra;
        ***********\end{table}************
        \item E.V.;
        \item Gus.
        \end{enumerate}
        .
        .
        .
        `

        ossia: nn posso interrompere l’elenco.
        Forse ho frainteso il tuo consiglio…

      • #5987
        Up
        0
        Down
        ::


        ciao,
        usare direttamente table per far flottare l’elenco nn e’ una buona idea, semmai bisogna creare una nuova classe di oggetti flottanti. pensa per esempio cosa succede se metti una caption.
        il problema delle interruzioni di pagina e’ abbastanza grosso. in genere latex fa del suo meglio. se nn li tiene insieme e’ perche’ proprio nn ci stanno, e sborderebbe nel margine inferiore. c’e’ un comando che permette di avere pagine di altezza diversa, ma in generale le case editrici preferiscono che le pagine abbiano tutte la stessa altezza.
        di fatto, i due primi \item nella pagina nn ci stanno, quindi da qualche parte devi sforacchiare, perdeto la qualita’ del layout. nn ci si puo’ fare nientre, se dentro nn c’entra tutto o lo fai uscire un po’ dalla scatola o passi alla pagina dopo lasciando spazio bianco.
        il consiglio che mi sento di darti e’ quindi questo: nn ti preoccupare assolutamente del layout fino all’ultimo momento, ma davvero l’ultimissimo. lascia tutto agli automatismi di latex e vedrai che le pezze da aggiustare saranno pochissime. a questo punto modifica leggermente il testo nella pgina, aggiungendo una riga o spezzando un paragrafo tutta la lista slittera sulla pagina successiva, avrai consertvato il layout senza pagine che cambiano di altezza e schifezze che sbordano in basso.
        ciao
        f

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

          nn posso interrompere l’elenco.
          Forse ho frainteso il tuo consiglio

          Provo a spiegarmi meglio. Da quello che capisco, il tuo problema è creare un elenco le cui voci non vengano “spezzate” passando da una pagina all’altra. Ammettendo che tu abbia buoni motivi per desiderare un comportamento di questo genere, semplicemente gli ambienti itemize ed enumerate non hanno questa proprietà: quando LaTeX ne ha bisogno, cambia pagina. Il mio suggerimento è di valutare la possibilità di cambiare prospettiva: potresti rendere il tuo elenco un oggetto flottante, per esempio così:

          `
          \begin{table}[th]
          \begin{minipage}{\textwidth}
          \begin{itemize}
          \item \texttt{GUIT Forum}
          \begin{enumerate}
          \item Fabusdra;
          \item E.V.;
          \item Gus.
          \end{enumerate}
          \end{itemize}
          \end{minipage}
          \caption{Questo è il mio elenco}\label{tab:guit}
          \end{table}
          `

          In questo modo LaTeX non spezza l’elenco e si occupa, da solo, di piazzarlo al meglio: non dovrai più preoccuparti di controllare il layout ed aggiungere eventualmente delle pezze ad ogni modifica del tuo documento.

          Lorenzo

        • #5989
          Up
          0
          Down
          ::


          Perdono:

          nn posso interrompere l’elenco.

          va inteso come

          Latex non mi fa interrompere l’elenco in quel modo

          In ogni caso, la mia sola richiesta era evitare di avere il “titoletto” GUIT Forum in fondo ad una pagina senza nulla sotto, accettando:
          – di mandarlo alla pagina dopo, lasciando un po’ di bianco;
          – di dividere i tre \item successivi su due pagine.

          Ad ogni modo sono conscio che all’ultimo posso risolvere il problema tramite aggiunta di spazi verticali accuratamente distribuiti.

          Solamente mi sapettavo che ci fosse un comando opposto a \pagebreak ,ma con la stessa autorità (cfr. \nopagebreak)

          Grazie e buon w.e.
          luca

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


            Riprendo il 3D per copiare/incollare quanto riportato negli appunti di Fleck (pag. 68-69), che sto leggendo in questi giorni:

            A ragione della loro lunghezza alcune liste si trovano spesso spezzate su due pagine. Questo, a volte, può essere fuorviante nella lettura quando si ha necessità di contenerle su una stessa pagina. Si può risolvere il problema fornendo il comando \nopagebreak oppure in questo modo[…]: innanzitutto nel preambolo vanno fornite le seguenti istruzioni

            `\makeatleter
            \newcommand*{\spl@}[1]{%
            \[\begin{split}#1\end{split}\]%
            } \newenvironment{spl}{%
            \collect@body\spl@
            } {} \makeatother`

            Il testo va digitato in uno di questi possibili modi:

            `
            \[ \begin{split}\\
            a&=b \\
            b&=c \\
            c&=d
            \end{split} \]

            \begin{spl}
            z&=y \\
            h&=x \\
            l&=w
            \end{spl}
            `

            Ralata refero: purtroppo in questo momento non ho sottomano un compilatore LaTeX per provare il codice.

            Lorenzo

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

        Go to top