Forzare una riga a restare nella pagina precedente

  • Creatore
    Topic
  • #102655
    Up
    0
    Down
    ::


    Salve.

    Nel testo che sto scrivendo una linea che fa parte di un gruppo viene mandata a capo quando nella pagina c’è ancora spazio.

    Dopo una ricerca ho fatto diversi tentativi, alcuni di quali sono visibili come commento.

    “esercizio” dovrebbe essere definito nel pacchetto: “matc3”, nelle intestazioni ho:

    `
    \documentclass[10pt,a4paper,openright]{matc3mem}
    `

    `
    \usepackage{matc3}
    `

    L’ultimo paragrafo della pagina è il seguente:

    `
    \begin{esercizio}
    \label{ese:2.08}
    Senza usare la calcolatrice determina il valore delle seguenti radici.
    \begin{multicols}{3}
    \begin{enumeratea}
    \item $\sqrt[4]{0,0001}$
    \item $\sqrt[4]{81}$
    \item $\sqrt[5]{\frac{32}{243}}$
    \item $\sqrt[6]{64}$
    \item $\sqrt[4]{-4}$
    \item $\sqrt[5]{34-\sqrt[4]{14+\sqrt{2+\sqrt[3]8}}}$
    \item $\sqrt[10]0$
    \item $\sqrt[4]{0,0081}$
    \item $\sqrt{20+\sqrt[3]{121+\sqrt[4]{256}}}$
    \end{enumeratea}
    \end{multicols}
    % \looseness=-1
    % \nopagebreak[4]
    % \enlargethispage*{2 \baselineskip}
    % \enlargethispage*{20 \baselineskip}
    $[2 \quad 3 \quad nan \quad 0,03 \quad \frac{2}{3} \quad 2 \quad 0 \quad 0,1 \quad 5]$
    \end{esercizio}

    `

    Qualcuno saprebbe dirmi come posso fare a mantenere le risposte nella stessa pagina dell’esercizio?

    Grazie per l’attenzione.

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #102656
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Dipende da che cosa vuoi fare: se puoi spezzare la pagina fra le domande, oppure se non vuoi spezzare niente di ciò che si trova fra [tt]\begin{esercizio}[/tt] e [tt]\end{esercizio}[/tt].

        Nel secondo caso basta richiudere tutto l’esercizio dentro una minipage.
        Nel primo caso bisogna ridefinire tutto l’ambiente esercizio nei minimi dettagli, comprese le due colonne delle domande. Cosa fattibile ma non semplice. Le penalità, perché svolgano il loro lavoro, devono stare prima degli spazi verticali e siccome questi sono già dentro esercizio e dentro multicols, bisognerebbe intervenire dentro le macro di apertura e di chiusura di quegli ambienti. Fattibile, ma difficile.

        Se mai riescono a fare qualcosa, \looseness e \enlagethispage devono stare fuori, prima di \begin{esercizio}

        \looseness lavora bene su un capoverso lungo, ma il tuo esercizio non contiene capoversi lunghi e la maggior parte dello spaio verticale è usato da multicols che non produce un capoverso ma una scatola.

        \enlagethispage con o senza asterischi a me non ha mai dato problemi, ma non ho mai usato costrutti come i tuoi.

      • #102657
        Up
        0
        Down
        ::

        OldClaudio” post=102534Dipende da che cosa vuoi fare: se puoi spezzare la pagina fra le domande, oppure se non vuoi spezzare niente di ciò che si trova fra [tt]\begin{esercizio}[/tt] e [tt]\end{esercizio}[/tt].

        […]
        Se mai riescono a fare qualcosa, \looseness e \enlagethispage devono stare fuori, prima di \begin{esercizio}
        […]

        Ho provato a mettere \looseness=1 prima di \begin{esercizio} ma non è cambiato niente.

        Comunque Grazie.

      • #102658
        Up
        0
        Down
        ::

        OldClaudio” post=102534Dipende da che cosa vuoi fare: se puoi spezzare la pagina fra le domande, oppure se non vuoi spezzare niente di ciò che si trova fra [tt]\begin{esercizio}[/tt] e [tt]\end{esercizio}[/tt].

        .

        Gli esercizi sono composti da:
        – una consegna (tipicamente una o al massimo due righe),
        – un elenco,
        – le soluzioni.

        È accettabile che l’elenco venga spezzato, mi sembra brutto che ci sia la consegna su una pagina e il resto nella nuova o che ci sia l’elenco su una pagina e le risposte su una nuova.

        Mentre LaTeX preferisce proprio le soluzioni per me non accettabili.

        Negli elaboratori di testo è possibile dire tieni questa riga unita alle seguenti, è possibile fare una cosa simile in LaTeX?

        Grazie.

      • #102659
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          C’è \nopagebreak, ma dubito che abbia qualche effetto utile se non si usano anche altri accorgimenti. Ci sarebbe anche \vadjust con il quale puoi davvero meter una grossa penalità, eventualmente 10000 (che per TeX vuol dire infinito) fra la penultima e l’ultima riga dove non vuoi spezzare. \vadjust è descritto sia nel TeXbook sia in articolo che ho scritto sull’ultima ArsTeXnica che è appena stata distribuita ai soci del Guit (sarà disponibile per il download libero fra un anno ai non soci).

        • #102660
          Up
          0
          Down
          ::


          Oltre a [tt]\vadjust[/tt] (eventualmente [tt]\vadjust pre[/tt], con pdfTeX), ci sono [tt]\clubpenalty[/tt], [tt]\widowpenalty[/tt] (e le corrispondenti estensioni e-TeX, [tt]\clubpenalties[/tt] e [tt]\widowpenalties[/tt]); e poi c’è [tt]\interlinepenalty[/tt] (che ha pure una controparte in e-TeX, il vettore [tt]\interlinepenalties[/tt]). Per esempio, con`Testo di un capoverso bla bla bla … {\interlinepenalty = 10000 \par}`si compone un capoverso che non può avere interruzioni di pagina al suo interno (se non intervengono altri comandi o ambienti).

          Ciao.


          Gustavo

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

      Go to top