周围有不同方框的图形

周围有不同方框的图形

我试图在我的图形周围画一个方框,就像 Benjamin Pierce 的《类型和编程语言》一书和 Luca Cardelli 的论文《类型系统》中那样。这样的方框有水平线,角落只有小垂直线。

我真的不懂这个技巧,有人知道该怎么做吗?

答案1

在此处输入图片描述

\documentclass{article}

\newenvironment{foo}[2][c]
{\begin{minipage}[#1]{#2}\centering
\hrule height2pt
\centerline{\vrule width2pt height 5pt\hfill \vrule width2pt height 5pt}
\begin{minipage}{\dimexpr\textwidth-4pt-1em}}
{\end{minipage}
\centerline{\vrule width2pt height 5pt\hfill \vrule width2pt height 5pt}
\hrule height2pt
\end{minipage}}

\begin{document}


\begin{foo}[b]{.3\textwidth}

A \dotfill\ B \dotfill\ C\\
A \dotfill\ B \dotfill\ C\\
A \dotfill\ B \dotfill\ C
\end{foo}
\hfill
\begin{foo}[t]{.3\textwidth}

A \dotfill\ B \dotfill\ C\\
A \dotfill\ B \dotfill\ C\\
A \dotfill\ B \dotfill\ C
\end{foo}


\end{document}

答案2

这是使用floatcaption将规则添加到标准figure环境的软件包:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{float}
\usepackage{caption}

\DeclareCaptionFormat{myrule}{%
  \rule{1pt}{8pt}%
  \kern-1pt\raisebox{-1pt}{\rule{\linewidth}{1pt}}%
  \kern-1pt\rule{1pt}{8pt}\par\smallskip#1#2#3}

\makeatletter
\renewcommand\fs@ruled{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled%
\def\@fs@pre{\rule{1pt}{8pt}\kern-1pt\raisebox{8pt}{\rule{\linewidth}{1pt}}\kern-1pt\rule{1pt}{8pt}}%
\def\@fs@post{}%
\def\@fs@mid{}%
\let\@fs@iftopcapt\iffalse%
}
\makeatother

\floatstyle{ruled}
\restylefloat{figure}
\captionsetup[figure]{format=myrule,labelsep=colon}

\begin{document}

\begin{figure}
\centering
\includegraphics{image}
\caption{A test ruled figure}
\end{figure}

\end{document}

在此处输入图片描述

float用于构建上层规则集,而caption包用于定义下层规则集。

相关内容