这两个命令
\def\look{\@ifnextchar[{\@lookY}{\par\noindent{\textsf{ThinkOut. }}}}
\def\@lookY[#1]{\par\noindent\textsf{ThinkOut (\textit{#1}).}}
提供具有效果的实用程序
\look Deep thought ...
给出
思考。深思熟虑……
和
\look[addition] Deep thought
...
给出
ThinkOut(补充)。深思熟虑……
我想将上述命令组织到一个环境中,但不使用amsmath.sty
+ntheorem.sty
实用程序。这是因为使用方案
\newtheoremstyle{Rstyle}{}{}{\itshape}{2em}{\sffamily}{.}{}{}
\theoremstyle{Rstyle}
\newtheorem{rem}{ThinkOut}
\newtheorem*{rem*}{ThinkOut}
不允许我独立于标题“ThinkOut”强调[addition]
伪参数
\begin{rem}[addition] ... \end{rem}
。是否可以通过上述 ams-internal 实用程序解决问题,还是需要创建自己的命令?格式化参数[addition]
(如果已调用)在上面的第二个命令中进行了描述\@lookY
。
答案1
以下是使用 可以做什么的示例thmtools
。如果您想要轻松地独立格式化可选参数,则必须使用amsthm
,因为可选参数的所有键(notefont
,&c.)都不能与 一起使用ntheorem
(您可以定义一个新的ntheorem style
,但它不像使用 那样容易thmtools
)。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheoremstyle[
headfont=\bfseries,%
notefont=\itshape\mdseries\color{red},
notebraces = {\textup{(}}{\textup{)}},
bodyfont = \mdseries, %
headpunct={.\,—\,}, %
spaceabove=\topsep, %
spacebelow=\topsep]{Rstyle}
\declaretheorem[name=ThinkOut, numbered=no,style=Rstyle]{look}
\begin{document}
\begin{look}
Deep thought.
\end{look}
\begin{look}[addition]
Deeper thought.
\end{look}
\end{document}
答案2
答案3
您当然可以使用amsthm
;唯一的问题是使用正确的标题规范。
\documentclass{article}
\usepackage{amsthm}
\makeatletter
\newtheoremstyle{Rstyle}
{}
{}
{\itshape}
{2em}
{\sffamily}
{.}
{ }
{\thmname{#1} \thmnumber{#2}\@ifnotempty{#3}{ (\textsl{#3})}}
\makeatother
\theoremstyle{Rstyle}
\newtheorem{rem}{ThinkOut}
\newtheorem*{rem*}{ThinkOut}
\begin{document}
\begin{rem}
Some text.
\end{rem}
\begin{rem}[addition]
Some text.
\end{rem}
\end{document}
答案4
只要您不需要编号和引用,您就可以使用纯 LaTeX 定义带有可选参数的环境。
\newenvironment{thinkout}[1][]%
{\begin{trivlist}
\item[]%
{\bfseries ThinkOut%
\if\relax\detokenize{#1}\relax\else\ (#1)\fi
.}\quad
}%
{\end{trivlist}}
用作
\begin{thinkout} ... \end{thinkout}
\begin{thinkout}[optional addendum] ... \end{thinkout}
\documentclass{article}
\newenvironment{thinkout}[1][]%
{\begin{trivlist}
\item[]%
{\bfseries ThinkOut%
\if\relax\detokenize{#1}\relax\else\ (#1)\fi
.}\quad
}%
{\end{trivlist}}
\usepackage{lipsum}
\begin{document}
\lipsum[2]
\begin{thinkout}
Deep thought \dots
\end{thinkout}
\lipsum[2]
\begin{thinkout}[addition]
Deep thought \dots
\end{thinkout}
\lipsum[2]
\end{document}