[RISOLTO] Impedire titolo e corpo su colonne diverse

  • Creatore
    Topic
  • #27614
    Up
    0
    Down
    ::


    Come si impedisce a TeX di spezzare* un paragrafo mettendo su due colonne diverse un titolo e la prima riga del paragrafo che lo segue?

    * Ricordo che in Word esiste qualcosa del tipo Mantenere insieme le righe isolate in una delle tante finestre di formattazione dei paragrafi.

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #27615
      Up
      0
      Down
      ::

      Come si impedisce a TeX di spezzare* un paragrafo mettendo su due colonne diverse un titolo e la prima riga del paragrafo che lo segue?

      * Ricordo che in Word esiste qualcosa del tipo Mantenere insieme le righe isolate in una delle tante finestre di formattazione dei paragrafi.

      Come scrivi quel titolo?

      Ciao
      Enrico

    • #27616
      Up
      0
      Down
      ::

      Come scrivi quel titolo?
      Ciao
      Enrico

      Non utilizzo un comando di sezionamento (section, subsection …) ma uno
      stile definito (mytitle) perchè mi interessa soltanto la formattazione del
      titolo e non la sua aggiunta in TOC. Il documento è ottenuto
      in maniera automatica tramite una catena di script PERL che esaminano
      molti file di testo generalmente strutturati allo stesso modo
      ( titolo/corpo titolo/corpo…) per ricomporli in un unico file da
      dare in pasto a pdflatex.

      I comandi di sezionamento predefiniti mantengono assieme
      titolo e corpo ma nel mio caso i vari script operano in modo da
      dare un titolo in base al contesto… qualcosa del tipo

      `
      stringa-tipo-A -> \mytitleA{…}
      stringa-tipo-B -> \mytitleB{…}

      `

    • #27617
      Up
      0
      Down
      ::

      Come scrivi quel titolo?
      Ciao
      Enrico

      Non utilizzo un comando di sezionamento (section, subsection …) ma uno
      stile definito (mytitle) perchè mi interessa soltanto la formattazione del
      titolo e non la sua aggiunta in TOC. Il documento è ottenuto
      in maniera automatica tramite una catena di script PERL che esaminano
      molti file di testo generalmente strutturati allo stesso modo
      ( titolo/corpo titolo/corpo…) per ricomporli in un unico file da
      dare in pasto a pdflatex.

      I comandi di sezionamento predefiniti mantengono assieme
      titolo e corpo ma nel mio caso i vari script operano in modo da
      dare un titolo in base al contesto… qualcosa del tipo

      `
      stringa-tipo-A -> \mytitleA{…}
      stringa-tipo-B -> \mytitleB{…}

      `

      Puoi benissimo usare i comandi di sezionamento, basta scegliere bene il valore dei contatori tocdepth e secnumdepth. Ma senza esempi veri non si può dire molto di più.

      Ciao
      Enrico

    • #27618
      Up
      0
      Down
      ::

      Puoi benissimo usare i comandi di sezionamento, basta scegliere bene il valore dei contatori tocdepth e secnumdepth. Ma senza esempi veri non si può dire molto di più.

      Giusto… esempio *vero*

      `
      […]
      \mytitleA{Questo titolo richiede lo stile A}
      % -la riga sopra deve stare insieme alla riga sotto<--- Questo è il corpo del titolo A. [...] \mytitleZ{Questo titolo richiede lo stile Z} % -la riga sopra deve stare insieme alla riga sotto<--- Questo è il corpo del titolo Z. [...] ` Se uso i sezionamenti predefiniti con qualcosa del tipo `\subsection{\mytitleA{Titolo A}}` mi ritrovo in conflitto la formattazione dei sezionamenti predefiniti
      con quella che voglio imporre automaticamente e volta per volta.

    • #27619
      Up
      0
      Down
      ::

      Puoi benissimo usare i comandi di sezionamento, basta scegliere bene il valore dei contatori tocdepth e secnumdepth. Ma senza esempi veri non si può dire molto di più.

      Giusto… esempio *vero*

      `
      […]
      \mytitleA{Questo titolo richiede lo stile A}
      % -la riga sopra deve stare insieme alla riga sotto<--- Questo è il corpo del titolo A. [...] \mytitleZ{Questo titolo richiede lo stile Z} % -la riga sopra deve stare insieme alla riga sotto<--- Questo è il corpo del titolo Z. [...] ` Se uso i sezionamenti predefiniti con qualcosa del tipo `\subsection{\mytitleA{Titolo A}}` mi ritrovo in conflitto la formattazione dei sezionamenti predefiniti
      con quella che voglio imporre automaticamente e volta per volta.

      Temo che non sia un esempio vero. Ho capito benissimo il problema, ma come pensi si possano dare consigli senza sapere che cosa vorresti ottenere?

      Ciao
      Enrico

    • #27620
      Up
      0
      Down
      ::


      Quello che voglio ottenere è semplicemente che la riga con il titolo
      e la prima riga del corpo del paragrafo che lo segue stiano insieme
      sulla stessa colonna.

      La domanda può, volendo, essere parafrasata:

      Che comandi/o mette TeX nella definizione di (ad es.) \subsection{TitoloA}
      in modo che TitoloA non stia alla fine di una colonna e il paragrafo successivo
      in un’altra colonna?

    • #27621
      Up
      0
      Down
      ::

      Quello che voglio ottenere è semplicemente che la riga con il titolo
      e la prima riga del corpo del paragrafo che lo segue stiano insieme
      sulla stessa colonna.

      La domanda può, volendo, essere parafrasata:

      Che comandi/o mette TeX nella definizione di (ad es.) \subsection{TitoloA}
      in modo che TitoloA non stia alla fine di una colonna e il paragrafo successivo
      in un’altra colonna?

      \@afterheading

      Naturalmente la definizione in cui lo usi deve essere circondata da \makeatletter e \makeatother.

      Ciao
      Enrico

    • #27622
      Up
      0
      Down
      ::


      …per adesso credo di avere risolto così.

      Ho definito:

      `
      \newcommand{\mytitleX}[1]{\par\bigskip\myemphX{#1}%
      \par\mdskip\nobreak}
      `

      dove X viene progressivamente sostituita da uno script nel preambolo
      (un template a partire dal quale, in base al contesto
      elaborato, lo script aggiunge le definizioni necessarie)

      Per adesso funziona allo scopo… in seguito mi documenterò sull’argomento.

      ps. Leggiucchiando qua e là (soprattutto The TeXBook) ho capito che::
      \nobreak imposta un valore di \penalty
      sufficientemente alto così da permettere riempimenti
      di pagina/colonna non perfetti.

    • #27623
      Up
      0
      Down
      ::

      …per adesso credo di avere risolto così.

      Ho definito:

      `
      \newcommand{\mytitleX}[1]{\par\bigskip\myemphX{#1}%
      \par\mdskip\nobreak}
      `

      dove X viene progressivamente sostituita da uno script nel preambolo
      (un template a partire dal quale, in base al contesto
      elaborato, lo script aggiunge le definizioni necessarie)

      Per adesso funziona allo scopo… in seguito mi documenterò sull’argomento.

      ps. Leggiucchiando qua e là (soprattutto The TeXBook) ho capito che::
      \nobreak imposta un valore di \penalty
      sufficientemente alto così da permettere riempimenti
      di pagina/colonna non perfetti.

      Non proprio: il \nobreak deve andare prima della “colla” che TeX vede come un buon posto dove spezzare la pagina.

      Ma c’è il problema che \medskip in LaTeX fa qualcosa di troppo; meglio
      `\par\nobreak\vskip\medskipamount`
      Esempio:
      `\documentclass[a4paper,twocolumn]{article}
      \usepackage{lipsum}

      \newcommand{\mytitleX}[1]{\par\bigskip\emph{#1}%
      %\par\medskip\nobreak}
      \par\nobreak\vskip\medskipamount}

      \begin{document}
      \vspace*{17\baselineskip} % per andare giù sulla pagina
      \lipsum[1-2]

      \mytitleX{Sezione}

      \lipsum[1]

      \end{document}`
      Se provi a scambiare il commento sulle due righe, avrai esattamente un caso in cui il titoletto se ne sta dalla parte sbagliata.

      Ciao
      Enrico

    • #27624
      Up
      0
      Down
      ::

      Se provi a scambiare il commento sulle due righe, avrai esattamente un caso in cui il titoletto se ne sta dalla parte sbagliata.

      E’ vero! Ero stato ingannato dal “successo” del \nobreak
      *dopo* \medskip nelle prove che avevo fatto… evidentemente
      cantavo vittoria troppo presto.

      Ti ringrazio per la pazienza e la precisione dei tuoi commenti…
      Ciao e… al prossimo inghippo!

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

Go to top