Legenda multilinha para figuras largas no modelo IEEE Access Latex

Legenda multilinha para figuras largas no modelo IEEE Access Latex

Modelo de látex do IEEE Accessusa sua própria classe de figura chamada\Figure

\Figure[t!](topskip=0pt, botskip=0pt, midskip=0pt){fig1.png}{<caption>\label{fig1}}

Este comando é para figuras largas, ou seja, figuras que ocupam duas colunas. (Para figuras com largura de coluna, a sintaxe [width=\columnwidth]é inserida antes de {fig1.png})

Surge um problema quando a legenda é maior que a largura da área imprimível do papel. Ele se estende além da página como uma única linha.

Este problema não ocorre para figuras de largura de coluna com legendas longas. Ele converte automaticamente para uma multilinha.

Esta postagemfornece uma solução alternativa, mas altera o tipo e o tamanho da fonte.

Então, decidi fazer minha própria pesquisa e tentei dar uma olhada no ieeeaccess.clsarquivo (que você também pode encontraraqui). Mas sou um novato completo em arquivos .cls. Tenho uma forte sensação de que algo está faltando no ieeeaccess.clsarquivo da Captionsseção.

Lê-se como

%%%
%Captions
\def\@IEEEtablestring{table}

\long\def\@makecaption#1#2{%
% test if is a for a figure or table
\ifx\@captype\@IEEEtablestring%
% if a table, do table caption
\begin{flushleft}
\vspace*{5pt}
{\vss\color{accessblue}\tablecapheadfont #1. \ }{\raggedright\tablecapfont#2\vss}%
\end{flushleft}
\@IEEEtablecaptionsepspace% V1.6 was a hard coded 8pt
% if not a table, format it as a figure
\else
\@IEEEfigurecaptionsepspace% V1.6 was a hard coded 5pt
% 3/2001 use footnotesize, not small; use two nonbreaking spaces, not one
\setbox\@tempboxa\hbox{\strut{\color{accessblue}\figcapheadfont #1. \ }\raggedright\figcapfont#2\strut}%
%\ifdim \wd\@tempboxa >\columnwidth%
\ifdim \xfigwd >\columnwidth%
% if caption is longer than a line, let it wrap around
\setbox\@tempboxa\hbox{{\color{accessblue}\figcapheadfont #1. \ }}%
\mbox{}\hfill\begin{tabular}{@{}l@{}}\noindent\raggedright\unhbox\@tempboxa\figcapfont#2\end{tabular}\hfill\mbox{}%
% if caption is shorter than a line,
% allow user to control short figure caption justification (left or center)
\else%
%\ifcenterfigcaptions \hbox to\hsize{\footnotesize\hfil\box\@tempboxa\hfil}%
%\else 
\setbox\@tempboxa\hbox{{\color{accessblue}\figcapheadfont #1. \ }}%
%\parbox[t]{\columnwidth}
{\vss\raggedright\noindent\unhbox\@tempboxa\figcapfont#2\vss}%
%\hbox to\hsize{\box\@tempboxa\hfil}%
%\fi
\fi\fi\vskip 1pt plus 1pt minus 1pt}

Sinto que deveria haver um aninhado elseifpara verificar a condição \ifdim \xfigwd >\textwidth%.

No entanto, parece que não encontrei nada sobrenested \ifdim.

Como afirmei anteriormente, sou um novato completo em .clsarquivos e sua sintaxe. E minhas observações podem muito bem estar erradas.

Alguém familiarizado com .clsa sintaxe compartilha as mesmas observações que as minhas e, esperançosamente, sabe o que pode ser alterado no .clsarquivo para tornar possíveis legendas multilinhas para figuras largas?

Desde já, obrigado.

Responder1

Ok, depois de mexer no ieeeaccess.clsarquivo, descobri que a substituição \columnwidthpor \textwidthpermite que várias linhas apareçam (magicamente) para uma figura larga, bem como para uma figura com largura de coluna.

Então, na Captionseção, basta substituir a linha

\ifdim \xfigwd >\columnwidth%

com

\ifdim \xfigwd >\textwidth%

Observe que ainda não tenho certeza de por que isso funciona (mas funciona). Deixo a explicação técnica para os especialistas.

Dito isto, também não atrapalha o tipo e o tamanho da fonte que o IEEE Access define, que é o que eu queria.

Ps: Se alguém achar esta solução incorreta, explicar o porquê e fornecer uma solução sólida, terei prazer em remover a minha. (Ainda será minha solução preferida no momento :)). E espero que o IEEE Access tome nota deste problema.

[ATUALIZAR]

Funciona com \linewidth%também. Obrigado ao usuário @Zarko por essa sugestão.

informação relacionada