サブキャプションを水平に設定するにはどうすればよいですか?

サブキャプションを水平に設定するにはどうすればよいですか?

以前は上の数字を下の数字と手動で揃えていました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

関連情報