Como colocar imagens abaixo do título?

Como colocar imagens abaixo do título?

O código abaixo produz 3 imagens uma ao lado da outra, com cada imagem tendo uma legenda e terminando com uma legenda geral abaixo de todas as 3 imagens.

Meu documento tem um título com bloco de autor, depois um resumo e algumas seções com parágrafos de texto. Quando compilo este código, meu texto doIntroduçãopreenche a primeira página e minhas imagens são enviadas para o topo da próxima página. Além disso, o documento usa 2 colunas (daí o asterisco depois figure).

Como posso posicionar as imagens acima do resumo, abaixo do título?

\documentclass{IEEEtran}

\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{float}
\usepackage{graphicx}
\usepackage{subcaption}

 \usepackage[super]{nth}
 
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
    
\begin{document}

\graphicspath{ {./images/} }

\title{foo}

\makeatletter
\setlength{\@fptop}{0pt}
\makeatother

\author{\IEEEauthorblockN{foo}
\IEEEauthorblockA{\textit{foo} \\
foo, foo \\
foo}
}

\maketitle
\begin{figure*}[!th]
    \centering
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{11\% of full render time}
        \label{fig:sceneProgressA}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{52\% of full render time}
        \label{fig:sceneProgressB}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{Full render time}
        \label{fig:sceneProgressC}
    \end{subfigure}
    \caption{Pictures of streaming progress}
    \label{fig:rendering_progress}
\end{figure*}

\begin{abstract}
Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.
\end{abstract}

\section{Introduction}

Foo bar baz.


\end{document}

O que eu tentei?

  • floatpacote usando [H]depoisfigure*
  • Mudando a posição de\maketitle
  • Use minipáginas

O que isso parece:

imagem mostrando as imagens sendo colocadas no topo da próxima página, em vez de entre o título e o resumo

Como deveria ser:

imagem mostrando um exemplo photoshopado das imagens entre o título e o resumo

Omiti a maior parte do texto por questões de privacidade. Lembre-se de que sou novo no LaTeX.

Agradeço antecipadamente.

EDITAR: Se você alterar IEEEtran para artigo, as imagens parecerão posicionadas corretamente (quase), mas não acho que possa mudar isso.

Responder1

Você pode conectar-se a \@maketitle, essa é a macro responsável por imprimir o título.

No entanto, existem algumas coisas que você deve estar ciente:

  1. hyperrefdeveria ir por último
  2. captione subcaptionsãonãocompatível com IEEEtraneles e seu uso faz com que todas as legendas sejam escritas em um estilo que não é desejado pelo IEEE, o que pode provocar a rejeição de seu envio. Você pode ver na imagem abaixo que o estilo do IEEE é ter as legendas alinhadas à esquerda, nunca centralizadas como se fossem impressas se você carregar caption(talvez através de subcaption). Com
\usepackage[caption=false]{subfig}

o problema desaparece. No entanto, a sintaxe para subfloats é diferente, consulte o código.

Também coloquei comentários ao lado de alguns pacotes desativados.

\documentclass{IEEEtran}

\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithm}
\usepackage{algorithmic}
%\usepackage{textcomp}% useless
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{float}
\usepackage{graphicx}
\usepackage[super]{nth}
%\usepackage{subcaption} % not compatible with IEEEtran
\usepackage[caption=false]{subfig}
\usepackage{capt-of}
\usepackage{hyperref}% should go last

% this is just for this example
\usepackage{lipsum}

% hook into \@maketitle to add the wanted figure
\AddToHook{cmd/@maketitle/after}{\ADDINITIALFIGURE}
% the code for the figure
\newcommand{\ADDINITIALFIGURE}{%
  % we want to emulate a fixed float
  \begin{minipage}{\textwidth}
    \vspace*{0.5\baselineskip}
    % pretend we're inside figure
    \expandafter\def\csname @captype\endcsname{figure}%
    % insert the subfloats
    \subfloat[11\% of full render time\label{fig:sceneProgressA}]{%
      \includegraphics[width=0.3\textwidth]{example-image}%
    }\hfill
    \subfloat[52\% of full render time\label{fig:sceneProgressB}]{%
      \includegraphics[width=0.3\textwidth]{example-image}%
    }\hfill
    \subfloat[Full render time\label{fig:sceneProgressC}]{%
      \includegraphics[width=0.3\textwidth]{example-image}%
    }
    % the text is processed a few times, so we reset the counter each time
    \setcounter{figure}{0}
    \captionof{figure}{Pictures of streaming progress\label{fig:rendering_progress}}
  \end{minipage}}

\graphicspath{ {./images/} }
 
\begin{document}

\title{foo}

\author{\IEEEauthorblockN{foo}
\IEEEauthorblockA{\textit{foo} \\
foo, foo \\
foo}
}

\maketitle



\begin{abstract}
Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.
\end{abstract}

\section{Introduction}

