![在不扩展空间的情况下向图形添加填充和边框?](https://linux22.com/image/460980/%E5%9C%A8%E4%B8%8D%E6%89%A9%E5%B1%95%E7%A9%BA%E9%97%B4%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%90%91%E5%9B%BE%E5%BD%A2%E6%B7%BB%E5%8A%A0%E5%A1%AB%E5%85%85%E5%92%8C%E8%BE%B9%E6%A1%86%EF%BC%9F.png)
我给一个图形添加了边框和填充。当我尝试将其宽度与文本匹配时,我最终得到的图像比我预期的要宽。有没有办法在不增加空间的情况下添加边框和填充?这是 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}