% \iffalse meta-comment % vim: textwidth=75 %<*internal> \iffalse % %<*readme> | ------------:| ------------------------------------------------------------ ximera:| Simultaneously write print and online interactive materials Author:| Jim Fowler and Oscar Levin and Jason Nowell and Wim Obbels and Hans Parshall and Bart Snapp E-mail:| bart.snapp@gmail.com License:| Released under the LaTeX Project Public License v1.3c or later See:| http://www.latex-project.org/lppl.txt Short description: Some text about the class: probably the same as the abstract. % %<*internal> \fi \def\nameofplainTeX{plain} \ifx\fmtname\nameofplainTeX\else \expandafter\begingroup \fi % %<*install> \input docstrip.tex \keepsilent \askforoverwritefalse \preamble ------------:| ------------------------------------------------------------ ximera:| Simultaneously writing print and online interactive materials Author:| Jim Fowler and Oscar Levin and Jason Nowell and Wim Obbels and Hans Parshall and Bart Snapp E-mail:| bart.snapp@gmail.com License:| Released under the LaTeX Project Public License v1.3c or later See:| http://www.latex-project.org/lppl.txt \endpreamble \postamble Copyright (C) 2024 by Bart Snapp and Jim Fowler This work may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this license or (at your option) any later version. The latest version of this license is in the file: http://www.latex-project.org/lppl.txt This work is "maintained" (as per LPPL maintenance status) by Bart Snapp. The source code can be found at: https://github.com/XimeraProject/ximeraLatex This work consists of the file ximera.dtx, the associated files under src/, and a Makefile. Running "make" generates the derived files README, ximera.pdf, ximera.cls, xourse.cls. Running "make inst" installs the files in the user's TeX tree. Running "make install" installs the files in the local TeX tree. \endpostamble \usedir{tex/latex/ximera} \input docstrip \askforoverwritefalse \generate{ \file{ximera.cls}{ \from{ximera.dtx}{classXimera} \from{src/banner.dtx}{classXimera} \from{src/options.dtx}{classXimera} \from{src/packages.dtx}{classXimera} \from{src/tikzexport.dtx}{classXimera} \from{src/hyperref.dtx}{classXimera} \from{src/suppress.dtx}{classXimera} \from{src/makeCounter.dtx}{classXimera} \from{src/pagesetup.dtx}{classXimera} \from{src/metadata.dtx}{classXimera} \from{src/outcomes.dtx}{classXimera} \from{src/macros.dtx}{classXimera} \from{src/theorems.dtx}{classXimera} \from{src/enumerate.dtx}{classXimera} \from{src/proof.dtx}{classXimera} \from{src/only.dtx}{classXimera} \from{src/problem.dtx}{classXimera} \from{src/hints.dtx}{classXimera} \from{src/abstract.dtx}{classXimera} \from{src/title.dtx}{classXimera} \from{src/image.dtx}{classXimera} \from{src/interactives/javascript.dtx}{classXimera} \from{src/interactives/include.dtx}{classXimera} \from{src/interactives/geogebra.dtx}{classXimera} \from{src/interactives/desmos.dtx}{classXimera} \from{src/interactives/google.dtx}{classXimera} \from{src/interactives/graph.dtx}{classXimera} \from{src/link.dtx}{classXimera} \from{src/interactives/video.dtx}{classXimera} \from{src/answer.dtx}{classXimera} \from{src/choice.dtx}{classXimera} \from{src/solution.dtx}{classXimera} \from{src/feedback.dtx}{classXimera} \from{src/freeresponse.dtx}{classXimera} \from{src/verbatim.dtx}{classXimera} \from{src/dialogue.dtx}{classXimera} \from{src/instructornotes.dtx}{classXimera} \from{src/xkcd.dtx}{classXimera} \from{src/foldable.dtx}{classXimera} \from{src/leash.dtx}{classXimera} \from{src/interactives/sagemath.dtx}{classXimera} \from{src/jax.dtx}{classXimera} \from{src/ungraded.dtx}{classXimera} \from{src/clearEnv.dtx}{classXimera} \from{src/hideEnv.dtx}{classXimera} } } \generate{ \file{xourse.cls}{ \from{ximera.dtx}{classXourse} \from{src/optionsxourse.dtx}{classXourse} \from{src/activity.dtx}{classXourse} \from{src/sectioning.dtx}{classXourse} \from{src/logo.dtx}{classXourse} \from{src/graded.dtx}{classXourse} } } \generate{ \file{ximera.cfg}{ \from{ximera.dtx}{cfgXimera} \from{src/pagesetup.dtx}{cfgXimera} \from{src/packages.dtx}{cfgXimera} \from{src/jax.dtx}{cfgXimera} \from{src/sectioning.dtx}{cfgXimera} \from{src/title.dtx}{cfgXimera} \from{src/abstract.dtx}{cfgXimera} \from{src/image.dtx}{cfgXimera} \from{src/outcomes.dtx}{cfgXimera} \from{src/textcolor.dtx}{cfgXimera} \from{src/verbatim.dtx}{cfgXimera} \from{src/html.dtx}{cfgXimera} \from{src/ending.dtx}{cfgXimera} } } \generate{ \file{ximera.4ht}{ \from{ximera.dtx}{htXimera} \from{src/pagesetup.dtx}{htXimera} \from{src/title.dtx}{htXimera} \from{src/problem.dtx}{htXimera} \from{src/macros.dtx}{htXimera} \from{src/theorems.dtx}{htXimera} \from{src/image.dtx}{htXimera} \from{src/dialogue.dtx}{htXimera} \from{src/foldable.dtx}{htXimera} \from{src/interactives/video.dtx}{htXimera} \from{src/xkcd.dtx}{htXimera} \from{src/link.dtx}{htXimera} \from{src/interactives/graph.dtx}{htXimera} \from{src/answer.dtx}{htXimera} \from{src/choice.dtx}{htXimera} \from{src/freeresponse.dtx}{htXimera} \from{src/interactives/javascript.dtx}{htXimera} \from{src/interactives/include.dtx}{htXimera} \from{src/interactives/geogebra.dtx}{htXimera} \from{src/interactives/desmos.dtx}{htXimera} \from{src/interactives/google.dtx}{htXimera} \from{src/feedback.dtx}{htXimera} \from{src/leash.dtx}{htXimera} \from{src/labels.dtx}{htXimera} \from{src/interactives/sagemath.dtx}{htXimera} \from{src/ungraded.dtx}{htXimera} \from{src/footnotes.dtx}{htXimera} \from{src/ending.dtx}{htXimera} } } \generate{ \file{xourse.4ht}{ \from{ximera.dtx}{htXourse} \from{src/logo.dtx}{htXourse} \from{src/metadata.dtx}{htXourse} \from{src/activity.dtx}{htXourse} \from{src/sectioning.dtx}{htXourse} \from{src/graded.dtx}{htXourse} \from{src/interactives/video.dtx}{htXourse} \from{src/ending.dtx}{htXourse} } } % %\endbatchfile %<*internal> \usedir{source/latex/ximera} \generate{ \file{ximera.ins}{\from{\jobname.dtx}{install}} } \nopreamble\nopostamble \usedir{doc/latex/ximera} \generate{ \file{README.txt}{\from{\jobname.dtx}{readme}} } \ifx\fmtname\nameofplainTeX \expandafter\endbatchfile \else \expandafter\endgroup \fi % % \fi % % \iffalse %<*driver> \ProvidesFile{ximera.dtx} % %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesClass{ximera} %\ProvidesClass{xourse} % [2024/05/12 v1.5.1 % Simultaneously write print and online interactive materials] % Combining Ximera activities into Xourses] %<*driver> \documentclass{ltxdoc} \usepackage[a4paper,margin=25mm,left=50mm,nohead]{geometry} \usepackage[numbered]{hypdoc} \usepackage{hyperref} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{\jobname.dtx} \section{ximera.cls} \DocInput{src/options.dtx} \DocInput{src/packages.dtx} \DocInput{src/pagesetup.dtx} \subsection{Structure} \DocInput{src/macros.dtx} \DocInput{src/theorems.dtx} \DocInput{src/enumerate.dtx} \DocInput{src/proof.dtx} \DocInput{src/problem.dtx} \DocInput{src/hints.dtx} \DocInput{src/solution.dtx} \DocInput{src/verbatim.dtx} \DocInput{src/dialogue.dtx} \DocInput{src/instructornotes.dtx} \DocInput{src/only.dtx} \DocInput{src/foldable.dtx} \DocInput{src/leash.dtx} \subsection{Document metadata} \DocInput{src/metadata.dtx} \DocInput{src/abstract.dtx} \DocInput{src/title.dtx} \DocInput{src/outcomes.dtx} \DocInput{src/labels.dtx} \subsection{Images} \DocInput{src/image.dtx} \DocInput{src/tikzexport.dtx} \DocInput{src/xkcd.dtx} \subsection{Links} \DocInput{src/hyperref.dtx} \subsection{Interactives} \DocInput{src/interactives/include.dtx} \DocInput{src/interactives/google.dtx} \DocInput{src/interactives/geogebra.dtx} \DocInput{src/interactives/desmos.dtx} \DocInput{src/interactives/graph.dtx} \DocInput{src/interactives/video.dtx} \DocInput{src/interactives/javascript.dtx} \DocInput{src/interactives/sagemath.dtx} \subsection{Answerables} \DocInput{src/answer.dtx} \DocInput{src/choice.dtx} \DocInput{src/freeresponse.dtx} \DocInput{src/feedback.dtx} \DocInput{src/ungraded.dtx} \subsection{Support for the web} \DocInput{src/jax.dtx} \DocInput{src/html.dtx} \subsection{Tools} \DocInput{src/suppress.dtx} \DocInput{src/ending.dtx} \section{xourse.cls} \DocInput{src/optionsxourse.dtx} \DocInput{src/activity.dtx} \DocInput{src/sectioning.dtx} \DocInput{src/graded.dtx} \DocInput{src/logo.dtx} \end{document} % % \fi % %\def\fileversion{v1.5.1} %\def\filedate{2024/05/12} % \DoNotIndex{\newcommand,\newenvironment} % %\title{\textsf{ximera} --- Simultaneously write print and online interactive materials.\thanks{This file % describes version \fileversion, last revised \filedate.} %} %\author{Jim Fowler \and Jeramiah Hocutt \and Oscar Levin \and Jason Nowell \and Wim Obbels \and Hans Parshall \and Bart Snapp} %\date{Released \filedate} % %\maketitle % %\changes{v1.0.0}{2018/05/25}{First public release} %\changes{v1.5.0}{2024/05/08}{Submitting to CTAN} %\changes{v1.5.1}{2024/05/12}{Fixed date bug} % \begin{abstract} % ``\textsf{Ximera} begins where \TeX\ ends.'' The \textsf{ximera} % class aids in the creation of handouts, worksheets, exercises, and % sections of textbooks to be used either individually or ``glued'' % together via a \textsf{xourse} file. All \textsf{ximera} documents % can be deployed in an online interactive form via \texttt{xake} % See: \href{https://ximera.osu.edu}{Ximera Project} and the source % code on \href{https://github.com/XimeraProject}{GitHub}. % \end{abstract} % % \section{Introduction} % % Ximera, pronounced ``chimera,'' (\textbf{X}imera: % \textbf{I}nteractive, \textbf{M}athematics, % \textbf{E}\textbf{R}esources, for \textbf{A}ll) is an open-source % platform that provides tools for authoring and publishing (PDF and % Online), open-source, interactive educational content, such as textbooks, assessments, and online courses. % The Ximera document class provides the following features: % \begin{description} % \item[Formatting for different domains] The Ximera document class % provides built-in support for formatting documents in both PDF and % online formats, which can be a big time-saver for % authors. Additionally, it allows for the simultaneous creation of % solution manuals and teaching editions, which can be especially % useful for educators. %\item[Compiling individually or as a whole] With the Ximera document % class, authors can easily compile individual documents or an entire % collection of documents. This flexibility can be helpful when making % changes to specific documents without having to re-compile the % entire collection. Moreover, this allows an author to share large % portions of a text with another, with minimal changes. %\item[Interactive content] The Ximera document class allows for the % inclusion of interactive content, such as answer boxes that are % validated by a client-side computer algebra system. Additionally, it % allows for the embedding of YouTube videos, Desmos graphs, and % GeoGebra interactives. %\item[All content displayed] By default, the Ximera document class % displays all content to the author. This means the author see what % the students see, along with answers and solutions, and links (that % can be checked) to various interactive elements (when deployed, the % interactive elements are truly embedded). This can be especially % helpful for catching errors or inconsistencies in the content. %\end{description} % %Online examples can be found at %\begin{center} %\url{https://go.osu.edu/ximera-examples} %\end{center} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\Finale