我想要的看起来很简单,但我找不到满意的答案。
我想要的是这样的
\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 的答案即可。
我还需要一些编号方面的灵活性。例如,对序言进行一些更改后,输出可能为:
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。