如何設定水平字幕?

如何設定水平字幕?

我曾經手動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

這裡有兩個問題。首先,您需要移動影像以對齊它們的軸。其次,您需要使子圖認為它們的大小相同。

\raisebox命令主要透過移動基線來移動影像,但也可以更改其高度和深度,這在忽略基線(如子圖)的環境中更有用。此\makebox指令可以改變影像的有效寬度。因此,在兩者之間,您應該能夠協調一切。

以下不是您無法存取影像的特定問題的解決方案,而是說明如何移動影像而不讓 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以及在第二個和第三個圖像之間插入空白行。這樣第二行圖像就被明確定義了。為了使圖像之間有更多空間,我在第二行命令之前添加\medskip

由於我沒有你的圖像,我使用demo中的選項\documentclass。在真實文件中,您需要將其刪除。

graphics另外,您應該加載而不是包graphicx

相關內容