我想创建以下格式来总结假设(我正在使用report
文档类):
Body text. Body text. Body text. Body text. Body text. Body text. Body text. Body text.
Hypothesis 1 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus iaculis imperdiet blandit.
Body text. Body text. Body text. Body text. Body text. Body text. Body text. Body text.
到目前为止,这是我已经想出的办法(我正尝试使用软件包来实现amsthm
):
\documentclass[11pt]{report}
\usepackage[bottom=2cm, top=2cm, left=3cm, right=2cm]{geometry}
\usepackage{lipsum}
\usepackage{amsthm}
\newtheoremstyle{hypothesis}
{5pt}
{5pt}
{\itshape}
{1cm}
{\bfseries}
{}
{.5em}
{}
\theoremstyle{hypothesis}
\newtheorem{hypo}{Hypothesis}
\begin{document}
\lipsum[1]
\begin{hypo}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus iaculis imperdiet blandit.
\end{hypo}
\lipsum[2]
\end{document}
其结果如下:
如您所见,我几乎已经完成了。我现在唯一需要做的就是假设正文具有与假设头相同的缩进(即,当假设正文继续在新行上时,该行必须从假设头开始的同一位置开始)。
我觉得这应该很简单,但我似乎无法弄清楚。任何帮助都将不胜感激。
答案1
修改https://tex.stackexchange.com/a/106582/4427
\documentclass[a4paper]{scrartcl}
\usepackage{amsthm,thmtools}
\usepackage{etoolbox}
\usepackage{lipsum}
\usepackage{showframe}
\makeatletter
\patchcmd\@thm
{\trivlist}
{\list{}{\theoremmargins}}
{}{}
\newcommand{\xdeclaretheorem}[2][]{%
\declaretheorem[#1]{#2}%
\expandafter\patchcmd\csname thmt@original@end#2\endcsname
{\endtrivlist}{\endlist}{}{}%
}
\newcommand{\theoremmargins}{\leftmargin=0pt}
\newcommand{\theoremindent}{\leftmargin=2.5em\rightmargin=2.5em}
\declaretheoremstyle[
headfont=\bfseries,
bodyfont=\itshape,
headindent=0pt,
]{INDENTthm}
\xdeclaretheorem[
preheadhook=\let\theoremmargins\theoremindent,
within=section,
style=INDENTthm,
name=Hypothesis
]{hyp}
\declaretheorem[
style=plain,
name=Theorem
]{thm}
\begin{document}
\lipsum[1]
\begin{thm}
\lipsum*[2]
\begin{enumerate}
\item a
\item b
\end{enumerate}
\end{thm}
\lipsum[2]
\begin{hyp}
\lipsum*[2]
\begin{enumerate}
\item a
\item b
\end{enumerate}
\end{hyp}
\end{document}
像往常一样,showframe
只是为了显示文本块边界。
答案2
使用 来做到这一点非常简单ntheorem
;有一个预定义的长度\theoremindent
:
\documentclass[11pt]{report}
\usepackage[bottom=2cm, top=2cm, left=3cm, right=2cm]{geometry}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage[thmmarks, amsmath, thref]{ntheorem}
\theoremstyle{plain}
\theoremseparator{.}
\theoremindent1\parindent
\newtheorem{hypo}{Hypothesis}
\begin{document}
\lipsum[1]
\begin{hypo}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus iaculis imperdiet blandit.
\end{hypo}
\lipsum[2]
\end{document}