移位 \newtheorem

移位 \newtheorem

有没有办法将定理从 amsthm 中转移出来?我的意思是,而不是:

定理 1.1(标题):BLABLABLA

定理 1.1 会稍微靠左一点,blablabla 也会在同一个位置。类似地,它会是这样的:(但没有 tcolorbox,这里我不需要其余的功能,amsthm 的样式就足够了)

在此处输入图片描述

我希望我的定义(目前是经典的)具有与绿色和橙色框相同的行为。尺寸不是问题(我将设置 shifting 的值)

在此处输入图片描述

答案1

您可以尝试类似这样的方法。要点是,的最后一个参数允许\newtheoremstyle您放置任意代码来格式化标题。您可以在\leftskip设置正文字体的同时进行调整,即在的第三个参数中,使标题保持在边距内\newtheoremstyle

第一部分样本

第二部分示例

\documentclass{article}

\usepackage{amsthm}
\usepackage{lipsum} % for dummy text

\newtheoremstyle{side}{}{}{\advance\leftskip3cm\relax\itshape}{}
{\bfseries}{}{0pt}{%
\makebox[0pt][r]{%
  \smash{\parbox[t]{2.5cm}{\raggedright\thmname{#1}%
  \thmnumber{\space #2}\thmnote{\newline (#3)}}}%
  \hspace{.5cm}}}

\theoremstyle{side}
\newtheorem{theorem}{Theorem}[section]

\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}

\begin{document}

\lipsum[1]

\begin{theorem}
  \lipsum[1]
\end{theorem}

\begin{theorem}[Euclid]
  \lipsum[2]
\end{theorem}

\begin{theorem}[Very long name]
  \lipsum[3]
\end{theorem}

\begin{definition}
  \lipsum[1]
\end{definition}

\end{document}

相关内容