Більш структурований спосіб набору завдань у LaTeX


8

Я набираю деякі завдання з базовою структурою

Номер проблеми проблеми

Рішення

і я не дуже задоволений джерелом LaTeX, який я створюю. Наприклад

\section*{Problem 1}
In order to solve $a^2+b^2 = c^2$ ...

Це рішення не дуже добре, оскільки воно не використовує автоматичні лічильники, і хоч завдання короткі, я можу пізніше мати довші, і мені потрібен зміст.

Тепер проблеми в моєму контексті - це логічні розділи моїх документів, і тому \ section має сенс. Чи сказав би якийсь тип нової команди \ problem мати більше сенсу?


2
Ви знайдете більше запитань та відповідей щодо LaTeX на стеку Overflow, ніж супер користувача: stackoverflow.com/questions/tagged/latex . Див. Мета-запитання meta.stackexchange.com/questions/7135/… та meta.stackexchange.com/questions/12918/… для деяких обговорень, де такі питання є найбільш підходящими.
dmckee --- колишнє кошеня модератора

У програмі Stack Overflow це не було доречно, оскільки це було більш математичним завданням для домашніх завдань, а LaTeX не дуже програмований.
Полум’я

1
Це не зовсім зрозуміло, але, здається, є більше LaTeXers на SO, ніж SU, це все ...
dmckee --- кошеня колишнього модератора

Відповіді:


3

Я знайшов цей приклад. Це не зовсім те, що ви хочете, але якщо ви шукаєте лічильники, а також визначення лічильника та оновлення команди, ви повинні мати можливість робити саме те, що ви хочете, що мені було не зовсім зрозуміло.

\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}

9

Я використовую клас екзаменаційного документа для цього завдання. Тоді базовий документ виглядає так:

\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 з математичного відділу в коледжі Гарві Мудда.


1

Я б запропонував використовувати перелічення для організації проблем та використання розділів для їх групування. Наприклад:

\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 -х рівнів.


1

Для подібних речей я, мабуть, використовував би 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]}

Я змінив шрифт, {}щоб він впливав лише на це визначення середовища, а не на будь-які інші, які ви могли мати.


Я раніше це робив; потім я виявив класи документів, призначені для цього завдання.
las3rjock

0

Один із способів зробити це - використання середовища рівнянь:

\begin{equation}
\label{myeq}
a^2 + b^2 = c^2
\end{equation}

In order to solve \eqref{myeq} ...

Це дає вам пронумеровані рівняння та спосіб посилатися на них.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.