当图像大于文本宽度时居中

当图像大于文本宽度时居中

我有一张大于线宽的图像,我想将其居中,并且还想在其周围添加彩色边框。我可以同时完成这两件事,但不知道如何同时实现这两件事!

对于彩色正方形我使用这个:

\newcommand{\mybox}[2]{{\color{#1}\fbox{\normalcolor#2}}} %in the preamble

\mybox{grigio}{\includegraphics[scale=0.43]{life.jpg}} %in the document

我设法用以下代码使图像居中:

\begin{figure}
\centering
\makebox[\columnwidth]{\includegraphics[...]{...}}
\end{figure}

请注意,我不希望图像的宽度等于文本宽度。我希望它更大,但仍居中。谢谢 ;)

答案1

您可以在里面使用\colorbox(需要) :xcolor\makebox

\documentclass{article}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{lipsum}

\begin{document}

\begin{figure}
\centering
\makebox[\linewidth]{%
  \setlength\fboxsep{8pt}%<- optional for padding
  \colorbox{cyan}{%
    \includegraphics[width=16cm,height=3cm]{example-image-a}}}
\end{figure}
\lipsum[4]

\end{document} 

在此处输入图片描述

答案2

stackengine包可以通过将图像堆叠在空参数之上来实现这一点,并使用参数\useanchorwidthT。这样,堆栈的感知宽度就是锚点的宽度,在本例中是空参数的宽度,即 0pt。

对于框架(我选择了双框架),我只是把它放在双精度中\fbox,设置\fboxsep并设置\fboxrule为所需值并使用嵌套\color命令。

\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{stackengine}
\usepackage{lipsum}
\def\useanchorwidth{T}
\begin{document}
\begin{figure}
\fboxsep=0pt
\fboxrule=4pt
\centering
\stackon[0pt]{}{%
  \color{blue}\fbox{%
    \color{magenta}\fbox{%
      \includegraphics[width=16cm,height=3cm]{example-image}%
    }%
  }%
}
\end{figure}
\lipsum[4]
\end{document} 

在此处输入图片描述

相关内容