![IEEE Access Latex 模板中宽图的多行标题](https://linux22.com/image/400220/IEEE%20Access%20Latex%20%E6%A8%A1%E6%9D%BF%E4%B8%AD%E5%AE%BD%E5%9B%BE%E7%9A%84%E5%A4%9A%E8%A1%8C%E6%A0%87%E9%A2%98.png)
IEEE Access 的 Latex 模板使用自己的图形类名为\Figure
\Figure[t!](topskip=0pt, botskip=0pt, midskip=0pt){fig1.png}{<caption>\label{fig1}}
此命令适用于宽图,即跨越两列的图。(对于列宽图,语法[width=\columnwidth]
插入在 {fig1.png} 之前)
当标题的长度超过纸张可打印区域的宽度时,就会出现问题。它会以一行的形式超出页面范围。
对于带有长标题的列宽图形,不会出现此问题。它会自动转换为多行。
这个帖子提供了一种解决方法,但它会弄乱字体类型和字体大小。
因此,我决定自己做研究,并尝试查看该ieeeaccess.cls
文件(您也可以找到这里)。但我对 .cls 文件完全是菜鸟。我强烈感觉到ieeeaccess.cls
该Captions
部分下的文件中缺少了一些东西。
它的内容如下
%%%
%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}
我感觉应该有一个嵌套elseif
来检查条件\ifdim \xfigwd >\textwidth%
。
然而,我似乎没有找到任何关于nested
\如果dim。
正如我之前所说,我对文件及其语法完全一窍不通.cls
。我的观察很可能是错误的。
是否有人熟悉.cls
语法,碰巧与我有相同的观察结果,并且希望知道可以在.cls
文件中进行哪些更改,以使宽图能够出现多行标题?
提前致谢。
答案1
好的,在摆弄了文件之后ieeeaccess.cls
,我发现\columnwidth
用替换\textwidth
可以允许多行(神奇地)出现在宽图形和列宽图形中。
因此,在Caption
部分下,只需将行替换为
\ifdim \xfigwd >\columnwidth%
和
\ifdim \xfigwd >\textwidth%
请注意,我仍然不确定为什么这是有效的(但确实有效)。我把技术解释留给专家。
话虽如此,它也不会弄乱 IEEE Access 设置的字体类型和字体大小,这正是我想要的。
附言:如果有人发现这个解决方案不正确,并解释其原因,并提供合理的解决方案,我将很乐意删除我的解决方案。(目前它仍然是我的首选解决方案:))。我希望 IEEE Access 注意到这个问题。
[更新]
也可以使用\linewidth%
。感谢用户@Zarko 的建议。