简单部分练习

简单部分练习

我想要的看起来很简单,但我找不到满意的答案。

我想要的是这样的

\section{Foo}
A bunch of definitions, theorems, remarks, etc.
\begin{exercise}
\ex\label{ex:foo:t1} Show that this is that.
\begin{ans}
This is that by casual observation.
\end{ans}
\ex Show that is this
\begin{ans}
Just reverse the answer to exercise \ref{ex:foo:t1}.
\end{ans}
\end{exercise}

输出应该是这样的:

1

一堆定义,定理,注释等等。

练习

  1. 表明这就是那个。

    答:这是随机观察得出的。

  2. 显示是这个

    回答:只需反转练习 1 的答案即可。

我还需要一些编号方面的灵活性。例如,对序言进行一些更改后,输出可能为:

1

一堆定义,定理,注释等等。

第一部分练习

1.1 表明这是那个。

答:这是随机观察得出的。

1.2 表明这是

回答:只需反转练习 1.1 的答案即可。

答案1

以下是使用enumitem通过格式化进行一些提升:

截屏

在下面的代码中,我们有:

\newlist{exercise}{enumerate}{5}
\setlist[exercise]{label*=\arabic*.,ref=\arabic*,before={\subsection*{Exercises}}}

这定义了一个称为 的类似列表的环境exercise

接下来,

% copy \item into \ex
\let\ex\item

定义\ex\item

最后,我们定义一个ans环境:

% a simple ans environment
\newenvironment{ans}{\par Ans:}{}

完整代码如下:

% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}

% use the enumitem package to ease the list-like
% definition of the exercise environment
\usepackage{enumitem}
\newlist{exercise}{enumerate}{5}
\setlist[exercise]{label*=\arabic*.,ref=\arabic*,before={\subsection*{Exercises}}}

% copy \item into \ex
\let\ex\item

% a simple ans environment
\newenvironment{ans}{\par Ans:}{}

\begin{document}
\section{Foo}
A bunch of definitions, theorems, remarks, etc.
\begin{exercise}
    \ex\label{ex:foo:t1} Show that this is that.
    \begin{ans}
        This is that by casual observation.
    \end{ans}
    \ex Show that is this
    \begin{ans}
        Just reverse the answer to exercise \ref{ex:foo:t1}.
    \end{ans}
\end{exercise}
\end{document}

关于您对编号灵活性的要求,如果您写:

\setlist[exercise]{label*=\thesection.\arabic*.,ref=\thesection.\arabic*,before={\subsection*{Exercises}}}

然后你会得到:

截屏

如果你将来需要把答案和问题分开,那么你可能需要看看answers包;这是带有相关问题标签的问题链接:https://tex.stackexchange.com/questions/tagged/answers

相关内容