我希望定理的样式与 lstlisting 相同, frame=lines
但我找不到 declaredtheorem 的选项来实现这一点。放弃 thmtools 并不容易,因为我已经有了许多其他定理(不同样式)。
\documentclass{article}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{listings}
\declaretheorem[style=definition,numbered=no,shaded={rulecolor=Black,rulewidth=0.5pt,margin=0.5em,bgcolor={rgb}{1,1,1}}]{theorem}
\lstset{frame=lines}
\begin{document}
\begin{lstlisting}
Test
\end{lstlisting}
\begin{theorem}
\end{theorem}
\end{document}
我希望将“定理”和“测试”放在同一个框中,并且仍然使用 declaredtheorem (因为我需要它来实现许多不同的风格)。
谢谢你!
答案1
这很容易获得ntheorem
(与 配合thmtools
,但这里不是必需的):
\documentclass{article}
\usepackage[dvipsnames,table]{xcolor}
\usepackage[showframe]{geometry}
\usepackage{mathtools}
\usepackage[thmmarks, amsmath]{ntheorem}
\usepackage{thmtools}
\usepackage{listings}
\lstset{frame=lines}%
\theoremstyle{nonumberplain}
\theoremprework{\bigskip\hrule}
\theorempostwork{\vspace*{-0.35ex}\hrule}
\theoremindent=0.5em
\theoremrightindent=0.5em
\theoremheaderfont{\upshape\bfseries}
\theoremseparator{.}
\theorembodyfont{\upshape}
\newtheorem{theorem}{Theorem}
\begin{document}
\vspace*{1cm}
\begin{lstlisting}
Test. Test. Test. Test. Test. Test.
\end{lstlisting}
\begin{theorem}
Blah blah. Blah blah. Blah blah. Blah blah. Blah blah. Blah blah. Blah blah. Blah blah.
\end{theorem}
\end{document}