
以前は上の数字を下の数字と手動で揃えていましたvspace and hspace
が、上のサブキャプションは上のサブ数字と一緒に動きません。下の数字やサブキャプションのような数字の中心にある上のサブキャプションを見つけるには、どのコマンドを使用する必要がありますか。
\documentclass{elsarticle}
\usepackage{graphics}
\usepackage[justification=centering]{caption}
\usepackage{subcaption}
\usepackage{caption}
\begin{document}
\begin{figure}[b]
\setlength\abovecaptionskip{+0.4\baselineskip}
\centering
\begin{subfigure}[b]{0.34\linewidth}
\vspace*{-0mm}\hspace*{-7mm}
\includegraphics[width=\linewidth]{1.eps}
\hspace*{\fill}\caption{airfoils shape}
\end{subfigure}
\begin{subfigure}[b]{0.34\linewidth}
\vspace*{-0mm}\hspace*{1mm}
\includegraphics[width=\linewidth]{2.eps}
\caption{Surface pressure distributions}
\end{subfigure}
\begin{subfigure}[b]{0.4\linewidth}
\includegraphics[width=\linewidth]{3.png}
\caption{Initial and Optimum airfoil results}
\end{subfigure}
\begin{subfigure}[b]{0.4\linewidth}
\includegraphics[width=\linewidth]{4.png}
\caption{Initial and Optimum airfoil results}
\end{subfigure}
\caption{Initial and Optimum airfoil results Initial and Optimum airfoil results Initial and Optimum airfoil results}
\label{fig7}
\end{figure}
\end{document}
答え1
ここで問題が 2 つあります。まず、軸を揃えるために画像を移動する必要があります。次に、サブ図に画像がすべて同じサイズであると認識させる必要があります。
この\raisebox
コマンドは、主にベースラインを移動することで画像を移動しますが、高さと奥行きを変更することもできます。これは、ベースラインを無視する環境 (サブ図など) でより便利です。この\makebox
コマンドは、画像の有効幅を変更できます。したがって、この 2 つを使用すると、すべてを揃えることができるはずです。
以下は、画像にアクセスできないという特定の問題に対する解決策ではなく、LaTeX に画像が移動されたことを知らせずに画像を移動する方法の実例です。
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\movebox}{momom}% #1 = raise distance
% #2 = effective total height (optional)
% #3 = slide distance (positive right}
% #4 = effective width (optional)
% #5 = contents
{\bgroup
\sbox0{#5}%
\IfNoValueTF{#2}{\dimen0=\dimexpr \ht0+\dp0}{\dimen0=#2\relax}%
\IfNoValueTF{#4}{\dimen1=\wd0}{\dimen1=#4\relax}%
\raisebox{#1}[\dimexpr \dimen0-\dp0][\dp0]% for images \dp0=0pt
{\makebox[\dimen1][l]{\hspace{#3}\box0}}%
\egroup}
\begin{document}
Move a box to right without letting \verb|\fbox| know it moved.
\fbox{\movebox{0pt}{2em}{\rule{1em}{1ex}}}
Move a box to left without letting \verb|\fbox| know it moved.
\fbox{\movebox{0pt}{-2em}{\rule{1em}{1ex}}}
Move a box down without letting \verb|\fbox| know it moved.
\fbox{\movebox{-\baselineskip}{0pt}{\rule{1em}{1ex}}} baseline
\end{document}
答え2
このような?
\documentclass[demo]{elsarticle}
\usepackage{graphicx}
\usepackage[justification=centerlast]{caption}
\usepackage{subcaption}
\begin{document}
\begin{figure}[b]
%\setlength\abovecaptionskip{0.4\baselineskip}
\centering
\begin{subfigure}[b]{0.4\linewidth}
\includegraphics[width=\linewidth]{1.eps}
\caption{airfoils shape}
\end{subfigure}
\hfil
\begin{subfigure}[b]{0.4\linewidth}
\includegraphics[width=\linewidth]{2.eps}
\caption{Surface pressure distributions}
\end{subfigure}
\medskip
\begin{subfigure}[b]{0.4\linewidth}
\includegraphics[width=\linewidth]{3.png}
\caption{Initial and Optimum airfoil results}
\end{subfigure}
\hfil
\begin{subfigure}[b]{0.4\linewidth}
\includegraphics[width=\linewidth]{4.png}
\caption{Initial and Optimum airfoil results}
\end{subfigure}
\caption{Initial and Optimum airfoil results Initial and Optimum airfoil results Initial and Optimum airfoil results}
\label{fig7}
\end{figure}
\end{document}
ご覧のとおり、MWE に小さな変更を加えました。すべてのコマンド\vspace*
と\hspace*
コマンドを削除し、画像間に挿入し\hfil
、2 番目と 3 番目の画像の間に空の行を挿入します。これにより、2 行目の画像が適切に定義されます。画像間のスペースを増やすには、2 行目の前にコマンドを追加します\medskip
。
あなたの画像がないので、オプションを使用しますdemo
。\documentclass
実際のドキュメントでは、それを削除する必要があります。
graphics
また、パッケージの代わりにロードする必要がありますgraphicx