- Questo topic ha 10 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 17 anni, 11 mesi fa da
gooliver.
-
CreatoreTopic
-
12 Ottobre 2008 alle 9:55 #27614
-
CreatoreTopic
-
AutoreRisposte
-
-
12 Ottobre 2008 alle 12:23 #27615::
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
-
12 Ottobre 2008 alle 14:11 #27616::
Come scrivi quel titolo?
Ciao
EnricoNon 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{…}
…
`
-
12 Ottobre 2008 alle 14:15 #27617::
Come scrivi quel titolo?
Ciao
EnricoNon 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
-
12 Ottobre 2008 alle 14:43 #27618::
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.
-
12 Ottobre 2008 alle 14:45 #27619::
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
-
12 Ottobre 2008 alle 15:01 #27620::
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?
-
12 Ottobre 2008 alle 15:51 #27621::
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
-
13 Ottobre 2008 alle 15:00 #27622::
…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.
-
13 Ottobre 2008 alle 16:46 #27623::
…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
-
13 Ottobre 2008 alle 21:36 #27624::
…
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!
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.