我需要将标题和图片相对于文本而不是页面居中,但它总是忽略边距条件

我需要将标题和图片相对于文本而不是页面居中,但它总是忽略边距条件

以下是我的报告:

\documentclass[12pt]{report}
\usepackage{graphicx}
\bibliographystyle{unsrt}
\usepackage{fmtcount}
\usepackage[left=3cm,top=3cm,right=3cm,bottom=3cm]{geometry}
\usepackage{setspace}
\usepackage{enumerate}
\usepackage{amsmath, amsthm}
\usepackage{rotating}
\usepackage{float}
\usepackage{color}
\usepackage{multirow}
\usepackage{arydshln}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
            \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}

下面是一张图:

\begin{figure}[!ht]
\centering
\includegraphics[width=0.7\textwidth]{content_before_after}
\caption{Thermal desorption analysis data of SCM420 H steel subjected to hydrogen ingress from the decomposition of two different oil compositions, the composition of which were undisclosed \cite{19}.}
\label{fig:content_before_after}
\end{figure}

结果:

在此处输入图片描述

我想要的是让图片和标题居中于文本,而不是像现在这样居中于页面!如能得到任何帮助,不胜感激。

答案1

作为环境的浮动元素figure始终具有等于 \textwidth或的宽度\columnwith(在一列文档中是相同的值,在文章文档类中默认为 345pt)。

另一个长度是\linewidth,默认情况下也是相同的(也是 345pt)。但是,如果您制作列表或其他东西来减少文本宽度,很可能您不会更改,\textwidth\columnwith会更改\linewidth。例如,在 itemize 环境中\linewidth更改为大约 320pt,但\columnwith仍保持在 345pt)。

那么你至少有两个选择:

  1. 使用浮点数,但内部将图像和标题的可用空间减少到实际的\linewidth。然后您需要在文本中获取该维度,接近最终浮点位置,并将其存储为新长度(表示\lwr),因为浮点数内部\linewidth将返回到原始值。最后,您可以使用右对齐\parboxminipage 宽度等于 \lwr 的环境。

  2. 不要使用浮动,而是使用capt-of包。标题将只占用实际的宽度\linewidth,小标题将自动居中。对于图像,使用等于\linewidth或小于居中图像的宽度,但永远不要使用其他相对长度\linewidth。这总是有效的,同时使用\textwith\columnwidth可能有效,或者可能留下并且图像比预期的更大。

姆韦

\documentclass{article}
\usepackage{capt-of} % do not use caption package in this case
\usepackage{xcolor} % just to show the margin
\usepackage{lipsum} % just for dummy text
\usepackage{graphicx}
\def\captext{Some caption text that will fill more 
than one line of this wonderfull example.}
\newlength{\lwr}

\begin{document}
\begin{itemize}
\item\makebox(0,-50)[t]{\color{red!20}\rule{2pt}{11cm}}% 
\setlength{\lwr}{\linewidth}%
\lipsum[4] % dummy text with some indentation

% Figure that take the full width:
\begin{figure}[h]
\centering
\includegraphics[height=1cm]{example-image-a}\hfill
\includegraphics[height=1cm]{example-image-b}
\caption{\captext}
\end{figure}

% Alternative with float
\begin{figure}[h]
\hfill\parbox{\lwr}{
\includegraphics[height=1cm]{example-image-a}\hfill
\includegraphics[height=1cm]{example-image-b}
\caption{\captext}}
\end{figure}

% Alternative without float 
\includegraphics[height=1cm]{example-image-a}\hfill
\includegraphics[height=1cm]{example-image-b}
\captionof{figure}{\captext}
\lipsum[4]
\end{itemize}   
\end{document}

相关内容