Impedir que figuras sejam inseridas no meio de um parágrafo

87 views
Skip to first unread message

Lucas Martins Soares

unread,
Jun 28, 2023, 1:29:27 PM6/28/23
to abnTeX2
Quando o uma figura não pode ser inserida no lugar determinado, ela é deslocada para o topo do documento, dividindo um parágrafo ao meio. Como impedir que isso aconteça?

Rogério Nunes Wolff

unread,
Jun 28, 2023, 2:33:03 PM6/28/23
to abn...@googlegroups.com
Olá Lucas:

Tenta usar o parâmetro [H] ao iniciar a figura com \begin{figure}:

\begin{center}
\begin{figure}[H]
\centering
\includegraphics[width=0.7\textwidth]{minha_figura.pdf}
\caption[Descrição da figura no sumário]{Descrição da figura junto à figura}
\label{fig:referencia_da_figura_no_corpo_do-texto}
\end{figure}
\end{center}

O [H] determina que a figura tem de ficar onde queres.

Atenciosamente,

Rogério Nunes Wolff

Em qua., 28 de jun. de 2023 às 14:29, Lucas Martins Soares <lucasms...@gmail.com> escreveu:
Quando o uma figura não pode ser inserida no lugar determinado, ela é deslocada para o topo do documento, dividindo um parágrafo ao meio. Como impedir que isso aconteça?

--
abnTeX2 - http://abntex2.googlecode.com/
---
Você recebeu essa mensagem porque está inscrito no grupo "abnTeX2" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para abntex2+u...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/abntex2/7e92f511-6b6a-409b-8469-6e678fcc97cen%40googlegroups.com.

Lucas Martins Soares

unread,
Jun 28, 2023, 3:34:04 PM6/28/23
to abnTeX2

quando eu adiciono o pacote float, aparece uns erros relacionados à declaração de quadros.

Rogério Nunes Wolff

unread,
Jun 28, 2023, 3:47:44 PM6/28/23
to abn...@googlegroups.com
Estás usando o pacote graphicx? Ele é necessário para o \includegraphics.

Rogério

Lucas Martins Soares

unread,
Jun 28, 2023, 3:48:48 PM6/28/23
to abnTeX2
estou sim,

Rogério Nunes Wolff

unread,
Jun 28, 2023, 3:54:31 PM6/28/23
to abn...@googlegroups.com
Que mensagens de erro estás recebendo?

Rogério

Geraldo Xexeo

unread,
Jun 28, 2023, 6:40:16 PM6/28/23
to abn...@googlegroups.com
Há outros truques, mesmo o H pode não dar certo. Em todo caso, para usá-lo precisa usar o pacote float

Tem um pacote chamado placeins que permite controlar que os floats apareçam na mesma seção
\usepackage[section]{placeins}

Além disso ele tem o comando \FloatBarrier

O pacote flafter, que pode ser usado junto, é builtin e garante que os floats, como imagens e tables, aparecem depois de sua definição.

Tanto o uso do H como desses pacotes podem afetar o fluxo de texto e causar alguns espaços em branco não desejados, alguns truques podem ser usados como variar o tamanho das imagens com \includegraphics[scale=.9]{nome} ou controlando o width ou height das mesmas.

Se usar uma exclamação no posicionamento das imagens também dá mais força as "sugestões" que são o [htb].

Uma boa explicação:


Lucas Martins Soares

