- Questo topic ha 15 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 11 anni, 5 mesi fa da
letteracdp.
-
CreatoreTopic
-
1 Aprile 2015 alle 12:16 #101063::
Buongiorno a tutti, sono nuovo nel mondo LaTeX.Vorrei sapere se con il pacchetto wrapfig è possibile inserire un’immagine al centro del foglio e avere del testo su tutti e 4 i lati della figura. Inoltre mi piacerebbe che il testo intorno alla figura non avesse un’ identazione quadrata ma chè seguisse la forma dela figura. È possibile fare tutto ciò? Spero di essere stato abbastanza chiaro.
Grazie e Buon Pomeriggio.
-
CreatoreTopic
-
AutoreRisposte
-
-
1 Aprile 2015 alle 13:46 #101064::
Benvenuto/a sul forum del GuITTi sei spiegato/a benissimo, almeno credo di aver capito quello che vuoi fare.
1) con wrapfig non puoi mettere una figura al centro del testo con il testo che gli fluisce attorno da tutti e quattro i lati; Qualche accrocchio lo potresti trovare se componessi a due colonne, forse, ma il risultato sarebbe pessimo; tipograficamente inaccettabile, componendo ad una sola colonna il giudizio sarebbe ancora peggiore..
2) I programmi del sistema TeX sono in grado di comporre capoversi sagomati, e in effetti wrapfig usa queste funzionalità per avvolgere il testo da due o tre lati, mai da quattro. Ma per farlo ha bisogno di usare scatole di piccola altezza, in che non capita per una figura, la cui scatola è un rettangolo, anche se quello che c’è dentro è contornato da spazio bianco e con altri programmi sarebbe possibile profilare il capoverso avvolgente in modo che segua il contorno della figura. Va da se che il problema è di difficile realizzazione perché bisogna fare infiniti tentativi per trovare le lunghezze delle righe affinché seguano il contorno desiderato. Mi pare che nella guida L’Arte di scrivere con LaTeX ci sia un capoverso composto a forma di bicchiere da cognac; non oso pensare al tempo che hanno consumato gli autori per aggiustare il testo a quella forma.
In conclusione ti suggerisco di abbandonare l’idea di inserire una figura a centro pagina, con testo sagomato che la circonda da tutti e quattro i lati.
-
1 Aprile 2015 alle 14:31 #101065::
`Se ho capito bene, si vorrebbe realizzare un capoverso con un ”buco”
al centro, come sto goffamente tentando di simulare “a mano”, con
dei ritorni a capo e degli spazi inseriti ad arte, nel testo di questo
stesso messaggio (e, franca- * mente, non so proprio se il
risultato finale avrà l’a- ****** spetto che io intendevo avesse).
Come si vede, il proble- ******** ma è parecchio complicato,
dato che puo coinvolgere *********** anche la suddivisione
delle parole in sillabe. ************ Sicuramente il costruttore
di capoversi del TeX ************ manca di questa capacità,
dato che il meccanismo di ********** “\parshape”, che è il più
generale fra quelli che es- ****** so possiede, non consente
di ottenere questo risultato; ** ma sto parlando delle capacità
del TeX “di livello macchina”: in linea di principio, non sarebbe
impossibile riposizionare a posteriori le scatole orizzontali prodotte dal
costruttore di capoversi, opportunamente impostato, per ottenere
l’effetto desiderato.`Io però non conosco nessun pacchetto esistente che lo faccia. Ma magari mi sbaglio…
Ciao.
—
Gustavo
-
1 Aprile 2015 alle 14:53 #101066::
Devo immediatamente rimangiarmi quel che ho detto (così imparo a scrivere prima di aver letto la documentazione… :oops:). Il pacchetto shapepar, quello stesso che consente di costruire capoversi a forma, per esempio, di cuore, è capace di produrre anche capoversi “bucati”. Lo fa da oltre vent’anni: ho controllato, e un esempio di capoverso a forma di dado esagonale con al centro il buco per la vite era mostrato già nella prima edizione del LaTeX Companion, quella del 1994. Il codice era
`\shapepar{\nutshape}Quel ramo del lago di Como…\par`
La documentazione di shapepar spiega come definire nuove forme di capoversi (c’è un esempio con un capoverso a forma di teschio, con buchi per occhi, naso e bocca), anche utilizzando programmi esterni che consentono di definire la forma tramite un’interfaccia grafica.Faccio le mie più profonde scuse a tutti per aver aumentato l’entropia di questo forum con il mio precedente e inopportuno messaggio.
Ciao.
—
Gustavo
-
1 Aprile 2015 alle 14:55 #101067::
letteracdp” post=100799Io però non conosco nessun pacchetto esistente che lo faccia. Ma magari mi sbaglio…
C’è il pacchetto pullquotes di Stephen Lehmke: http://tex.stackexchange.com/a/70192/13304
Ciao
Claudio
-
1 Aprile 2015 alle 15:25 #101068
-
1 Aprile 2015 alle 16:58 #101069::
Già avevo dimenticato che esisteva shapepar; rimosso dalla memoria perché tovo la cosa divertente per predisporre un programma complicato in linguaggio TeX, ma queste cose, come dice Arsenau, servono solo per corse tipo biglietti di auguri e altre cose amene per le quali è più adatto un qualunque programma di graphics design. Per LaTeX è solo un modo per dire “Guarda cosa sono capace di fare”, ma tipograficamante si tratta di cose improponibili.
-
2 Aprile 2015 alle 8:45 #101070::
ambrosiana911″ post=100803Credo che allora proverò a vedere se riesco a risolvere qualcosa con il pacchetto shapepar. […]
Be’, calma: ho menzionato il pacchetto shapepar solo per correggere la mia precedente, frettolosa e vistosamente errata affermazione che non esistessero pacchetti in grado di comporre capoversi con buchi. Come dice @OldClaudio, esso non è lo strumento più adatto a risolvere il tuo problema, perché è stato pensato per altri scopi. Tuttavia, non sarei categorico come lui nel negarne l’applicabilità al caso di specie: certo, l’uso di shapepar in questa circostanza risulta molto scomodo e obbliga a ricorrere pesantemente al visual formatting, però non comporta nemmeno acrobazie irragionevoli (anche se quest’affermazione dipende da dove ciascuno di noi colloca la soglia del «ragionevole»… :wink:). Ecco una sorta di proof of concept:
`
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage[pass]{geometry} % imposta \pdfpagewidth and \pdfpageheight
\usepackage{shapepar}
\usepackage{lipsum}\title{Gli Gnu nel mondo}
\author{A.~U.~Tore}\hfuzz = 0pt
\vfuzz = 0pt
\lastlinefit = 750\begin{document}
\maketitle
Questo \`{e} il capoverso che precede il punto in cui voglio inserire la figura.
\`{E} opportuno che il bordo superiore del buco dove collocarla coincida con
l'inizio di un capoverso per avere un punto di riferimento certo al quale
ancorare il comando \verb|\marginpar| che ne compie l'effettivo inserimento.%
\marginpar{%
\hspace{-\marginparsep}%
\hspace{-.575\textwidth}%
\begin{minipage}[t][0pt][t]{.15\textwidth}
\noindent\null\\[2\baselineskip]
\itshape
Qui ci va la foto di uno gnu.
\end{minipage}%
}\par\shapepar[\textwidth]{ {.5}
{0} b{0} b{.6} \\
{0} t{0}{.4} t{.6}{.4} \\
{.2} t{0}{.4} t{.6}{.4} \\
{.2} t{0}{.6} j t{.6}{.4} \\
{.35} t{0}{1} \\
{.35} e{1}
}
Questo capoverso \`{e} sagomato a~<>, o se preferite a ferro di cavallo
rovesciato, cosicch\'{e}, collocato sotto il capoverso precedente, forma un buco
quadrato al centro della pagina, nel quale pu\`{o} essere collocata una figura.
A me sembra che il risultato sia molto scadente, perch\'{e} obbliga il lettore a
saltare con gli occhi da una parte all'altra del buco per poter leggere il
testo. Comunque, si noter\`{a} l'uso dell'argomento opzionale del comando
\verb|\shapepar|, per inibire il dimensionamento automatico del capoverso;
questo ci obbliga a fare un po' di tentativi per trovare e specificare noi
stessi, nell'argomento obbligatorio di \verb|\shapepar|, la giusta altezza del
capoverso stesso.\parQuesto \`{e} il capoverso successivo.
\lipsum[1]\end{document}
`
Per funzionare, funziona! 🙂 Certo che ora che ho imparato che esiste il pacchetto pullquote… Però sul CTAN non riesco a trovarlo. 🙁Ciao.
—
Gustavo
-
2 Aprile 2015 alle 9:39 #101071::
Per carità, Gustavo, il mio punto non è che esistano moduli che consentono di comporre testi con sagome di giustezza fantasiose.Trovo che il loro uso sia accettabile non dépliant pubblicitari, biglietti di auguri, segnaposto, segalibri, e chi pi`¨ne ha, più ne metta.
Queste cose non sono adatte a comporre quei dicumenti per i queli il sistema TeX è stato concepito.
Con un’unica eccezione consacrata da almeno 5 secoli, quasi 6 secoli: il colophon (che non è il retrofrontespizio, ma è l’ultima pagina stampata, oltre a contenere il “Finito di stampare il … nelle Officine…”, anticamente conteneva anche informazioni sul numero di segnature, sulla carta usata, sui font usati e simili informazioni di carattere tipografico; esso spesso veniva stampto a pacchetto, in un rettangolo con entrambi i bordi allineati, am di giustezza apri a un terzo/un quarto della giustezza del libro. Altrettanto spesso il colophon veniva stampato con metà delle righe a pacchetto e le restanti righe con giustezza decrescente formando così una sagoma a stendardo. Oggi sarebbe un po’ lezioso, ma almeno sarebbe consacrato da una tradizione plurisecolare.
Ogni altro uso dei capoversi sagomati a me sembra una cosa fuori posto, tranne che nelle applicazioni che ho elencato sopra.
La tua proff of concpt va benissimo, nel senso che serve esattamente a provare l’assunto; ma ti trovi ben a leggere un capoverso le cui righe sono separate da un grosso spazio sagomato e dove, eventualmente una parola vien divisa con la cesura e poi proseguita sulla stessa riga ma con un grosso spazio in mezzo? Credo che tu possa convenire che la cosa è fattibile ma come un divertimento, non come una cosa seria.
-
2 Aprile 2015 alle 11:30 #101072::
letteracdp” post=100807Per funzionare, funziona! 🙂 Certo che ora che ho imparato che esiste il pacchetto pullquote… Però sul CTAN non riesco a trovarlo. 🙁
Vero, non è su CTAN, ma sul repository di TeX.SX: http://bazaar.launchpad.net/~tex-sx/tex-sx/development/view/head:/pullquote.dtx
Ciao
Claudio
-
2 Aprile 2015 alle 12:51 #101073::
OldClaudio” post=100809Queste cose non sono adatte a comporre quei dicumenti per i queli il sistema TeX è stato concepito.
Mi hai definitivamente convinto: sono virtuosismi fini a sé stessi, e se è vero, com’è vero, che scopo dell’arte tipografica è, fra gli altri, quello di organizzare la pagina in modo da trasmettere il contenuto del testo in modo quanto più chiaro, fluente ed efficace possibile, un buco in mezzo al testo (!) semplicemente non ha senso tipografico.
Abbandono dunque ogni riserva e mi associo a OldClaudio nel raccomandare ad ambrosiana911 di desistere dal suo “insano” proposito. 🙂
Non privo di senso, invece, e, anzi, sostenuto da precedenti non mancanti di un certo blasone mi sembra quel che fa il pacchetto (non standard, mi sembra di aver capito) pullquote, cioè inserire, in una pagina composta a due colonne, un inserto fra le colonne stesse. Non ho ancora avuto modo di studiarlo per capirne il principio di funzionamento.
OldClaudio” post=100809Con un’unica eccezione consacrata da almeno 5 secoli, quasi 6 secoli: il colophon […]. Altrettanto spesso il colophon veniva stampato con metà delle righe a pacchetto e le restanti righe con giustezza decrescente formando così una sagoma a stendardo. […]
Sicuramente il LaTeX ha un pacchetto che fa anche questo in modo automatico, ci scommetto! 🙂 La primitiva TeX “\parshape” non consente direttamente di fare ciò, perché, purtroppo, non ha un comportamento del tipo di quello di “\hangafter”: cioè, non accetta, come invece servirebbe in questo caso, un numero negativo come specifica del numero di righe a cui dev’essere applicata, col significato di cominciare a contare le righe dal fondo del capoverso; al contrario, il vettore di coppie indentazione/lunghezza conta sempre le righe a partire dalla prima. Questo comportamento non cambia nemmeno in e-TeX. Quindi, se si vuole automatizzare il procedimento bisogna rassegnarsi a contare il numero di righe nel capoverso e a ricomporlo più volte, finché non si ottiene il risultato voluto. Ma, ripeto, sicuramente qualcuno l’ha già fatto.
Ciao.
—
Gustavo
-
5 Aprile 2015 alle 15:17 #101074::
letteracdp” post=100813Sicuramente il LaTeX ha un pacchetto che fa anche questo in modo automatico, […] sicuramente qualcuno l’ha già fatto.
Poiché nessuno rispondeva riguardo all’esistenza di pacchetti per fare la “chiusa a stendardo” di cui si parla sopra, ho provato a fare una rapida ricerca sul CTAN e, sorprendentemente, non ho trovato nulla. Così, ho pensato di provare a scriverlo io, un pacchettino del genere. 🙂 A ben vedere, è un compito semplice, e in realtà si molta meno fatica a implementare direttamente in “TeX macchina” il comportamento desiderato che a cercare di spiegarlo al pacchetto shapepar.
Per il momento, ho dato al pacchetto il nome di chiusaastendardo, ma vi chiedo accoratamente di suggerirmi il nome adatto in inglese, se lo sapete. Per allegarlo a questo messaggio, però, devo cambiarne l’estensione in «.tex», altrimenti non viene accettato: ricordatevi di ripristinare l’estensione «.sty» dopo averlo scaricato.
Ecco qui il file: [attachment=1300]chiusaastendardo.tex[/attachment]
Il pacchetto definisce l’ambiente chiusaastendardo, nel quale si racchiude il testo che si vuole comporre “a stendardo”.
Il codice che ho scritto è ancora rudimentale, ma se pensate che ne valga la pena, si possono aggiungere altre funzioni, che una versione realmente utilizzabile dovrebbe necessariamente possedere per essere tale. Per esempio, dovrebbe essere possibile terminare lo “stendardo” con una decorazione, predefinita o personalizzabile, modificare la pendenza dei lati inclinati, e così via.
Il pacchetto dovrebbe essere utilizzato esclusivamente sotto e-TeX: infatti, impedire che un’interruzione di pagina “tagli la coda allo stendardo” è una tipica applicazione per “\widowpenalties”; per i soliti motivi religiosi, però, 🙂 il pacchetto è in grado di “riparare graziosamente” anche se eseguito con le estensioni e-TeX disabilitate.
Ecco un esempio compilabile di utilizzo di chiusaastendardo:
`
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage{lipsum}
\usepackage[trace]{chiusaastendardo}\title{Chiusa “a stendardo''}
\author{G.~Mezzetti}\hfuzz = 0pt
\vfuzz = 0pt\begin{document}
\maketitle
\lipsum[1-4]
\begin{chiusaastendardo}
Un po' di testo, contenente anche comandi \verb|\verb|, seguiti da un
<>. Notare che \verb|\par| viene ignorato. \lipsum[1]
\end{chiusaastendardo}\end{document}
`
L’opzione trace, per ora, si limita a scrivere qualche sparuto messaggio informativo nel log.Ciao.
—
Gustavo
Attachments:
You must be logged in to view attached files. -
5 Aprile 2015 alle 19:09 #101075::
Gustavo, personalmente farei due piccole modifiche.La prima dovrebbe togliere il parfillskip dall’ultima riga
La seconda sarebbe quella di comporre un colophon vero e proprio; \colophon{testo del colophon) su pagina nuova, magari pari, non dispari; giustezza pari a un terzo della gabbia normale; il tutto centrato sia verticalmente sia orizzontalmente, come si faceva anticamente. Quando torno a casa magari cerco su un libro d’epoca un colophon così fatto, lo scandisco, e lo invio qui sul forum per te e per chiunque voglia vedere un vero colophon.
Grazie del regalino di Pasqua:smile:
Claudio
-
5 Aprile 2015 alle 20:00 #101076::
OldClaudio” post=100852Gustavo, personalmente farei due piccole modifiche.
La prima dovrebbe togliere il parfillskip dall’ultima riga
Ci ho pensato, ma è una decisione da ponderare bene, perché aggiunge restrizioni a un compito di suddivisione in righe già arduo. L’ultima riga dello “stendardo” è larga solo 33pt, ma a quanto pare la presenza della parfillskip glue si nota ugualmente. 🙁 Magari si può mettere qualcosa come`\parfillskip = 0pt plus 2pt`giusto per lasciare al costruttore di
paginacapoversi la possibilità di giostrarsi un po’ le ultime righe. Con una “\tolerance” di 800 i due punti sono autorizzati a diventare ben quattro! (Glue set ratio = 2 dà badness = 800.) Bisognerebbe fare un po’ di prove.OldClaudio” post=100852La seconda sarebbe quella di comporre un colophon vero e proprio; \colophon{testo del colophon) su pagina nuova, magari pari, non dispari; giustezza pari a un terzo della gabbia normale; il tutto centrato sia verticalmente sia orizzontalmente, come si faceva anticamente. Quando torno a casa magari cerco su un libro d’epoca un colophon così fatto, lo scandisco, e lo invio qui sul forum per te e per chiunque voglia vedere un vero colophon.
Grazie del regalino di Pasqua:smile:
ClaudioDovresti insegnarmi bene come dovrebbe essere fatto. 🙂 Naturalmente, questo ipotetico comando “\colophon” (o meglio un ambiente?) dovrebbe essere in grado di estrarre automaticamente dal testo indicato una porzione opportunamente dosata e comporre quella porzione a colophon, rimandando il resto alla pagina precedente… Interessante, bisogna pensarci un po’ su!
Qualche idea per le decorazioni? Magari, se ci mettiamo in due, viene fuori una cosa carina; e se composta coi caratteri giusti…
E strano, però, che un pacchetto del genere non esista già.
Ciao.
—
Gustavo
-
6 Aprile 2015 alle 6:21 #101077::
A parte il contenuto e la forma dello stendardo il comando \colophon potrebbe fare qualcosa del genere:`\clearpage
\begingroup
\vspace*{\stretch{1}}\centering
\parbox{0.333\textwidth}{\chiusastendardo #1\par}
\vspace*{\stretch{1}}\endgroup`
Per l’ambiente al posto di \parbox{…}{…} \metti \minipage{0.333\textwidth}\chiusurastendardo alla fine dei comandi di apertura e \endminipage all’inizio dei comandi di chiusra, facendolo seguire da \vspace*{…}; ovviamente con l’ambiente non occorrono il \begingroup e dell’endgroup.
Nota che non ho provato ad eseguire questo abbozzo e in particolare non ho messo niente per aggiustare il \parfillskip; nell testo TeX for the Impatient che è stato inviato a tutti i soci come vantaggio per l’iscrizione o il rinnovo dell’iscrizione al GuIT, c’è un bella spiegazione di come centrare l’ultima riga di un capoverso senza ricorrere ad acrobazie con le scatole ma usando della gomma nullo con un allungamento negativo (nota: allungamento negativo, non accorciamento positivo) perché così gli allungamanti dei \parfillskip e di questa gomma aggimutivo si compensano –l’ho spiegato male, ma il concetto è quello; il testo TeX by topic lo spiega molto meglio. (il testo si trova anche da qualche parte come file sorgente.
-
6 Aprile 2015 alle 9:52 #101078::
OldClaudio” post=100854[…] nell testo TeX for the Impatient che è stato inviato a tutti i soci come vantaggio per l’iscrizione o il rinnovo dell’iscrizione al GuIT, c’è un bella spiegazione di come centrare l’ultima riga di un capoverso senza ricorrere ad acrobazie con le scatole ma usando della gomma nullo con un allungamento negativo (nota: allungamento negativo, non accorciamento positivo)
…che sono due cose completamente diverse, come ben si sa! 🙂
OldClaudio” post=100854… perché così gli allungamanti dei \parfillskip e di questa gomma aggimutivo si compensano –l’ho spiegato male, ma il concetto è quello; il testo TeX for the impatient lo spiega molto meglio. (il testo si trova anche da qualche parte come file sorgente.
Se si chiude il capoverso scrivendo`…\hfilneg\ \par`(e non soltanto`\hfilneg\par`come faceva Ben Lee User, cfr. esercizio 14.13 del TeXbook), il capoverso si chiude a filo con il margine destro, come se “\parfillskip” fosse stato impostato a zero. Al momento, non mi viene in mente alcun trucco semplice per centrare l’ultima riga di un capoverso e solo quella: “\leftskip” e “\rightskip” vengono usati per tutte le righe del capoverso.
Nel frattempo ho trovato alcuni bug nel codice di chiusaastendardo inviato ieri (uno è la data! :wink:). Ho già in mente come correggerli, ma oggi è bel tempo e voglio andare a fare due passi. Invio il nuovo codice appena ho il tempo di riscriverlo… e quando saprò come correggere il bug principale, cioè il nome «chiusaastendardo». Meglio «colophon»? È che il nome «colophon» ingenera confusione con il retrofrontespizio: magari «ancientcolophon», o «classiccolophon»?
Ciao.
—
Gustavo
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.