我想要一个可以根据当前部分随意编号的环境。我目前有:
\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}