Более структурированный способ ввода наборов в LaTeX
Я набираю некоторые задания с базовой структурой
Проблема номер проблемы
Решение
и я не очень доволен источником LaTeX, который я делаю. Например
\section*{Problem 1}
In order to solve $a^2+b^2 = c^2$ ...
Это решение не очень хорошее, так как оно не использует автоматические счетчики, и, хотя задания короткие, я мог бы иметь более длинные позже и нуждаться в оглавлении.
Теперь проблемы в моем контексте являются логическими разделами моих документов, и поэтому \ section имеет смысл. Будет ли какой-то тип новой команды сказать \ проблема имеет больше смысла?
5 ответов
Я нашел этот пример. Это не совсем то, что вы хотите, но если вы посмотрите с помощью счетчиков и определений новой и новой команд, вы сможете сделать именно то, что вы хотите, что мне было не совсем понятно.
\documentclass{article}
\begin{document}
\newcounter{set}
\setcounter{set}{2}
\newcounter{problem}[set]
\newcommand{\problem}{\refstepcounter{problem}{\vspace{2\baselineskip}\noindent\large \bfseries Problem~\arabic{set}.\arabic{problem}}\\}
\problem
\textit{Sum-product algorithm:} Consider the sum-product\ldots.
\problem
\textit{Max-marginals:} Consider the max-marginals\ldots.
\stepcounter{problem}
\problem
Demonstraction of \verb"\stepcounter"
\addtocounter{problem}{-1}
\problem
Counter increments can be negative!
\end{document}
Я использую класс документа экзамена для этой задачи. Основной документ тогда выглядит так:
\documentclass[answers]{exam}
\begin{document}
\firstpageheader{}{}{\bf\large Name \\ Class \\ Assignment \\ Due Date}
\runningheader{Name}{Class Assignment}{Due Date}
\begin{questions}
\question
This is the question.
\begin{solution}
This is the solution to the question.
\end{solution}
\end{questions}
\end{document}
До открытия экзаменационного класса я использовал документный класс hmcpset из математического факультета в колледже Харви Мадда.
Я бы предложил использовать перечисление для организации проблем и использовать разделы для их группировки. Например:
\begin{enumerate}
\item
The ``enumerate'' environment numbers the list elements, like this.
Items in a list can contain multiple paragraphs.
These paragraphs are appropriately spaced and indented according to their
position in the list.
\begin{itemize}
\item The ``itemize'' environment sets off list items with ``bullets'',
like this. Finally, the ``description'' environment lets you put your own
\begin{description}
\item[A] label on each item, like this ``A''.
\item[If the label is long,] the first line of the item text will
be spaced over to the right as needed.
\end{description}
\end{enumerate}
Взято из pangea.stanford.edu LaTeX по примеру
Это дает вам больше гибкости в структурировании деталей ваших индивидуальных заданий - например, вы можете перечислять настолько глубоко, насколько вам нужно, но вы можете разделить разделы только на 3 уровня.
Для такого рода вещей я бы, вероятно, использовал theorem
пакет. Используя его, вы можете определить теоремоподобную среду следующим образом:
\newtheorem{problem}{Problem}[chapter]
Здесь необязательный аргумент [chapter]
говорит, что нумерация должна выполняться для каждой главы, поэтому вы получаете нумерацию как 1.1, 1.2 в первой главе, 2.1 во второй главе и так далее. Если вы просто хотите использовать последовательную нумерацию по всему документу, вообще не используйте этот аргумент.
И вы бы использовали это так:
\begin{problem}\label{prob:1}
... text here
\end{problem}
Конечно, вы хотели бы дать ему более описательный ярлык, чем просто prob:1
,
Кроме того, при наборе текста по умолчанию текст выделяется курсивом. Вы можете изменить это, заменив определение чем-то вроде
{\theorembodyfont{\rmfamily}\newtheorem{problem}{Problem}[chapter]}
Я включил изменение шрифта в {}
так что это влияет только на это определение среды, а не на любые другие, которые у вас могут быть.
Один из способов сделать это - использовать уравнение среды:
\begin{equation}
\label{myeq}
a^2 + b^2 = c^2
\end{equation}
In order to solve \eqref{myeq} ...
Это дает вам пронумерованные уравнения и способ ссылаться на них.