拥有自己的环境和自己的品牌

拥有自己的环境和自己的品牌

我想要一个策略环境。到目前为止,我使用 ntheorem 包来定义这样的环境。

我这样使用它:

\begin{strategy}[bla]
    bla bla
\end{strategy}

并得到:

 <surrounding text>

 Strategy 1 (Bla):
    bla bla

<surrounding text>

这正是我想要的,除了我想用我指定的前缀对策略的编号进行分组,例如 LD.1、..LD.5 和 I.1、..I.3 等等:

<surrounding text>

Strategy A.1 (bla):
   bla bla
   more bla bla

<surrounding text>

因此,这个词战略我的前缀和简短描述放在非缩进行中,然后策略文本缩进。此外,我希望在策略上方和下方留出一点空间。

是否可以按如下方式使用 ntheorem:

\begin{strategy}[prefix][bla]
    bla bla
\end{strategy}

或者有人有其他想法。我不需要使用 ntheorem。这只是我的第一个想法。

我将 ntheorem 用于其他环境,因此它们应该可以一起工作。

答案1

这里有一种方法;你指定

\begin{strategy}{<label>}[<optional description>]
Text
\end{strategy}

可以<label>为空。各种策略将按标签顺序编号。如果您想重置数字,请发出

\resetstrategy{<label>}

例子:

\documentclass{article}
\usepackage{xparse}

\makeatletter
\NewDocumentEnvironment{strategy}{ m o }
 {\@ifundefined{@strategy#1}
   {\newtheorem{@strategy#1}{Strategy}%
    \global\@namedef{the@strategy#1}{#1.\arabic{@strategy#1}}%
   }%
   {}%
  \IfNoValueTF{#2}{\begin{@strategy#1}}{\begin{@strategy#1}[#2]}%
 }
 {\end{@strategy#1}}
\newtheorem{@strategy}{Strategy}
\newcommand{\resetstrategy}[1]{%
 \@ifundefined{@strategy#1}
  {\typeout{You have no `Strategy #1'}}
  {\setcounter{@strategy#1}{0}}%
}
\makeatother

\begin{document}

\begin{strategy}{}
A
\end{strategy}

\begin{strategy}{}[Good]
B
\end{strategy}

\begin{strategy}{A}
C
\end{strategy}

\begin{strategy}{A}[Bad]
D
\end{strategy}

\begin{strategy}{X}[So and so]
E
\end{strategy}

\resetstrategy{A}

\begin{strategy}{A}
F
\end{strategy}
\end{document}

在此处输入图片描述

答案2

像这样?

代码

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{lipsum}

\newcounter{mystrategy}[section]
\setcounter{mystrategy}{0}
\renewcommand{\themystrategy}{\Alph{section}.\arabic{mystrategy}}

\newenvironment{strategy}[1]{\refstepcounter{mystrategy}\textbf{Strategy \themystrategy\ (#1)}\itshape\selectfont}{\par}

\begin{document}

\section{One}
\lipsum[1]
\begin{strategy}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\subsection{one}
\lipsum[1]
\begin{strategy}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\section{Two}
\lipsum[1]
\begin{strategy}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\subsection{one}

\lipsum[1]
\begin{strategy}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\end{document}

输出

在此处输入图片描述


编辑1:对于可自由选择的标签:

代码

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{lipsum}

\newenvironment{strategy}[2]{\textbf{Strategy #1 (#2)}\itshape\selectfont}{\par}

\begin{document}

\section{One}
\lipsum[1]
\begin{strategy}{Q.5}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\subsection{one}
\lipsum[1]
\begin{strategy}{X.101}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\section{Two}
\lipsum[1]
\begin{strategy}{H.42}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\subsection{one}

\lipsum[1]
\begin{strategy}{S.19}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\end{document}

编辑2:带缩进 (感谢 Werner) 和空格:

代码

\documentclass{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{lipsum}

\newenvironment{strategy}[2]{\vspace{5mm}\noindent\textbf{Strategy #1 (#2)}\\\phantom{}\hfill\begin{minipage}{\dimexpr\textwidth-5mm} \itshape\selectfont}{\end{minipage}\par\vspace{5mm}}

\begin{document}

\section{One}
\lipsum[1]
\begin{strategy}{Q.5}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\subsection{one}
\lipsum[1]
\begin{strategy}{X.101}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\section{Two}
\lipsum[1]
\begin{strategy}{H.42}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\subsection{one}

\lipsum[1]
\begin{strategy}{S.19}{Bla}
\lipsum[2]
\end{strategy}
\lipsum[3]

\end{document}

结果

在此处输入图片描述

答案3

如果你使用hyperrefand ntheorem。你可以尝试这样的操作:

\newtheorem{strategy}{\normalfont{\textbf{Strategy}}}
\numberwithin{strategy}{chapter}
\newcommand{\strategyautorefname}{Strategy}

\begin{document}
...
\chapter{chapter something}
\begin{strategy}\label{str:first}
bla bla
\end{strategy}
In \autoref{str:first} you can see...

第一个命令定义策略环境。第二个命令定义策略之前的计数器,在本例中为章节编号。最后一个命令允许您引用环境并自动获取附加在编号前的字符串 Strategy。当您引用它时,将产生类似以下内容:

  1. 章节某事。

策略 2.1。bla bla

在策略 2.1 中您可以看到...

其中 2 是章节编号,1 是第二章内策略的计数器。

相关内容