# The PreTeXt Guide

Runestone textbooks are designed around interactive activities and active reading. We are well along in the process of exposing these capabilities via PreTeXt markup, as of 2022-07-02. Expect this list to expand, and change slightly, as we make further progress. Publicly-accessible Runestone servers are availble at Runestone Academy 1 .
• Every feature of the usual PreTeXt HTML output should function identically on a Runestone server.
• Any <exercise> authored in PreTeXt can be electively rendered as a Runestone short answer question, when the Runestone platform is targeted as the host. A student can use notation in formulating their answer, and Runestone will provide the instructor an efficient interface for reviewing student responses, provide feedback, and assign scores.
• We have designed markup for the various types of problems available in Runestone: True/False, multiple choice, Parsons problems, matching, clickable area, (basic) fill-in, and ActiveCode programming exercises. Hosted on Runestone, readers have their responses graded and get instant feedback, plus their results are saved at the site. For other HTML output, hosted on your own server, these problems are automatically graded and the reader gets instant feedback, but of course, responses and scores are not saved anywhere.
• As much as possible, non-interactive versions of these problems will render in less-capable formats, like PDF, EPUB, and braille.
• A <program> element with the attribute @interactive set to activecode (even outside of a an exercise) will be realized as a Runestone ActiveCode interactive program, where programs can be edited, compiled, and run. In some cases a CodeLens interactive trace utility is also available. The @language must be set. Supported values for the language when hosted at Runestone are: python, python3, c, cpp (C++), javascript, java, octave (Matlab), sql, and html. When hosted on your own server, python, javascript, sql, and html, are supported with in-browser routines. So you do not need to configure anything server-side for this capability.
• Similarly, a <program> element with the attribute @interactive set to codelens (even outside of a an exercise) will be realized as a Runestone CodeLens interactive program. This allowa a reader to step through the program, much like in a debugger, but with more informative displays of the intermediate state of the program (and nothing like breakpoints or changing variable's values). This ability varies by language, and by hosting location.
• Every feature described for an <exercise> is also available for PROJECT-LIKE, and for individual terminal <task> within these structures.
• More PreTeXt markup for Runestone books is coming and will go here.
• All of the interactive exercises on a Runestone server can be worked by a student at the location in the book where they were authored, or a student may use the interface provided by the server (the assignment page) to locate exercises assigned by an instructor, at a location disjoint from the text itself.
• Additional activities are available when your book is hosted on a Runestone server, such as peer instruction. For example, you may choose an exercise, typically multiple-choice, for all the students to answer in class. Then the server can pair up students with different answers to discuss their responses before any more is know about the solution. This can be done through a chat window for a class where moving around is difficult.
• Students and instructors are provided extensive reports on progress.
Runestone.Academy
runestone.academy