- Questo topic ha 16 risposte, 6 partecipanti ed è stato aggiornato l'ultima volta 2 anni, 5 mesi fa da
Carmine.
-
CreatoreTopic
-
13 Luglio 2021 alle 13:53 #120191::
Sono un vecchio professore (ahi!), ho scritto un libro molto illustrato (prospettiva) nel quale le figure dovrebbero stare il più possibile vicino al testo, in modo che si possano comodamente confrontare.
Ho un problema che proprio non riesco a risolvere.
In certi casi, per ottenere che il testo accompagni la figura, dovrei forzare LaTeX a inserire quest’ultima in testa alla pagina anche in apertura di sezione o capitolo, quindi sopra o sotto il titolo.
Ho provato con placeins e il comando \FloatBarrier, ma porta tutto nella pagina successiva lasciando il titolo su una pagina bianca.Qualcuno ha un suggerimento?
Grazie per l’aiuto.
RiccardoEcco un estratto del codice, per chi volesse provare e, in allegato, la figura
`\documentclass[10pt,twoside]{book}
\usepackage{calc}
\usepackage[paperwidth=18.5cm, paperheight=28cm, twocolumn, columnsep=1cm, inner=3.3cm, outer=1.7cm, top=2.7cm, bottom=2.7cm]{geometry}\usepackage{caption}
\captionsetup{tableposition=top,figureposition=bottom,font=small}\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage[polutonikogreek,italian]{babel}
\usepackage{textcomp}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[inline]{enumitem}\usepackage{txfonts}
\usepackage{graphicx}\usepackage[section]{placeins}
\begin{document}
\chapter{Capitolo 1}\section*{Sezione 1}
\begin{figure*}[tpb]
\centering
\includegraphics[width=1\linewidth]{Figura_005}
\caption{testo ***************}
\label{fig:figura005}
\end{figure*}\FloatBarrier
\lipsum[1-6]\end{document}`
Attachments:
You must be logged in to view attached files. -
CreatoreTopic
-
AutoreRisposte
-
-
13 Luglio 2021 alle 19:14 #120192::
LaTeX di suo non consente di metter un oggetto “flottante” subito dopo un comando di sezionamento.
Lo si potrebbe fare ma bisogna ricorerrere a sporchi trucchi; in particolare bisogna ricorrere a una minipage e dopo aver incluso l’immagine con \inclufegraphics, bisogna introdurre la didascalia con il comando \captionof.
-
13 Luglio 2021 alle 19:22 #120193
-
14 Luglio 2021 alle 7:13 #120194::
Innanzitutto grazie molte per il tuo paziente aiuto. E anche per il suggerimento sul greco!
Uso LaTeX da molti anni, in realtà, e visto che ho qui l’opportunità di parlare con qualcuno che lo apprezza, vorrei dire che LaTeX non solo aiuta a impaginare e strutturare correttamente un testo ma, ciò che è più importante, aiuta a scriverlo, nel senso che aiuta a pensare.
Quando insegnavo ho anche cercato di promuoverlo tra i miei allievi del Dottorato, ma senza successo. Peccato!Ciò detto, e scusandomi per lo sfogo, avevo provato con minipage ma succede che la seconda colonna del testo si sovrappone alla figura.
Lo so che è una forzatura, ma in certi casi è necessario, per migliorare la leggibilità del testo.C’è altro che posso tentare?
Ho forse fatto qualche errore nell’uso di minipage?
Ecco il codice aggiornato (la figura l’ho postata prima):`\documentclass[10pt,twoside]{book}
\usepackage{calc}
\usepackage[paperwidth=18.5cm, paperheight=28cm, twocolumn, columnsep=1cm, inner=3.3cm, outer=1.7cm, top=2.7cm, bottom=2.7cm]{geometry}\usepackage{caption}
\captionsetup{tableposition=top,figureposition=bottom,font=small}\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage[greek.ancient,italian]{babel}
\usepackage{textcomp}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[inline]{enumitem}\usepackage{txfonts}
\usepackage{graphicx}\usepackage[section]{placeins}
\begin{document}
\chapter{Capitolo 1}\section*{Sezione 1}
\begin{minipage}[c]{ \textwidth}
\includegraphics[width=\textwidth]{Figura_005}
\label{fig:figura005}
\end{minipage}\lipsum[1-6]
\end{document}`
-
16 Luglio 2021 alle 22:09 #120195::
In generale, non carichi i pacchetti nell’ordine corretto.
Dopo la classe del documento vanno quelli per la codifica.
È superfluo specificare l’opzione twoside per la classe book.
È superfluo caricare amssymb, se carichi già amsfonts.
Se vuoi (non l’ho capito bene dal tuo post) che la figura occupi
una sola colonna, devi usare [tt]\columnwidth[/tt] e non [tt]\textwidth[/tt][attachment=2633]Schermatadel2021-07-1712-33-42.png[/attachment]
m
PS
racchiudi il codice nei tag opportuni
Attachments:
You must be logged in to view attached files. -
17 Luglio 2021 alle 6:12 #120196::
L’opzione H del pacchetto float ti può aiutare: va usata con moderazione e solo in sede di revisione finale, perché può comportare molti aggiustamenti di impaginazione.
`\documentclass{book}
\usepackage{float,lipsum,tikz}\begin{document}
\chapter{Lorem}\section{Ipsum}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\draw (0,0) rectangle (10,5);
\end{tikzpicture}
\caption{Dida.}
\end{figure}\lipsum
\end{document}`
-
17 Luglio 2021 alle 10:58 #120197::
Grazie a tutti!
Spero di avere interpretato correttamente i vostri suggerimenti (vedi codice sotto) tuttavia il problema persiste.
Allego cattura schermo per maggior chiarezza.
Dopo aver collocato correttamente la figura, il flusso di testo prosegue il suo cammino e la seconda colonna parte in alto a destra e scende sovrapponendosi alla figura, invece di ripartire SOTTO la figura.
Vi garantisco che le ho provate tutte: speravo nel comando \FloatBarrier di placeins, che ha un bel nome evocativo del comportamento che io desidero, ma … niente da fare.
è come se l’ordine di stampare su due colonne, eseguito dopo l’ambiente Figure o il Minipage, ignorasse ciò che precede.Scusate (sono nuovo del Forum) come si fa a caricare il codice con il fondo come fate voi?
Grazie ancora
`
\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}\usepackage{calc}
\usepackage[paperwidth=18.5cm, paperheight=28cm, twocolumn, columnsep=1cm, inner=3.3cm, outer=1.7cm, top=2.7cm, bottom=2.7cm]{geometry}\usepackage{caption}
\captionsetup{tableposition=top,figureposition=bottom,font=small}\usepackage{fancyhdr}
\usepackage[polutonikogreek,italian]{babel}
\usepackage{textcomp}
%\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{amsfonts}\usepackage[inline]{enumitem}
\usepackage{txfonts}
\usepackage{graphicx}\usepackage[section]{placeins}
\usepackage{float}
\usepackage{comment}\usepackage{float,lipsum,tikz}
\begin{document}
\chapter{Lorem}\section{Ipsum}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\draw (0,0) rectangle (10,5);
\end{tikzpicture}
\caption{Dida.}
\end{figure}\lipsum
\end{document}
`
Attachments:
You must be logged in to view attached files. -
17 Luglio 2021 alle 12:50 #120198
-
17 Luglio 2021 alle 15:40 #120199::
fin qui c’ero arrivato anch’io.
ma prova a lasciare un’immagine a \textwidth
e in effetti si sovrappone alla seconda colonna…la difficoltà sta nel combinare due cose che separatamente mi vengono,
ovvero (1) piazzare l’immagine subito dopo sotto il titolo
e (2) far sì che non si sovrapponga alla colonna di destram
-
17 Luglio 2021 alle 18:21 #120200::
Segui questo link: <>, di Barbara Beeton, pubblicato su ArsTexnica: [code]
https://www.guitex.org/home/numero-19-aprile-2015
[code]La soluzione è abbastanza copmplessa, si usa minipage larga \textwidth nascosta dentro una \makebox e poi la si infila in un ambiente figure non asteriscato e col codice di posizionamento [!b]. Non è facile ottenere quanto la Beeton spiega, a me in un caso non è riuscito, ma altri più esperti di me sapranno maneggiare meglio il codice. Il riferimento all’articolo mi fu segnalato mesi fa da OldClaudio, io l’avevo dimenticato. Non credo sia possibile l’inserimento in testa alla pagina.
Ciao ed eventualmente fammi sapere, Enrico M.
-
17 Luglio 2021 alle 21:32 #120201
-
18 Luglio 2021 alle 12:13 #120202::
Caro Samiel,
il problema è che non posso accontentarmi.
Immagina di avere un testo che, a inizio capitolo e dopo due righe, fa riferimento a una figura che deve essere letta in successione su singoli suoi dettagli: 1, 2 … etc. come avviene quando vuoi spiegare una costruzione geometrica.
La figura non può essere larga una sola colonna e non può stare nella pagina successiva che, oltretutto, è sul retro del foglio.
E in un libro di 400 pagine può capitare più volte.
Sarebbe bello trovare una soluzione!
Nell’ultimo numero di Ars TeXnica c’è un articolo di Beccari e Fleck che illustra il package swfigure: molto interessante, ma purtroppo anche questo non risolve il mio problema, anche se offre nuove possibilità che sfrutterò senz’altro in altre occasioni.
Il ‘metodo Beeton’ è anche notevole, perché mira esattamente sul bersaglio, ma anche in questo caso non riesco a ottenere che la seconda colonna non si sovrapponga alla figura (anche perché debbo usare l’opzione t invece di b).Ma …. il metodo Beeton mi h fatto venire in mente la soluzione, che potremmo chiamare:
IL PIU’ SPORCO DEGLI SPORCHI TRUCCHI
e cioè: basta imporre a LaTeX di saltare le righe che vuole scrivere a tutti i costi sopra la figura e lui, buono buono, lo fa.
Speriamo che non voglia vendicarsi poi, ma non mi pare.
Così il codice è questo che segue (ho dovuto inserire testo e non lipsum per provare) vedi, a un certo punto che deve essere ‘studiato’ il comando \\[ n cm]: GRAZIE a tutti coloro che mi hanno aiutato e sempre aperto ad ascoltare soluzioni meno rozze.`\usepackage{amsfonts}
\usepackage[inline]{enumitem}
\usepackage{txfonts}
\usepackage{graphicx}
\usepackage{float,lipsum}
\begin{document}
\chapter{Lorem}\section{Ipsum}
\begin{figure}[H]
\includegraphics[width=2.2\linewidth]{Figura_005}
\caption{Didascalia lunga}
\label{fig:figura005}
\end{figure}Abbiamo già una volta ricordato che due rette incidenti, e perciò complanari, sono ortogonali quando dividono il piano in quattro angoli eguali (Euclide, I, def. X)\cite{Euclide_1970}.
Nello spazio, una retta è perpendicolare ad un piano, quando forma angoli retti con tutte le rette del piano che passano per il suo punto \textbf{piede} (Euclide, XI, def. III)\index{Euclide}. Il piede è il punto che la retta e il piano hanno in comune, cioè il loro \textbf{punto intersezione}.
Dopo avere stabilito queste definizioni, Euclide dimostra che, se una retta forma angoli retti con due sole rette di un piano, che passano per il suo piede, essa è perpendicolare al piano (Euclide, XI, 4). Di conseguenza, quando una retta è perpendicolare a due rette di un piano, è perpendicolare anche a tutte le altre rette del piano.
Euclide dimostra, altresì, che se una retta è perpendicolare ad un piano, tutti i pia- \\
\\[8.8cm]
ni che le appartengono sono anche perpendicolari a quel piano (Euclide, XI, 18) e che due piani, che siano entrambi perpendicolari
ad un terzo piano, si tagliano secondo una retta perpendicolare a quel piano (Euclide, XI, 19).La retta $g$ appartiene al piano geometrale e, dunque, è orizzontale, come tutte le rette di $\alpha$ che le sono parallele. I punti di una qualsiasi retta $o$ di $\alpha$, che sia parallela a $g$, hanno tutti la stessa quota, rispetto a $\pi_1$ e perciò la $o$ si dice \textbf{linea di livello}.La retta $p$ è ortogonale a $g$ e, perciò, anche a $o$ e dunque descrive il più breve tragitto che si possa percorrere per passare da $o$ a $g$, infatti questa è la via percorsa dall'acqua che scivola su un piano inclinato, come ad esempio, un tetto. La retta $p$ si dice \textbf{retta di massima pendenza} del piano $\alpha$.La retta $p_1$ si dice \textbf{proiezione ortogonale} di $p$ su $\pi_1$ o, in modo più diretto, \textbf{proiezione geometrale} di $p$.
L'angolo $\angle pp_1$ si dice \textbf{angolo di pendenza} della retta $p$ e, poiché $p$ è la retta di massima pendenza del piano $\alpha$, questo è anche l'\textbf{angolo di pendio} del piano $\alpha$.Ora è evidente, che qualsiasi retta $r$ di $\alpha$, che non sia parallela a $p$, forma con la propria proiezione geometrale $r_1$ un angolo più piccolo dell'angolo $\angle pp_1$. Questo angolo si annulla quando la retta $r$ assume la direzione di $g$ ed è, perciò, anch'essa orizzontale.
\lipsum
\end{document}`
Attachments:
You must be logged in to view attached files. -
18 Luglio 2021 alle 15:28 #120203::
serve una magia da autentici guru
(e qui peraltro ce n’è uno dei maggiori)…in ogni caso, prova a scrivere su TeX – LaTeX Stack Exchange
dove trovi espertissimi. così poi anche noi verremo a parte del misterom
PS
il codice devi racchiuderlo fra i tag per il codice:
`codice`
anche usando il tasto che trovi fra le icone in alto
-
22 Luglio 2021 alle 5:51 #120204::
Un ultimo mio intervento solo per mettere un po’ d’ordine: era la mia prima esperienza e ho fatto parecchia confusione.Dunque, il problema è inserire una figura sotto il titolo di Capitolo o di sezione che prenda due colonne del testo così impaginato.
La soluzione che ho trovato, con l’aiuto di tutti voi, è sicuramente una forzatura, ma funziona.
Bisogna, innanzitutto, caricare il pacchetto float, per poter usare l’opzione H di posizione della figura.
Poi si carica la figura nel posto giusto con questo codice:`\begin{figure}[H]
\begin{minipage}{\textwidth}
\centering
\includegraphics[width=1\linewidth]{nome_del_file_figura}
\caption{didascalia lunga}
\label{fig:nome_del_file_figura}
\end{minipage}
\end{figure}`Compilando, si noterà, a questo punto, che LaTeX sovrappone alla figura il testo della seconda colonna.
Bisogna, allora, posizionare \\ subito dopo l’ultima parola della prima colonna e, a capo, \\[n cm] dove n cm (o pt o mm etc.) sta per l’altezza dello spazio che LaTeX deve saltare, liberando così la figura.Infine ho notato che, usando \makebox come altrove suggerito nel forum, si può anche fare in modo che la figura vada da bordo a bordo o comunque superi la larghezza del testo (non mi piace, ma forse è utile saperlo).
Cordialissimi saluti,
Riccardo
-
24 Febbraio 2024 alle 18:28 #120205::
Ciao. Mi sono trovato per caso a leggere la tua domanda e spero tu abbia trovato la risposta al tuo problema visto che è passato un bel po’ di tempo.
Nel caso contrario prova ad usare questa scappatoia:`
\documentclass[a4paper,10pt,twocolumn]{memoir} % dovrebbe funzionare anche con altre classi (provare non costa nulla)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{cuted}% pacchetto utile per la causa\begin{document}
\begin{strip}
%\vspace{??} % non indispensabile ma ritengo sia utile per eventuali aggiustamenti dello spazio tra titolo e figura
\includegraphics[width=\textwidth]{example-image}
%\vspace{??} % non indispensabile ma ritengo sia utile per eventuali aggiustamenti dello spazio tra figura e il testo sottostante
\end{strip}
\lipsum
\end{document}
`Spero di essere stato d’aiuto.
Ciao
-
25 Febbraio 2024 alle 23:03 #120206::
Il pacchetto cuted fa più o meno quello che serve per mettere una figura large \textwidth dentro un testo a due colonne.
In reatà è gracilino, perché se non è seguito da testo non fa quel che deve fare, inoltre talvolta inserisce degli spazi verticlai che spareggiona le due colonne.
`\documentclass[a4paper,10pt,twocolumn]{book} % dovrebbe funzionare anche con altre classi (provare non costa nulla)
\usepackage[T1]{fontenc}
\usepackage{kantlipsum}
\usepackage{graphicx}
\usepackage{cuted}% pacchetto utile per la causa\begin{document}
\chapter{Test}
\kant[1-4]
\section{Test twocolumn figure}
\begin{strip}
%\vspace{??} % non indispensabile ma ritengo sia utile per eventuali aggiustamenti dello spazio tra titolo e figura
\includegraphics[width=\textwidth]{example-image}
%\vspace{??} % non indispensabile ma ritengo sia utile per eventuali aggiustamenti dello spazio tra figura e il testo sottostante
\end{strip}
\kant[5]
\end{document}
`Comunuque è meglio dei tentativi manuali necessari con la soluzione di Beeton, anche se bisogna intervenire per correggere alcuni erroretti di spaziatura verticale. Cambia \kant[5] in \kant[5-7] e vidi il difettuccio.
Inoltre se non c’è abbastanza spazio nella pagina, inserisce la figura come se fosse dato il codice di posizionamento H (da non usare MAI, nemmeno sotto minaccia delle armi) e la figura sbora in basso uscendo, magari, dalla pagina in basso.
Ricordati di specificare nele opzioni greek.ancient e non polutonikogreek; i segni diacritico vengono nello stesso modo, ma la cesura in fin di riga è diversa.
Se usi una distribuzione moderna del sistema TeX, lascia perdere la chiamata al pacchetto inputenc, perché ora la codifica di defualt è prprio la codifica utf8
-
2 Aprile 2024 alle 10:19 #120207::
\documentclass[a4paper,10pt,twocolumn]{memoir} % dovrebbe funzionare anche con altre classi (provare non costa nulla)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{cuted}% pacchetto utile per la causa\begin{document}
\begin{strip}
%\vspace{??} % non indispensabile ma ritengo sia utile per eventuali aggiustamenti dello spazio tra titolo e figura
\includegraphics[width=\textwidth]{example-image}
%\vspace{??} % non indispensabile ma ritengo sia utile per eventuali aggiustamenti dello spazio tra figura e il testo sottostante
\end{strip}
\lipsum
\end{document}Spero di essere stato d’aiuto.
Ciao
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.