使用 \underbrace 会干扰列表周围的框架

使用 \underbrace 会干扰列表周围的框架

我在使用时遇到了一些问题框架在我的周围listings。的使用underbrace打破了框架。

有人可以帮忙并告诉我如何解决这个问题吗?

 \documentclass[a4paper]{scrbook}
 \usepackage{amsmath}
 \usepackage{listings}                  
 \lstset{       
      escapechar = \% ,            
      frame = single         
  }

  \begin{document}
  \noindent\begin{minipage}{\textwidth}
  \begin{lstlisting}      
  %$\underbrace{Lorem ipsum}_{ipsum lorem}$% 
  \end{lstlisting}
  \end{minipage} 
  \end{document}

结果:

https://i.stack.imgur.com/7Hqey.png

编辑:
问题并没有真正解决,因为我依赖它minipage来防止我的列表Listings被分成两页。
实际上,列表周围的框架在退出时总是“破折号”。
有谁知道解决方案,如何让列表周围的框架看起来像一个普通的列表?特别是,我需要一个标题显示在框架上方(而不是内部)。这里有一个片段来了解我的意思:

\documentclass[a4paper]{scrbook}
\usepackage{mdframed}
\usepackage{listings}
\usepackage{amsmath}
\lstset{mathescape=true, frame = single,  escapechar        = \% }

\begin{document}

\noindent\begin{minipage}{\textwidth}
\lstset{caption = {Caption1},label = {label1}}
\begin{lstlisting}
Blabla %bla\_4%
%$\underbrace{BlaBla}_{Blubb}$%
\end{lstlisting}
\end{minipage} 

\lstset{caption = {Caption2},label = {label2}, frame= none}
\begin{mdframed}
\begin{lstlisting}
$\underbrace{Lorem ipsum}_{ipsum lorem}$
\end{lstlisting}
\end{mdframed}

\end{document}

在此处输入图片描述

编辑2:
现在,我已经从框架 = 单框架 = 线条这解决了这个问题,但我不喜欢它的外观。

答案1

framed选项的工作原理假设线条的高度和深度不超过支柱的总高度加上深度(即基线跳跃)。它们基本上在两端绘制一个可见的支柱。

您可以使用mdframed

\documentclass[a4paper]{scrbook}
\usepackage{mdframed}
\usepackage{listings}
\lstset{mathescape=true}

\begin{document}
\begin{mdframed}
\begin{lstlisting}
$\underbrace{Lorem ipsum}_{ipsum lorem}$
\end{lstlisting}
\end{mdframed}
\end{document}

如果你还想容纳标题,我建议一个解决方法

\documentclass[a4paper]{scrbook}
\usepackage{mdframed}
\usepackage{listings}
\usepackage{lipsum}
\lstset{mathescape}

\lstnewenvironment{framedlisting}[1][]
  {\mdframed[innertopmargin=-2\baselineskip,
      skipabove=\bigskipamount,skipbelow=\bigskipamount]
   \lstset{frame=none,belowcaptionskip=\baselineskip,#1}}
  {\endmdframed}

\begin{document}
\lipsum[1]
\begin{framedlisting}[caption = {Caption2},label = {label2}]
$\underbrace{Lorem ipsum}_{ipsum lorem}$
abc
def
ghy
abc
def
ghy
abc
def
ghy
\end{framedlisting}
\lipsum[2]
\end{document}

在此处输入图片描述

相关内容