为数学书定义一个灵活的环境

为数学书定义一个灵活的环境

我正在排版一本问题解答式的数学书。我还没有决定最终的“外观”(标题等的样式)。现在,我的主要关注点之一是尽可能灵活,这样只需摆弄初始设置就可以设计最终的外观。(而不是检查整个工作并手动逐一更改。)

我主要有几章,每章都有“问题 #N”,后面跟着“解决方案 #N”。我不知道这是否是正确的决定,但最初我决定:

\newtheoremstyle{problemstyle}  % <name>
        {12pt}                  % <space above>
        {12pt}                  % <space below>
        {\normalfont}           % <body font>
        {}                      % <indent amount}
        {\bfseries}             % <theorem head font>
        {\normalfont\bfseries:} % <punctuation after theorem head>
        {.5em}                  % <space after theorem head>
        {}                      % <theorem head spec>
\theoremstyle{problemstyle}

\newtheorem{problem}{Problem}[chapter] % Comment out [section] to remove section number dependence

\newtheoremstyle{solutionstyle} % <name>
        {12pt}                  % <space above>
        {12pt}                  % <space below>
        {\normalfont}           % <body font>
        {}                      % <indent amount}
        {\bfseries}             % <theorem head font>
        {\normalfont\bfseries:} % <punctuation after theorem head>
        {.5em}                  % <space after theorem head>
        {}                      % <theorem head spec"normal")>
\theoremstyle{solutionstyle}

\newtheorem{solution}{Solution}[chapter] % Comment out [section] to remove section number dependence

我将每个问题都输入其中\begin{problem} .. \end{problem}(解决方案相同。)

问题

抛开我已经做过的事情,并考虑到我的设计相关决定/想法变化的灵活性和面向未来性:

1)我是否应该将问题(解决方案)封闭在某些自定义环境中?(或者我应该简单地为每个问题开始一个新的部分,为每个解决方案开始一个新的部分。(也许,使用titlesec-like 包进行样式设置?))

2)如果是,那么定义环境的一个好方法是什么,以便它会自动插入问题#N(例如,将按章节号编号,然后按章节内的问题编号编号),我可以无限制地设置问题#N的样式?(例如,环境是否应该自动启动某个部分(或小节)?)

答案1

我认为您的概念非常灵活且面向未来。您必须分离环境并可以根据自己的喜好进行更改,而无需更改文档的其余部分。因此不会出现太多问题。您甚至可以随时决定不再使用定理。

这是针对其中一种环境的最小适配版本。您可以根据自己的喜好完全更改整个标题等。但您可能应该先阅读一些关于 (La)TeX 构造(如计数器等)的介绍性材料。

\documentclass{report}

\newcounter{problem}[chapter]
\newenvironment{problem}{
  \refstepcounter{problem}
  \noindent\textbf{Problem \thechapter.\theproblem}\vskip1em
}{\vskip2\baselineskip}

\begin{document}
\chapter{Test}
\begin{problem}
Some problem
\end{problem}
\begin{problem}
Some other problem
\end{problem}
\chapter{Test}
\begin{problem}
Some problem
\end{problem}
\end{document}

相关内容