我试图在我的图形周围画一个方框,就像 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
这是使用float
和caption
将规则添加到标准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
包用于定义下层规则集。