Latex-Vorlage von IEEE Accessverwendet eine eigene Figurenklasse namens\Figure
\Figure[t!](topskip=0pt, botskip=0pt, midskip=0pt){fig1.png}{<caption>\label{fig1}}
Dieser Befehl ist für breite Abbildungen, also Abbildungen, die sich über zwei Spalten erstrecken. (Bei spaltenbreiten Abbildungen [width=\columnwidth]
wird die Syntax vor {fig1.png} eingefügt.)
Ein Problem entsteht, wenn die Überschrift länger als die Breite des druckbaren Bereichs des Papiers ist. Sie geht dann als einzelne Zeile über die Seite hinaus.
Bei spaltenbreiten Abbildungen mit langen Überschriften tritt dieses Problem nicht auf. Sie werden automatisch in mehrzeilige Abbildungen umgewandelt.
Dieser Beitragbietet eine Problemumgehung, bringt jedoch Schriftart und Schriftgröße durcheinander.
Also beschloss ich, meine eigenen Nachforschungen anzustellen und versuchte, in die ieeeaccess.cls
Datei zu schauen (die Sie auch finden könnenHierieeeaccess.cls
). Aber ich bin ein absoluter Neuling, was .cls-Dateien angeht. Ich habe das starke Gefühl, dass in der Datei unter diesem Abschnitt etwas fehlt Captions
.
Es lautet wie folgt
%%%
%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}
Ich habe das Gefühl, dass es eine verschachtelte Möglichkeit geben sollte, elseif
den Zustand zu überprüfen \ifdim \xfigwd >\textwidth%
.
Ich finde jedoch nichts bezüglichnested
\ifdim.
Wie ich bereits sagte, bin ich ein absoluter Neuling, was .cls
Dateien und deren Syntax angeht. Und meine Beobachtungen könnten durchaus falsch sein.
Hat jemand, der sich mit Syntax auskennt .cls
, zufällig die gleichen Beobachtungen gemacht wie ich und weiß hoffentlich, was in der .cls
Datei geändert werden kann, um mehrzeilige Beschriftungen für breite Abbildungen zu ermöglichen?
Dank im Voraus.
Antwort1
ieeeaccess.cls
Okay, nachdem ich also ein wenig mit der Datei herumgespielt hatte , fand ich heraus, dass das Ersetzen \columnwidth
durch \textwidth
(wie durch Zauberei) das Erscheinen mehrerer Zeilen sowohl für eine breite als auch für eine spaltenbreite Abbildung ermöglicht.
Ersetzen Sie also unter dem Caption
Abschnitt einfach die Zeile
\ifdim \xfigwd >\columnwidth%
mit
\ifdim \xfigwd >\textwidth%
Beachten Sie, dass ich immer noch nicht sicher bin, warum dies funktioniert (aber es funktioniert). Die technische Erklärung überlasse ich den Experten.
Allerdings werden dadurch auch die von IEEE Access festgelegte Schriftart und Schriftgröße nicht durcheinandergebracht, was ich auch wollte.
P.S.: Wenn jemand diese Lösung falsch findet, erklärt, warum das so ist, und eine vernünftige Lösung anbietet, werde ich meine gerne entfernen. (Im Moment wird sie noch immer meine bevorzugte Lösung sein:)). Und ich hoffe, dass IEEE Access dieses Problem zur Kenntnis nimmt.
[AKTUALISIEREN]
Funktioniert \linewidth%
auch mit. Danke an Benutzer @Zarko für diesen Vorschlag.