在文本块周围制作精美的框架

在文本块周围制作精美的框架

我知道问题和答复textblock 关于包装周围的边框textpos。这可行,但会产生“非常方形”的盒子……

我想知道是否有办法让这些盒子变得更加漂亮,例如使用圆形边框、非矩形形状(我正在考虑卡通气泡),或者在一个漂亮的盒子中添加标题,只需一步。

我尝试过,tikz但是没能为和建立一个通用的坐标系,tikz而且textpos,由于的高度textblock是可变的,我不确定是否能够在周围正确绘制边框textblock

答案1

楼主的问题留给我很大的发挥空间,所以我选择用网上可以找到的剪贴画边框角制作一个精美的边框。下载完这样一个边框后,我将其命名为corner_299-282.png,使用我的宏

\cframe{<frame-image-file>}{<offset-factor>}{<content>}

一个附加参数是\frameprop,它是构成框架的内容宽度/高度的最小比例。

这是 MWE。在页面的早期部分,\frameprop设置为.45(即 45%)。第一行显示原始框架。第二行显示它应用于方形内容,但将偏移因子从 更改为0.2第三行显示它应用于矩形内容,也改变了偏移因子。最后一行显示它应用于文本\parbox,偏移量为.35\frameprop修改为.6(60%)。

已编辑,以允许<content>包含多段落。

\documentclass{article}
\usepackage{graphicx,stackengine}
\newlength\framewidth
\def\frameprop{.45}
\newcommand\cframe[3]{%
  \setbox0=\hbox{#3}%
  \ifdim\wd0>\dimexpr\ht0+\dp0\relax\relax%
  \setlength\framewidth{\frameprop\dimexpr\ht0+\dp0\relax}\else%
  \setlength\framewidth{\frameprop\wd0}\fi%
  \savestack\corner{\includegraphics[width=\framewidth]{#1}}%
  \hspace{#2\framewidth}%
  \setbox0=\hbox{#3}%
  \stackinset{l}{-#2\framewidth}{t}{}{\corner}{%
  \stackinset{r}{-#2\framewidth}{t}{-#2\framewidth}{\rotatebox{-90}{\corner}}{%
  \stackinset{l}{-#2\framewidth}{b}{}{\rotatebox{90}{\corner}}{%
  \stackinset{r}{-#2\framewidth}{b}{-#2\framewidth}{\rotatebox{180}{\corner}}{%
  \copy0}}}}%
  \hspace{#2\framewidth}%
}
\parskip1ex
\begin{document}
\includegraphics[width=1in]{corner_299-282}\par
\cframe{corner_299-282}{0}{\includegraphics[width=1cm,height=1cm]{example-image}}
\quad
\cframe{corner_299-282}{.2}{\includegraphics[width=2cm,height=2cm]{example-image}}\par
\cframe{corner_299-282}{0}{\includegraphics[width=2in,height=1in]{example-image}}
\quad
\cframe{corner_299-282}{.2}{\includegraphics[width=1in,height=2in]{example-image}}\par
\def\frameprop{.6}
\cframe{corner_299-282}{.35}{\parbox{2.4in}{
{\centering\scshape A LIMERICK\par}
The lemmings get set for their race.\\
With one step and two steps they pace.\\
\mbox{\quad}They take three and four,\\
\mbox{\quad}And then head on for more, \\
Without checking the limiting case.}}
\end{document}

在此处输入图片描述

框架来源:https://clipartfest.com/download/ANd9GcQdC6b9yPnapPFI-eBCKms0V65w7f9k4VOELXG0JSNKUetQmU2pzq-cFLQ.html

利默里克来源:https://www.physics.harvard.edu/academics/undergrad/limericks

注意:\cframes 可以嵌套:

在此处输入图片描述

相关内容