维护结构工作簿样式

维护结构工作簿样式

- 修改 -

我正在看一本青少年数学练习册。其结构如下:

1.主要章节

1.1 子章节

1.11 任务 1

a) 问题 1 b) 问题 2 c) 问题 3

d) 问题 4 e) 问题 5

1.12 任务 2

ETC。 ...

许多数学问题都非常小,很自然地会将它们水平地放在一行上。但是表达式通常会在等号处断开并对齐。与方程式没有什么不同(但又不一样)。其次,当包含结构的行断开时,项目指示器也会对齐,假设使用了枚举列表。

我如何合理地假设这是完成的?它是否必须是一种强制方法,如表格,还是可以是一种灵活的方法,如内联?

答案1

使用此shortlst包你几乎是安全的。在这种情况下,你可以这样写:

Solve the following equations for $x$.
\begin{shortenumerate}
  \item $2(x+2)=20$
  \item $4-4x=12$
  \item $x+5x-6=12$
  \item $4x-4x+3x=18$
  \item $3x=12$
\end{shortenumerate}

这将产生以下输出:

工作簿_1

如图所示,需要检查单个任务的宽度才能真正获得干净一致的解决方案。这(以及字母数字标签的小补丁)由WorkbookTasks以下代码中定义的环境自动完成。当然,正如您在评论中所要求的那样,任务是可索引的。

\documentclass{book}
\usepackage{shortlst}
\usepackage{makeidx}
  \makeindex

\makeatletter
\newdimen\wb@task@maxdimen \wb@task@maxdimen0pt
\newtoks\wb@task@items
\def\Task{\begingroup\catcode`\^^M=12 \Task@}
\bgroup\catcode`\^^M=12 %
  \gdef\Task@#1^^M{%
    \settowidth\@tempdima{#1}%
    \ifdim\@tempdima>\wb@task@maxdimen%
      \global\wb@task@maxdimen\the\@tempdima\fi%
      \global\wb@task@items=\expandafter{\the\wb@task@items \item #1}%
    \endgroup}%
\egroup
\let\leftbracket=[
\def\WorkbookTasks{\futurelet\next\WorkbookTasks@}
\def\WorkbookTasks@{%
  \ifx\next\leftbracket
    \expandafter\WorkbookTasks@@
  \else
    \expandafter\WorkbookTasks@@@
  \fi}
\def\WorkbookTasks@@[#1]{%
  \xdef\wb@ex@text{#1}
  \WorkbookTasks@@@}
\def\WorkbookTasks@@@{%
  \def\labelenumi{\@alph\c@enumi)}}
\def\endWorkbookTasks{%
  \par \noindent\wb@ex@text
  \begin{shortenumerate}[\hbox to \the\wb@task@maxdimen{\hfil}]
    \the\wb@task@items
  \end{shortenumerate}
  \global\wb@task@maxdimen0pt
  \global\wb@task@items={}
  \global\let\wb@ex@text\@empty
  \par}%
\makeatother

\begin{document} 

\chapter{Main chapter}
\section{Subchapter}
\subsection{Task 1}

Solve the following equations for $x$.
\begin{shortenumerate}
  \item $2(x+2)=20$
  \item $4-4x=12$
  \item $x+5x-6=12$
  \item $4x-4x+3x=18$
  \item $3x=12$
\end{shortenumerate}

\subsection{Task 2}

\begin{WorkbookTasks}[Solve the following equations for $x$.]
  \Task $2(x+2)=20$
  \Task $4-4x=12$
  \Task $x+5x-6=12$    \index{Special exercise (that needs to appear in the index)}
  \Task $4x-4x+3x=18$
  \Task $3x=12$
\end{WorkbookTasks}

\subsection{Task 3}

\begin{WorkbookTasks}[Solve the following equations for $y$.]
  \Task $2y=10$
  \Task $4(y+2y)=12$
  \Task $3y=1$
  \Task $y+1=1$
  \Task $y-2=0$
\end{WorkbookTasks}

\printindex
\end{document}

工作簿2

相关内容