如何在图形内制作“标题”?

如何在图形内制作“标题”?

我有一个由多个部分组成的图形,我希望每个部分都有一个“标题”。我怎样才能以一种好看的方式做到这一点?现在我只是使用\textbf“标题”,但所有内容最终都混在一起了:

带无空格标题的图表

这是我正在使用的 Latex 样本:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{figure}
    \textbf{Syntax}

    \begin{tabular}{llll}
        Variable   & $x$ & ::= & $x,y,z,…$ \\
        Expression & $e$ & ::= & $x$ $|$ $(\lambda x.\,e)$ $|$ $(e_1\;e_2)$
    \end{tabular}

    \textbf{Free Variables} \fbox{$FV(e)$}

    \begin{align*}
        FV(x) & = \{x\} \\
        FV(\lambda x.\,e) & = FV(e) - \{x\} \\
        FV((e_1\;e_2)) & = FV(e_1) \cup FV(e_2)
    \end{align*}

    \caption{The lambda calculus}
\end{figure}

\end{document}

我如何在“语法”和“自由变量”周围添加一些空间,以使内容看起来不那么拥挤?是否有更“语义化”的方式来创建“图形子部分”(如 html 中的 h1、h2 等)或者我应该使用显式间距命令手动格式化我的图形?

答案1

应该还有其他方法可以做到这一点,但如果我是你,我会选择分段命令。明显的优势是,

  1. 自动化字体。
  2. 橡胶长度间隙。

    \documentclass{article}
    \usepackage{amsmath}
    
    \begin{document}
    
    \begin{figure}
      \section*{Syntax}
    
      \begin{tabular}{llll}
          Variable   & $x$ & ::= & $x,y,z,…$ \\
          Expression & $e$ & ::= & $x$ $|$ $(\lambda x.\,e)$ $|$ $(e_1\;e_2)$
      \end{tabular}
    
    \subsection*{Free Variables \fbox{$FV(e)$}}
    
    \begin{align*}
        FV(x) & = \{x\} \\
        FV(\lambda x.\,e) & = FV(e) - \{x\} \\
        FV((e_1\;e_2)) & = FV(e_1) \cup FV(e_2)
    \end{align*}
    
    \caption{The lambda calculus}
    \end{figure}
    
    \end{document}
    

相关内容