答案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}