如何在 2 个小页面下方添加标题?

如何在 2 个小页面下方添加标题?

我有 2 个并排的minipage图片,我想在它们下面添加标题。有什么办法吗?

\noindent\begin{minipage}{0.5\textwidth}

\begin{lstlisting}[mathescape=true]
P  -> if (x,y) in box(B,B,B,B) 
      then symbol(S,C) 
      else pebble
B  -> 0 | 1 | 2 | 3 | 4 | 5 | 6
S  -> ring(O,I,R,x,y)
O  -> chicken | pig
I  -> chicken | pig | pebble
R  -> 1 | 2 | 3
C  -> [red, green, blue][A2(A1)]
A1 -> x | y | x+y
A2 -> lambda z:0 | lambda z:1 | 
      lambda z:2 | lambda z:z%2 | 
      lambda z:z%2+1 | 
      lambda z:2*(z%2)
\end{lstlisting}

\end{minipage}%
\hfill
\begin{minipage}{0.6\textwidth}
  \includegraphics[width=0.7\textwidth]{assets/task_grid.png}
  \caption{HELLO}    
\end{minipage}

== I'd like a caption here ==

答案1

环境lstlisting提供了自己的字幕机制。

在您的示例代码中,minipages 的总宽度(至少)为 的 110% \textwidth;这不会顺利进行。在下面的代码中,我使用了 的 0.6 和 0.35 的宽度\textwidth

在此处输入图片描述

\documentclass{article}
\usepackage[demo]{graphicx} % remove 'demo' option in real document
\usepackage{listings}
\begin{document}

\begin{minipage}{0.6\textwidth}
\begin{lstlisting}[mathescape=true,caption=HELLO,captionpos=b]
P  -> if (x,y) in box(B,B,B,B) 
      then symbol(S,C) 
      else pebble
B  -> 0 | 1 | 2 | 3 | 4 | 5 | 6
S  -> ring(O,I,R,x,y)
O  -> chicken | pig
I  -> chicken | pig | pebble
R  -> 1 | 2 | 3
C  -> [red, green, blue][A2(A1)]
A1 -> x | y | x+y
A2 -> lambda z:0 | lambda z:1 | 
      lambda z:2 | lambda z:z%2 | 
      lambda z:z%2+1 | 
      lambda z:2*(z%2)
\end{lstlisting}
\end{minipage}%
\hfill
\begin{minipage}{0.35\textwidth}
\includegraphics[width=\textwidth]{assets/task_grid.png}
\end{minipage}

\end{document}

相关内容