- Questo topic ha 16 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 21 anni, 4 mesi fa da
Nucleo.
-
CreatoreTopic
-
15 Aprile 2005 alle 16:25 #5496::
Ciao a tutti,
ho il seguente problema:
devo fare un’aggiunta ad un articolo, e non vorrei cambiare l’impaginazione. Quindi ho pensato di introdurre una nota a margine visto che non devo aggiungere molto. Ho il seguente problema:
`
marginparwidth=2cm
`
ma ho parole lunghe come: trasporto, isotropo, sorgente. Il latex, ogni tanto va a capo, ma in casi come questo servirebbe che andasse a capo a tutte le righe.
Ho utilizzato una dimensione scriptsize.
Vorrei sapere se c’è un modo per costringerlo ad usare l’intero spazio messo a disposizione andando a capo con le parole, invece di allineare il testo lasciando dei notevoli spazi bianchi (viste le modeste dimensioni)
Spero di essere riuscito a spiegare la mia richiesta
vi ringrazio in anticipo
-
CreatoreTopic
-
AutoreRisposte
-
-
15 Aprile 2005 alle 23:16 #5497
-
16 Aprile 2005 alle 16:24 #5498::
adesso provo.
cmq, per spiegarmi meglio:
vorrei utilizziare tutto lo spazio messo a disposizione dalla nota a margine senza dover andare a capo manualmente:
esempio se ho la parola diffusione che va a capo lasciando mezza riga vuota vorrei evitare di scrivere
`
diffu \\ sione
`
ma far si che sia il latex che formattando il testo evita di andare a capo con l’intera parola ma spezzi le parole in modo da occupare tutto lo spazio messo a disposizione dalla nota a margine.
-
16 Aprile 2005 alle 22:50 #5499
-
17 Aprile 2005 alle 9:12 #5500::
infatti praticamente non va mai a capo, e giustifica il testo. In questo modo però le righe sono mezze vuote e la nota a margine è molto estesa.
il testo che devo inserire è:
basso assorbimento, scattering e sorgente isotropi la teoria della diffusione coincide con quella del trasporto: le sezioni d urto sono indipendenti dall angolo, il termine di streaming non `e presente e non ci sono condizioni al contorno imposte sulle direzioni. L equazione di accelerazione coincide con quella che `e accelerata e quindi l autovalore si annullache è particolarmente lungo. vorrei che andasse a capo spezzando la parola alla fine della nota a margine invece che andare a capo con tutta la parola lasciando mezza riga vuota.
Mettermi a spezzare la parole con il comando \\ non mi sembra il caso.PS il comando per allineare a sinistra non è quello che sto cercando: infatti in questo modo ho le righe ugualmente mezze vuote perchè il latex preferisce andare a capo con la parola intera piuttosto che sillabarla (dif\-fu\-sio\-ne).
Tornando al mio problema, vorrei sapere se c’è un modo per fargli cominciare la nuova riga solo a riempimento della precedente, non mettere l’intera parola nella riga successiva ma le sillabe in eccesso.
grazie
-
17 Aprile 2005 alle 10:36 #5501
-
17 Aprile 2005 alle 18:19 #5502::
Salve a tutti,
riposto un problema nel quale sono inciampato, cercando di dare un’espressione più chiara alla mia domanda:
nel linguaggio comune si dice semplicemente “andare a capo” intendendo il passaggio alla riga successiva, ma ci sono due modi in cui il latex lo fa:
1- cambia riga con l’intera parola che sarebbe in eccesso e giustifica il testo (come fa anche word)
2- mediante sillabazione della parola, proprio come si fa quando si scrive una relazione a mano: si scrive finché c’è posto e poi si va a capoDa quel poco che ho visto, il latex privilegia la possibilità 1; ciò è sicuramente meglio (facilita la lettura) quando la larghezza del testo è quella tipica delle pubblicazioni (molte parole per ogni riga). Ma nel caso in cui per ogni riga ci stiano solo poche parole; le righe risultano mezze vuote con due problemi: uno visivo (essendo il testo mezzo vuoto) e uno di estensione notevole in altezza (molte righe tutte mezze vuote).
Sono incappato in questo problema perché devo aggiungere una nota a margine ad una relazione universitaria.Quindi vorrei sapere se c’è un modo per costringere il latex ad andare a capo mediante sillabazione delle parole, utilizzando quindi tutto il poco spazio che ho a disposizione.
L’unica soluzione che mi viene in mente sarebbe quella di compilare, vedere il pdf e utilizzare il comando \\ tra le sillabe delle parole per cambiare riga. Ma questa soluzione non mi sembra certo la migliore. Una mezza soluzione è quella di ridurre le dimensioni del testo, ma è una mezza soluzione.
Grazie a tutti
-
17 Aprile 2005 alle 19:38 #5503::
riposto un problema nel quale sono inciampato, cercando di dare un’espressione più chiara alla mia domanda:
nel linguaggio comune si dice semplicemente “andare a capo” intendendo il passaggio alla riga successiva, ma ci sono due modi in cui il latex lo fa:
1- cambia riga con l’intera parola che sarebbe in eccesso e giustifica il testo (come fa anche word)
2- mediante sillabazione della parola, proprio come si fa quando si scrive una relazione a mano: si scrive finché c’è posto e poi si va a capoTeX lo fa leggermente meglio di Word® 😮
Da quel poco che ho visto, il latex privilegia la possibilità 1; ciò è sicuramente meglio (facilita la lettura) quando la larghezza del testo è quella tipica delle pubblicazioni (molte parole per ogni riga). Ma nel caso in cui per ogni riga ci stiano solo poche parole; le righe risultano mezze vuote con due problemi: uno visivo (essendo il testo mezzo vuoto) e uno di estensione notevole in altezza (molte righe tutte mezze vuote).
Sono incappato in questo problema perché devo aggiungere una nota a margine ad una relazione universitaria.
Quindi vorrei sapere se c’è un modo per costringere il latex ad andare a capo mediante sillabazione delle parole, utilizzando quindi tutto il poco spazio che ho a disposizione.
L’unica soluzione che mi viene in mente sarebbe quella di compilare, vedere il pdf e utilizzare il comando \\ tra le sillabe delle parole per cambiare riga. Ma questa soluzione non mi sembra certo la migliore. Una mezza soluzione è quella di ridurre le dimensioni del testo, ma è una mezza soluzione.
Grazie a tuttiOvviamente non si va a capo manualmente, ci mancherebbe. La sillabazione, per motivi TeXnici è inibita per la prima parola. Un \hspace{0pt}, in casi problematici, dovrebbe risolvere. Che LaTeX non provi la sillabazione nelle note a margine mi suona strano. In ogni caso, scrivere in colonne molto strette dà sempre problemi.
Ciao
Enrico
-
18 Aprile 2005 alle 8:53 #5504::
Ciao
Appena inizia la Nota a margine, anteponi la massima tolleranza possibile per la badness, che sarebbe il parametro che regola l’andata a capo e che di default è pari a 200. Nel *.log trovi, praticamente per ogni riga, il messaggio Underfull \hbox (badness 4068) … ossia, essendo superiore a 200, dà un po’ di problemi.
Scrivi cioè:
`
\marginpar{\tolerance=10000 Basso assorbimento…si annulla. \tolerance=200} %torna alla badness predefinita.
`Noterai, nella compilazione, meno Underfull \hbox. Questo è il massimo che si può ottenere per le andate a capo, essendo 10000=$\infty$.
Fonte: capitolo 6 del The TeXbook.
Ciao
Roberto
-
18 Aprile 2005 alle 12:07 #5505::
Appena inizia la Nota a margine, anteponi la massima tolleranza possibile per la badness, che sarebbe il parametro che regola l’andata a capo e che di default è pari a 200. Nel *.log trovi, praticamente per ogni riga, il messaggio Underfull \hbox (badness 4068) … ossia, essendo superiore a 200, dà un po’ di problemi.
Scrivi cioè:`\marginpar{\tolerance=10000 Basso assorbimento…si annulla. \tolerance=200} %torna alla badness predefinita.`Noterai, nella compilazione, meno Underfull \hbox. Questo è il massimo che si può ottenere per le andate a capo, essendo 10000=$\infty$.
Fonte: capitolo 6 del The TeXbook.Così però aggravi il problema delle righe semivuote. Possiamo provare un misto delle varie tecniche:`\newcommand{\mymarginpar}[2][5000]{\marginpar{\footnotesize
\edef\oldtolerance{\the\tolerance}%
\tolerance=#1\relax
\hskip0pt
#2\par\tolerance=\oldtolerance}}`In realtà il cambio di \tolerance dovrebbe essere già protetto dal fatto che il contenuto di \marginpar è composto in una \vbox, ma rimettere quella di partenza non è un delitto (e mostra la conoscenza dell’uso di \edef :D). Noterai l’argomento opzionale per stabilire, se opportuno, una \tolerance diversa:`\mymarginpar{Ciao} %con \tolerance=5000
\mymarginpar[10000]{Cocco Bill} % con \tolerance=10000`Ciao
Enrico
-
18 Aprile 2005 alle 13:28 #5506::
Oddio, perché io non ci sto capendo
più niente?? Allora, tra i miei prova
e riprova ho notato che se inserisco
l’allineamento a sx NON va mai a ca-
po (indipendentemente dai \tolerance)
mentre se non gli dico nulla (e quindi
il LaTeX giustifica) c’è qualche a ca-
po, ma la resa non è molto diversa con
il comando \tolerance o senza.
Inoltre se utilizzo l’allineamento a sini-
stra la nota a margine è meno estesa ver-
ticalmente, come se ci fosse un interlinea
differente rispetto al testo giustificato, è
possibile?
Ho provato \hspace{0pt} ma , da quel che
ho visto, inserisce solo un rientro nella pri-
ma riga della nota a margine.Per risponde-
re a Enrico, volevo solo dirgli che non è
che non vada a capo nelle note a margine,
ma ci va come nel resto del documento
cioè poco. Io vorrei che sillabasse le paro-
le praticamente in ogni riga in modo da ave-
re una colonna piena di testo.
Adesso provo anche questa nuova stringa di comandi.PS provo con questa risposta di simulare l’effetto che vorrei ottenere, non so se ci riesco… ovviamente poi sarebbe necessario che la colonna venisse giustificata …
Cmq, grazie a tutti per l’interesse 🙂
-
18 Aprile 2005 alle 15:13 #5507::
A me, su 21 righe di testo effettive, con \mymarginpar[10000]{testo}, va a capo su 12 righe. Poi è perfettamente giustificato a parte uno spazio un po’ eccessivo alla prima linea tra Basso e assorbi\-mento.Non capisco il problema. Io scrivo:
`
\documentclass{article}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}\newcommand{\mymarginpar}[2][5000]{\marginpar{\footnotesize
\edef\oldtolerance{\the\tolerance}%
\tolerance=#1\relax
\hskip0pt
#2\par\tolerance=\oldtolerance}}\begin{document}
\mymarginpar[10000]{Basso assorbimento, scattering e sorgente isotropi la teoria
della diffusione coincide con quella del trasporto: le sezioni d'urto sono indipendenti
dall'angolo, il termine di streaming non è presente e non ci sono condizioni al contorno
imposte sulle direzioni. L'equazione di accelerazione coincide con quella che è
accelerata e quindi l'autovalore si annulla.}\end{document}
`Inoltre è vero che le \vbox agiscono su \baseline, \lineskip e un \lineskiplimit.
-
18 Aprile 2005 alle 15:37 #5508::
Oddio, perché io non ci sto capendo
più niente?? Allora, tra i miei prova
e riprova ho notato che se inserisco
l’allineamento a sx NON va mai a ca-
po (indipendentemente dai \tolerance)
mentre se non gli dico nulla (e quindi
il LaTeX giustifica) c’è qualche a ca-
po, ma la resa non è molto diversa con
il comando \tolerance o senza.
Inoltre se utilizzo l’allineamento a sini-
stra la nota a margine è meno estesa ver-
ticalmente, come se ci fosse un interlinea
differente rispetto al testo giustificato, è
possibile?
Ho provato \hspace{0pt} ma , da quel che
ho visto, inserisce solo un rientro nella pri-
ma riga della nota a margine.Per risponde-
re a Enrico, volevo solo dirgli che non è
che non vada a capo nelle note a margine,
ma ci va come nel resto del documento
cioè poco. Io vorrei che sillabasse le paro-
le praticamente in ogni riga in modo da ave-
re una colonna piena di testo.
Adesso provo anche questa nuova stringa di comandi.Se usi \raggedright, è ovvio che la sillabazione sia meno frequente. È normale. Non usare \raggedright. Per il rientro, è vero; dipende dalle macro di LaTeX; usa \hskip0pt e non l’avrai.
Ciao
Enrico
-
19 Aprile 2005 alle 12:31 #5509
-
19 Aprile 2005 alle 17:31 #5510
-
20 Aprile 2005 alle 0:03 #5511
-
22 Aprile 2005 alle 16:18 #5512::
Allora il problema è:
gestire il modo in cui il \LaTeX sillaba le parole quando va a capo (brevemente: ci sono due modi in cui il LaTeX cambia riga: giustificando il testo oppure sillabando la parola).
Nelle note a margine o in ogni caso nel quale si scriva in una colonna stretta può essere utile obbligare il LaTeX a sillabare di più di quanto non faccia usualmente. Ciò (se non ho capito male) è governato da un parametro di “badness” tramite il comando ` \tolerance=n ` dove n è un numero compreso tra 10000 (che è il massimo) e 200 che è il default.
Si può quindi utilizzare il comando ` \marginpar{\tolerance=10000 Basso assorbimento…si annulla. \tolerance=200} %torna alla badness predefinita.
` quando sia necessario. Se si fanno più note a margine (o testi allineati in colonne sottili) è possibile e consigliabile definire un ambiente apposta nel seguente modo:
`
\newcommand{\mymarginpar}[2][5000]{\marginpar{\footnotesize
\edef\oldtolerance{\the\tolerance}% \tolerance serve per regolare l'andata a capo il valore max è 10000
\tolerance=#1\relax
\hskip0pt
#2\par\tolerance=\oldtolerance}}
`
che verrà poi richiamato all’occorrenza specificando il parametro di tolerance voluto:
`
\mymarginpar[10000]{testo}
`Si vuole notare che per motivi estetici si è ridotta la dimensione del testo nella colonna sottile di interesse.
Spero che così vada bene.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.