\lipsum[1][1-3]

\begin{figure}[ht]

\includegraphics[width=\columnwidth]{example-image}
\caption{Test caption}

\end{figure}

\lipsum

\end{document}

insira a descrição da imagem aqui

Não é relevante, mas por razões misteriosas o modelo fornecido pelo IEEE contém a parte boba

\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

o que é errado em muitos aspectos e, acima de tudo, é completamente inútil. Remova. Além disso, a instrução \graphicspathestá melhor colocada no preâmbulo, pois é uma configuração global.

Responder2

O LaTeX fornece flutuadores que abrangem colunas apenas com opções te/ou p, mas não h. Além disso, a opção Hde pacote floatnão pode ser usada com figure*ou table*(ou a versão estrela de outros novos carros alegóricos definidos).

Você poderia usar o \twocolumntruque e evitar usar um float:

\documentclass{IEEEtran}

\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{float}
\usepackage{graphicx}
\usepackage{subcaption}

 \usepackage[super]{nth}
 
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\begin{document}

\graphicspath{ {./images/} }

\title{foo}

\makeatletter
\setlength{\@fptop}{0pt}
\makeatother

\author{\IEEEauthorblockN{foo}
\IEEEauthorblockA{\textit{foo} \\
foo, foo \\
foo}
}

\twocolumn[{%
  \csname @twocolumnfalse\endcsname
  \maketitle
  \captionsetup{type=figure}% Tell (sub)caption, that this is a figure
    \centering
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{11\% of full render time}
        \label{fig:sceneProgressA}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{52\% of full render time}
        \label{fig:sceneProgressB}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{Full render time}
        \label{fig:sceneProgressC}
    \end{subfigure}
    \caption{Pictures of streaming progress}
    \label{fig:rendering_progress}
}]

\begin{abstract}
Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.
\end{abstract}

\section{Introduction}

Foo bar baz.

\end{document}

usando o truque \twocolumn

Como alternativa você pode usar indevidamente \author, mas neste caso você também terá que corrigir manualmente o número da figura:

\documentclass{IEEEtran}

\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{float}
\usepackage{graphicx}
\usepackage{subcaption}

 \usepackage[super]{nth}
 
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\begin{document}

\graphicspath{ {./images/} }

\title{foo}

\makeatletter
\setlength{\@fptop}{0pt}
\makeatother

\author{\IEEEauthorblockN{foo}
\IEEEauthorblockA{\textit{foo} \\
foo, foo \\
foo}
\vskip 2\baselineskip
\begin{minipage}{\textwidth}
  \setcounter{figure}{0}% Otherwise, you will get Fig. 3 instead of Fig. 1!!!
  \captionsetup{type=figure}% Tell (sub)caption, that this is a figure
    \centering
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{11\% of full render time}
        \label{fig:sceneProgressA}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{52\% of full render time}
        \label{fig:sceneProgressB}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{Full render time}
        \label{fig:sceneProgressC}
    \end{subfigure}
    \caption{Pictures of streaming progress}
    \label{fig:rendering_progress}
\end{minipage}
}

  \maketitle

\begin{abstract}
Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.
\end{abstract}

\section{Introduction}

Foo bar baz.


\end{document}

Por último, mas não menos importante, você pode usar package stfloatspara colocar a figurano fundoda primeira página:

\documentclass{IEEEtran}

\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{float}
\usepackage{graphicx}
\usepackage{subcaption}

\usepackage{blindtext}

 \usepackage[super]{nth}
 
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\usepackage{stfloats}

\begin{document}

%\graphicspath{ {./images/} }

\title{foo}

\makeatletter
\setlength{\@fptop}{0pt}
\makeatother

\author{\IEEEauthorblockN{foo}
\IEEEauthorblockA{\textit{foo} \\
foo, foo \\
foo}
}

\maketitle
\begin{figure*}[b]
    \centering
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{11\% of full render time}
        \label{fig:sceneProgressA}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{52\% of full render time}
        \label{fig:sceneProgressB}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{0.3\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \caption{Full render time}
        \label{fig:sceneProgressC}
    \end{subfigure}
    \caption{Pictures of streaming progress}
    \label{fig:rendering_progress}
\end{figure*}

\begin{abstract}
Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.Foo bar baz.
\end{abstract}

\section{Introduction}

\Blindtext[5]


\end{document}

usando stfloats

O pacote dblfloatfixque também sugeri no meu primeiro comentário à sua pergunta parece não funcionar com o IEEEtran. Se você substituir \usepackage{stfloats}por \usepackage{dblfloatfix}, a figura ainda será impressa no topo da segunda página.

AFAIK, não existe nenhum pacote que suporte flutuadores que abrangem colunas com a opção h(ou H). Então, IMHO, você precisa usar um dos truques, também conhecido como hacks, ou uma figura colocada na parte inferior stfloatsou uma figura colocada no topo dopróximopágina.

informação relacionada