我在使用时遇到了一些问题框架在我的周围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}
结果:
编辑:
问题并没有真正解决,因为我依赖它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}