在Elsevier 新出的cas-dc
的双栏模板中,如果插入并排图片会出现标题错位的情况,如下图:
之前想修复,参考了以下回答也没用。
Placing three figures side by side, each with its own caption
\begin{figure*}
\begin{minipage}[t]{0.48\linewidth}
\includegraphics[width=\linewidth]{figs/Fig1.pdf}
\caption{Problems due to rivet aging}
\label{fig-problemofrivet}
\end{minipage}
\hfill
\begin{minipage}[t]{0.48\linewidth}
\includegraphics[width=\linewidth]{figs/Fig1.pdf}
\caption{Example of rivet replacement by the bolt}
\label{fig-rivetrepla}
\end{minipage}
\end{figure*}
解决方案
这是由于Elsevier
cas-dc
的硬性设计有缺陷而导致的
具体的构造包是→cas-common.sty
在导言区加入以下补丁,可以解决这个问题,如下:
虽然不太建议这么做。
\ExplSyntaxOn
\exp_args:NNno \exp_args:Nno \use:n { \cs_gset:Npn \__make_fig_caption:nn #1#2 }
{
\exp_after:wN \use_ii_i:nn \exp_after:wN
{ \__make_fig_caption:nn {#1} {#2} }
{ \dim_set:Nn \l_fig_width_dim \linewidth }
}
\exp_args:NNno \exp_args:Nno \use:n { \cs_gset:Npn \__make_tbl_caption:nn #1#2 }
{
\exp_after:wN \use_ii_i:nn \exp_after:wN
{ \__make_tbl_caption:nn {#1} {#2} }
{ \dim_set:Nn \l_tbl_width_dim \linewidth }
}
\ExplSyntaxOff
修复实例
\documentclass[]{cas-dc}
\newlength\bibsep % class is broken...
\ExplSyntaxOn
\exp_args:NNno \exp_args:Nno \use:n { \cs_gset:Npn \__make_fig_caption:nn #1#2 }
{
\exp_after:wN \use_ii_i:nn \exp_after:wN
{ \__make_fig_caption:nn {#1} {#2} }
{ \dim_set:Nn \l_fig_width_dim \linewidth }
}
\exp_args:NNno \exp_args:Nno \use:n { \cs_gset:Npn \__make_tbl_caption:nn #1#2 }
{
\exp_after:wN \use_ii_i:nn \exp_after:wN
{ \__make_tbl_caption:nn {#1} {#2} }
{ \dim_set:Nn \l_tbl_width_dim \linewidth }
}
\ExplSyntaxOff
\usepackage{duckuments}
\begin{document}
\blindduck[all]
\begin{figure*}
\begin{minipage}[t]{0.48\linewidth}
\includegraphics[width=\linewidth]{example-image-duck}
\caption{Problems due to rivet aging\label{fig-problemofrivet}}
\end{minipage}
\hfill
\begin{minipage}[t]{0.48\linewidth}
\includegraphics[width=\linewidth]{example-image-duck}
\caption{Example of rivet replacement by the bolt\label{fig-rivetrepla}}
\end{minipage}
\end{figure*}
\blindduck[all]
\end{document}