我想知道是否可以通过在目录中插入练习列表\tableofcontent
。
对于我的每一个练习,我都使用这样的模板:
\begin{exercise}[subtitle=title I would like to see in the TOC]
blablabla
\end{exercise}
答案1
是的,你可以用xsim
和 来做到这一点tocbasic
:这是一个有效的例子。
以下是我们所需要的:
- 告诉编译器我们想要每个练习都有一个目录条目,使用
\DeclareTOCStyleEntry
; - 声明一个新的练习模板
\DeclareExerciseEnvironmentTemplate
(告诉xsim
我们我们要按照自己的方式排版练习)。 \addxcontentsline{toc}{exercise}
在模板内添加一个命令,您可以在其中指定在该目录条目中写入的内容。- 使用以下方式查看练习的副标题
\GetExerciseProperty{subtitle}
干杯。
答案2
您有三个选择:
- 重新定义
default
模板, \subsection*
借助环境钩子局部改变定义,或者- 使用选项
exercise/heading
来选择合适的命令而不是默认的命令\subsection*
。
在我展示最后也是最简单的选择之前,还有其他需要考虑的事项:如果我们简单地更改\subsection*
为\subsection
练习,将获得小节编号和演习编号:
我不认为这是一个令人满意的解决方案。比如
\newcommand\addsubsec[1]{%
\subsection*{#1}%
\addcontentsline{toc}{subsection}{#1}%
}
似乎\xsimsetup{exercise/heading=\addsubsec}
有一个更好的解决方案:
\documentclass{article}
\usepackage{xsim}
\newcommand\addsubsec[1]{%
\subsection*{#1}%
\addcontentsline{toc}{subsection}{#1}%
}
\xsimsetup{exercise/heading=\addsubsec}
\begin{document}
\tableofcontents
\section{Exercises}
\begin{exercise}
This is the first problem.
\end{exercise}
\begin{exercise}[subtitle=Another Problem]
This is the second problem.
\end{exercise}
\end{document}