在不扩展空间的情况下向图形添加填充和边框?

在不扩展空间的情况下向图形添加填充和边框?

我给一个图形添加了边框和填充。当我尝试将其宽度与文本匹配时,我最终得到的图像比我预期的要宽。有没有办法在不增加空间的情况下添加边框和填充?这是 MWE:

\documentclass{book}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{caption}

\begin{document}
\lipsum[1]

\begin{figure}[h]
\caption{Figure Title}
\centering
\setlength{\fboxsep}{15pt}%
\setlength{\fboxrule}{0.5pt}%
\fbox{\rule{\linewidth}{10em}}
\end{figure}

\lipsum[1]

\end{document}

在此处输入图片描述

答案1

您需要将图像的宽度缩小 2 倍\fboxsep,长度缩小 2 倍\fboxrule。这可以直接借助计算包(见第三个示例)。

请注意,在下面的代码中,我明确指定了图像的高度(3cm),以便所有 3 幅图像都显示在同一页上。对于您的情况(如果您确实使用命令添加了图像而不是黑色矩形rule),请不要指定图像的高度,因此纵横比会保持不变。

\documentclass{book}
\usepackage{geometry}
\newcommand{\foo}{Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{calc}

\begin{document}
\foo 

\begin{figure}[h]
\caption{Figure Title}
\centering
\includegraphics[width=\linewidth,height=3cm]{example-image-a}
\end{figure}

\foo 

\begin{figure}[h]
\caption{Figure Title}
\centering
\setlength{\fboxsep}{15pt}%
\setlength{\fboxrule}{0.5pt}%
\fbox{\includegraphics[width=\linewidth,height=3cm]{example-image-a}}
\end{figure}

\foo 

\begin{figure}[h]
\caption{Figure Title}
\centering
\setlength{\fboxsep}{15pt}%
\setlength{\fboxrule}{0.5pt}%
\fbox{\includegraphics[width=\linewidth-2\fboxsep-2\fboxrule,height=3cm]{example-image-a}}
\end{figure}
\end{document}

结果:

在此处输入图片描述

答案2

这里我使用了类似于的语法\includegraphics,但多了一个参数来设置整体宽度,包括框架;图片的宽度将减少两倍的间隔和两倍的规则宽度。

\documentclass{article}
\usepackage{graphicx}

\usepackage{lipsum}

\newlength{\framedgraphicssep}
\setlength{\framedgraphicssep}{15pt}
\newcommand{\framedgraphics}[3][]{%
  \begingroup
  \setlength{\fboxsep}{\framedgraphicssep}%
  \fbox{\includegraphics[
    width=\dimexpr#2-2\framedgraphicssep-2\fboxrule\relax,
    #1,% other options to \includegraphics
  ]{#3}}%
  \endgroup
}

\begin{document}

\lipsum[1][1-5]

\begin{figure}[htp]
\centering

\framedgraphics[height=3cm]{\columnwidth}{example-image}

\caption{Figure Title}
\end{figure}

\lipsum[2][1-5]

\begin{figure}[htp]
\centering

\framedgraphics[height=3cm]{8cm}{example-image}

\caption{Figure Title}
\end{figure}

\lipsum[3][1-5]

\end{document}

在此处输入图片描述

相关内容