
Overleaf で Elsevier の cas-dc クラスを使用しています。2 列の紙にいくつかのサブ図を含む図を配置したいのですが、コードは次のとおりです。
\documentclass[a4paper,fleqn,twocolumn]{cas-dc}
\usepackage{natbib}
\usepackage{adjustbox}
\usepackage{appendix,booktabs}
\usepackage{lipsum}
\usepackage{mathtools, cuted}
\usepackage{autobreak}
\usepackage[utf8]{inputenc}
\usepackage{nccmath}
\usepackage{lipsum}
\usepackage{flushend}
\usepackage{amsmath}
\usepackage{afterpage}
\usepackage{url}
\usepackage{amsfonts,amsmath,amssymb,amstext,amsthm,xspace,pdfsync,enumerate,graphicx}
\usepackage{float}
\usepackage{algpseudocode}
\usepackage{siunitx}
\usepackage[ruled]{algorithm}
\usepackage[font=footnotesize,labelfont=bf]{caption}
\usepackage[font=footnotesize,labelfont=bf]{subcaption}
\allowdisplaybreaks
\PassOptionsToPackage{noend}{algpseudocode}% comment out if want end's to show
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\errorcontextlines\maxdimen
\begin{document}
\lipsum[11]
\begin{figure*}
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=7cm,height=6cm]{10.png}
\caption{ 10 }
\label{10}
\end{subfigure}
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=7cm,height=6cm]{100.png}
\caption{ 100 }
\label{100}
\end{subfigure}
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=7cm,height=6cm]{500.png}
\caption{500}
\label{500}
\end{subfigure}
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=7cm,height=6cm]{1000.png}
\caption{1000}
\label{1000}
\end{subfigure}
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[width=7cm,height=6cm]{5000.png}
\caption{5000}
\label{5000}
\end{subfigure}
\caption{Comparison }
\label{Comparison }
\end{figure*}
\end{document}
しかし、すべての図が 1 つの列に表示され、そのうちの 2 つとキャプションがページ外 (脚注の下) に表示され、見えません。cas-dc の代わりに elsarticle クラスを使用すると、次のようになります。
\documentclass[a4paper,fleqn]{elsarticle}
正常に動作し、すべてのサブ数値が 2 列に表示されます。cas-dc クラスの問題を修正するにはどうすればよいですか?
答え1
ドキュメント クラスにcas-dc
はいくつかのパッケージ (例graphicx
) が含まれており、それらを再定義します。また、参考文献に関連するパッケージなど、いくつかのパッケージをプリアンブルにロードする必要もあります。
コードを再配置するとfigure
、次の結果が得られます。
MWE:
\documentclass[demo,
a4paper,fleqn]
{cas-dc} % this give one column document
% regardless that it is declared
% as two columns document
\usepackage{subcaption}
\usepackage{natbib} % cas-cd require that this or similar bib package is loaded
\usepackage{lipsum} %
\begin{document}
\lipsum[11]
\begin{figure}
\centering
\setkeys{Gin}{width=\linewidth,height=6cm} %set image parameters
\begin{subfigure}{6cm}
\includegraphics{10.png}
\caption{ 10 }
\label{10}
\end{subfigure}
\hfil
\begin{subfigure}{6cm}
\includegraphics{100.png}
\caption{ 100 }
\label{100}
\end{subfigure}
\medskip
\begin{subfigure}{6cm}
\includegraphics{500.png}
\caption{500}
\label{500}
\end{subfigure}
\hfill
\begin{subfigure}{6cm}
\includegraphics{1000.png}
\caption{1000}
\label{1000}
\end{subfigure}
\medskip
\begin{subfigure}{6cm}
\includegraphics{5000.png}
\caption{5000}
\label{5000}
\end{subfigure}
%
\caption{Comparison }
\label{Comparison }
\end{figure}
\end{document}
編集: 2 列のドキュメントが必要な場合は、オプション ˙twocolumn` int ドキュメント クラス オプションを追加する必要があります。
\documentclass[demo,
a4paper,fleqn,
twocolumn]{cas-dc}% now the document has two columns
2列以上の数字の場合は、ドキュメントの例で使用しているように、代わりにfigure
floatを使用します。この変更により、結果は次のようになります。figure*
編集 (2)
理由は不明ですが、cas-dc
オプションなしでは 2 列のドキュメントは生成されませんtwocolumn
(MikTeX のローカル インストールと Overleaf サービスでテスト済み)。いずれにしても、2 番目の例には 2 つの列があり、画像は取得方法に関係なく 2 列のテキストにまたがって表示されます。
補遺: ドキュメントの序文に、いくつかのパッケージが重複しており、順序が間違っています。そのため、より一貫したパターンになるようにクリーンアップして再編成しようとしています。ここで疑問に思うのは、これらすべてのパッケージが本当に必要なのかということです。
次の前文があなたにとって役立つかどうか確認してください。
\documentclass[demo,
a4paper,fleqn,
twocolumn]{cas-dc}
%\usepackage[utf8]{inputenc} at new LaTeX version it is default
\usepackage{natbib}
%math
\usepackage{nccmath, mathtools} % nccmath had to be first, than mathtools
\allowdisplaybreaks
\usepackage{amssymb,amsthm,xspace}
\usepackage{autobreak} % not recommended
% tables, units
\usepackage{booktabs}
\usepackage{siunitx}
% lists
\usepackage{enumerate}
% miscellaneous
\usepackage{appendix}
\usepackage{flushend}
\usepackage{afterpage}
\usepackage{cuted, float}
\usepackage{adjustbox}
\usepackage[font=footnotesize,labelfont=bf]{subcaption}
% algorithms
\usepackage{algpseudocode}
\PassOptionsToPackage{noend}{algpseudocode}% comment out if want end's to show
\usepackage[ruled]{algorithm}
\usepackage{url}
\errorcontextlines\maxdimen
\usepackage{lipsum} % for dummy text, not needed in real document