unread,
Jun 28, 2023, 10:22:34 PM6/28/23
to abnTeX2
/home/lucas/Downloads/Monografia CEFET ABNT/main.tex:85: LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.85 \newfloat[cha
pter]{quadro}{loq}{\quadroname}
Writing index file main.idx
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd) (out/main.aux (out/Capitulos/1-Introducao.aux) (out/Capitulos/2-Referencial.aux) (out/Capitulos/3-Metodologia.aux) (out/Capitulos/4-Resultados.aux) (out/Capitulos/5-Conclusao.aux)) (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty (/usr/share/texlive/texmf-dist/tex/latex/grfext/grfext.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (./biblatex-abnt/brazil-abnt.lbx (./biblatex-abnt/brazilian-abnt-abnt.lbx (./biblatex-abnt/brazilian-abnt.lbx (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx))) (./biblatex-abnt/brazilian-abnt-abnt.lbx (./biblatex-abnt/brazilian-abnt.lbx (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx) (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazil.lbx (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx))) (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazil.lbx (./biblatex-abnt/brazilian-abnt.lbx (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx) (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazil.lbx (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx)))))) (./biblatex-abnt/english-abnt.lbx (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/english.lbx) (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/english.lbx) (/usr/share/texlive/texmf-dist/tex/latex/biblatex/lbx/english.lbx)) (out/main.bbl) (./3-Pre-Textual.tex [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd)
pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored
<to be read again>
\relax
l.23
[1] [2] [3] (out/main.lof) [4] (out/main.loq) [5] [6] (out/main.toc) [7]) (./Capitulos/1-Introducao.tex [8]) [9] (./Capitulos/2-Referencial.tex [10] [11] [12 <./Imagens/Stack.png (PNG copy)>] [13] [14 <./Imagens/MapReduce.png (PNG copy)>] [15 <./Imagens/flink-program_dataflow.png>] [16 <./Imagens/flink-arquiteture.png>] [17 <./Imagens/backpressure-no.png> <./Imagens/backpressure-yes.png>]

LaTeX Warning: Reference `quadro:ComparativoFrameworks' on page 18 undefined on input line 126.


./Capitulos/2-Referencial.tex:128: LaTeX Error: Environment quadro undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.128 \begin{quadro}
[!ht]

./Capitulos/2-Referencial.tex:130: Package caption Error: \caption outside float.

See the caption package documentation for explanation.
Type H <return> for immediate help.
...
l.130 \caption
{\label{quadro:ComparativoFrameworks} Comparação dos Framewo...

./Capitulos/2-Referencial.tex:149: LaTeX Error: \begin{document} ended by \end{quadro}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.149 \end{quadro}
) [18] (./Capitulos/3-Metodologia.tex [19]) [20] (./Capitulos/4-Resultados.tex) [21] (./Capitulos/5-Conclusao.tex

./Capitulos/5-Conclusao.tex:15: LaTeX Error: Environment quadro undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.15 \begin{quadro}
[htb]

./Capitulos/5-Conclusao.tex:16: Package caption Error: \caption outside float.

See the caption package documentation for explanation.
Type H <return> for immediate help.
...
l.16 \caption
{Cronograma}

./Capitulos/5-Conclusao.tex:41: LaTeX Error: \begin{document} ended by \end{quadro}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.41 \end{quadro}
) [22] (./4-Pos-Textual.tex (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1phv.fd) [23] [24]) [25] (out/main.aux (out/Capitulos/1-Introducao.aux) (out/Capitulos/2-Referencial.aux) (out/Capitulos/3-Metodologia.aux) (out/Capitulos/4-Resultados.aux) (out/Capitulos/5-Conclusao.aux))

LaTeX Warning: There were undefined references.


Package biblatex Warning: Please rerun LaTeX.
(biblatex) Page breaks have changed.

)
(see the transcript file for additional information){/usr/share/texmf/fonts/enc/dvips/lm/lm-mathsy.enc}{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}</usr/share/texmf/fonts/type1/public/lm/lmr12.pfb></usr/share/texmf/fonts/type1/public/lm/lmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvro8a.pfb>
Output written on out/main.pdf (26 pages, 967216 bytes).
SyncTeX written on out/main.synctex.gz.
Transcript written on out/main.log.
Latexmk: Getting log file 'out/main.log'
Latexmk: Examining 'out/main.fls'
Latexmk: Examining 'out/main.log'
Latexmk: Index file 'out/main.idx' was written
Latexmk: Found input bbl file 'out/main.bbl'
Latexmk: Log file says output to 'out/main.pdf'
Latexmk: ====List of undefined refs and citations:
Reference `quadro:ComparativoFrameworks' on page 18 undefined on input line 126
Latexmk: If appropriate, the -f option can be used to get latexmk
to try to force complete processing.
Latexmk: Bibliography file(s) form .bcf file:
./Referencias.bib
Latexmk: Summary of warnings from last run of *latex:
Latex failed to resolve 1 reference(s)
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
pdflatex: Command for 'pdflatex' gave return code 1
Refer to 'out/main.log' and/or above output for details

Rogério Nunes Wolff

unread,
Jun 29, 2023, 1:07:44 AM6/29/23
to abn...@googlegroups.com
Lucas:

O problema parece estar em alguma incompatibilidade entre o ambiente quadro e o pacote float. É que eu uso o pacote float e insiro figuras usando \begin{figure}, e na compilação a lista de figuras é gerada automaticamente; eu não uso o ambiente quadro. Talvez porque eu estou usando uma costumização um pouco mais antiga, feita para a UFRGS.

Aqui há um tutorial sobre o uso de float, caption e figure: https://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions

Dá uma lista nestas discussões:


No teu documento parece não haver o pacote float. Ele iria no cabeçalho como \usepackage{float}, antes de \begin{document}. Mas isso vai, segundo o que li nas discussões, comprometer a Lista de Quadros.

Precisas de algo que substitua o float, seja compatível com o quadro e cumpra a mesma função.

Angelo Cuissi

unread,
Jun 29, 2023, 5:16:45 AM6/29/23
to abn...@googlegroups.com
Oi, Lucas.

Você está usando o pacote trivfloat?

Rogério Nunes Wolff

unread,
Jun 29, 2023, 10:22:14 AM6/29/23
to abn...@googlegroups.com
Pois é, se o trivfloat é o necessário para definir o ambiente quadro a declaração do pacote deveria estar no cabeçalho do template.

Então, consultei o template mais recente e o que está lá é o seguinte:

% Possibilita criação de Quadros e Lista de quadros.
% Ver https://github.com/abntex/abntex2/issues/176
%
\newcommand{\quadroname}{Quadro}
\newcommand{\listofquadrosname}{Lista de quadros}

\newfloat[chapter]{quadro}{loq}{\quadroname}
\newlistof{listofquadros}{loq}{\listofquadrosname}
\newlistentry{quadro}{loq}{0}

% configurações para atender às regras da ABNT
\setfloatadjustment{quadro}{\centering}
\counterwithout{quadro}{chapter}
\renewcommand{\cftquadroname}{\quadroname\space} 
\renewcommand*{\cftquadroaftersnum}{\hfill--\hfill}

\setfloatlocations{quadro}{hbtp} % Ver https://github.com/abntex/abntex2/issues/1


Não é float nem trivfloat, é newfloat o pacote usado para definir o ambiente quadro. Mas ele não está declarado no cabeçalho, então deve estar sendo invocado pela classe abntex2.

Nesse caso, nada mais deveria ser necessário já que se está usando quadro, mas o problema é que o newfloat aparentemente não suporta a opção [H] como o float e o trivfloat. No manual do newfloat as opções do são somente h (here), t (top). b (bottom), p (page).

Sugiro tentar

\begin{quadro}[h!]

Rogério Nunes Wolff






Rogério Nunes Wolff

unread,
Jun 29, 2023, 10:32:22 AM6/29/23
to abn...@googlegroups.com
Relendo as mensagens de erro com cuidado, vi que há uma linha com erro que é

\begin{quadro}[!ht]

o [t] põe o quadro no topo da página. Deixa só

\begin{quadro}[!h]

Outro problema é

\begin{document} ended by \end{quadro}.

O que deve ser resultante da tentativa de usar o float. Resumindo: tira o float e experimenta somente [!h] na opção do quadro.

O que acontence?

Rogério Nunes Wolff

Lucas Martins Soares

unread,
Jul 1, 2023, 11:58:26 AM7/1/23
to abnTeX2
utilizando o [!ht] funciona somente se a imagem couber na pagina atual, se não, ela é inserida no topo da página seguinte no meio do parágrafo.
Reply all
Reply to author
Forward
0 new messages