具有可选的基于节的编号的环境

具有可选的基于节的编号的环境

我想要一个可以根据当前部分随意编号的环境。我目前有:

\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \emph{Example~\theexample. #1} \rmfamily}{\medskip}

但我想要的是:

% In section X.

\begin{example}[1]
foo
\end{example}

\begin{example}[1]
bar
\end{example}

\begin{example}[0]
qux
\end{example}

\begin{example}[1]
wat
\end{example}

产生

Example X.1: foo
Example X.2: bar
Example: qux
Example X.3: wat

这些块最终会变得更加复杂(一致的格式等),我只想使用一个环境。我也可以用两个环境来实现这一点。

答案1

这是实现您所请求的输入的一种可能方法:

在此处输入图片描述

\documentclass{article}

\newcounter{example}[section]
\renewcommand{\theexample}{\thesection.\arabic{example}}
\newenvironment{example}[1][]{%
  \par\medskip
  \noindent\emph{Example%
    \ifnum#1=0\else
      ~\refstepcounter{example}\theexample
    \fi:} \rmfamily}
    {\medskip}

\begin{document}

\setcounter{section}{6}
\section{A section}

\begin{example}[1]
foo
\end{example}

\begin{example}[1]
bar
\end{example}

\begin{example}[0]
qux
\end{example}

\begin{example}[1]
wat
\end{example}

\end{document}

这种编号样式的典型工作方式通常是通过定理样式环境,或使用带星号的版本。以下是后者的示例:

\documentclass{article}

\newcounter{example}[section]
\renewcommand{\theexample}{\thesection.\arabic{example}}
\newenvironment{example}{%
  \par\medskip
  \refstepcounter{example}%
  \noindent\emph{Example~\theexample:} \rmfamily}
  {\medskip}
\newenvironment{example*}{%
  \par\medskip
  \noindent\emph{Example:} \rmfamily}
  {\medskip}

\begin{document}

\setcounter{section}{6}
\section{A section}

\begin{example}
foo
\end{example}

\begin{example}
bar
\end{example}

\begin{example*}
qux
\end{example*}

\begin{example}
wat
\end{example}

\end{document}

相关内容