![如何在类似定理的环境中改变头部后的垂直空间](https://linux22.com/image/338777/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%B1%BB%E4%BC%BC%E5%AE%9A%E7%90%86%E7%9A%84%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%94%B9%E5%8F%98%E5%A4%B4%E9%83%A8%E5%90%8E%E7%9A%84%E5%9E%82%E7%9B%B4%E7%A9%BA%E9%97%B4.png)
在定义样式或声明“定理”时,是否有可能改变垂直的头部后的间距(不是在整个“定理”之后)?
我想在序言中使用适当的设置来做到这一点,并且不是每次我调用环境时。(显然我每次调用环境时都可以手动执行此操作。)
在 的文档中thmtools
,我没有找到针对\declaretheoremstyle
或执行此操作的密钥\declaretheorem
。
例子:
\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{kantlipsum}
\declaretheoremstyle[
headfont=\bfseries, headpunct={}, numbered=no,
spaceabove=3\topsep, postheadspace=2em
]{exercs}
\declaretheorem[name=EXERCISES,style=exercs]{problems}
\begin{document}
\kant[1]
\begin{problems}
Solve these problems.
\begin{enumerate}
\item Do this one first.
\item Solve this next.
\end{enumerate}
\end{problems}
\end{document}
我确实非常喜欢使用thmtools
包装方法来设计并声明类似定理的环境,因为它似乎比amsthm
单独使用能更好地控制它们。
尽管如此,即使是“原始的”“amsthm”方法,例如在定理样式;在定理标题和定理主体之间留出垂直空间,仅仅移动“定理”主体的开头以便从新行开始;它似乎不允许我添加额外的垂直空间:
\documentclass{article}
\usepackage{amsthm}
\usepackage{kantlipsum}
\newtheoremstyle{exercises}% name
{\topsep}%Space above
{\topsep}%Space below
{\itshape}%Body font
{0pt}%Indent amount
{\bfseries}% Theorem head font
{}%Punctuation after theorem head
{\newline}%Space after theorem head
{}% theorem head specification
\theoremstyle{exercises}
\newtheorem{problems}{EXERCISES}
\begin{document}
\kant[1]
\begin{problems}
Solve these.
\begin{enumerate}
\item Do this one first.
\item Solve this next.
\end{enumerate}
\end{problems}
\end{document}
答案1
这里你可以看到:将换行符视为标点符号就足够了:
\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{kantlipsum}
\declaretheoremstyle[
headfont=\bfseries,%
headpunct={\vspace{\topsep}\newline}, %
numbered=no,
spaceabove=3\topsep, %
postheadspace=0 pt ]{exercs}
\declaretheorem[name=EXERCISES,style=exercs]{problems}
\begin{document}
\kant[1]
\begin{problems}
Solve these problems.
\begin{enumerate}
\item Do this one first.
\item Solve this next.
\end{enumerate}
\end{problems}
\end{document}