\section{\ldeen{Standalone}{Standalone}}
\label{sec:standalone}

\ldeen{Neben dem Serienbetrieb, den wir bisher betrachtet haben, besitzt
\osglecture\ noch eine zweite Betriebsart, den Standalone-Betrieb.
Er dient dazu, ein einzelnes Dokument in der durch ein \osglecture-Profil
bestimmten Weise zu übersetzen, ohne dafür ein Kursmanifest und eine
Verzeichnisserie anzulegen. Ein typischer Anwendungsfall ist der Foliensatz
für einen Vortrag auf einer wissenschaftlichen Konferenz.}{In addition to the
series workflow considered so far, \osglecture\ provides a second mode of
operation: standalone mode. It typesets a single document using an
\osglecture\ profile without requiring a course manifest and a series of unit
directories. A typical use case is a slide deck for a talk at a scientific
conference.}

\ldeen{Im Standalone-Betrieb beschreibt das Dokument seine
Ausgabe selbst und besitzt weder Buildauftrag noch
Serienmanifest. Die fachlichen Befehle
bleiben weitgehend gleich; unterschiedlich ist vor allem, woher Kontext und
Defaults stammen.}{In standalone operation, the document describes its own
output and is typeset without a project manifest. The subject-facing commands
remain largely the same; the main difference is where context and defaults
come from.}

\ldeen{Ein Standalone-Dokument hat weder Buildauftrag noch Serienmanifest und
muss dies mit der Klassenoption \option{standalone} ausdrücklich erklären.
Alternativ versteht \OLLM\ den Komfortaufruf \code{ollm standalone main.tex}.
Der direkte Klassenmodus ist meist einfacher: Ohne eine Menge automatisch zu erzeugender Dokumentinstanzen,
Serienabhängigkeiten oder Deployment gibt es für \OLLM\ wenig zu koordinieren,
und \code{latexmk main.tex} genügt.}{A standalone document has neither a build
request nor a series manifest and must declare this explicitly with the
\option{standalone} class option. Alternatively, \OLLM\ supports the convenience
command \code{ollm standalone main.tex}. Using the class mode directly is
usually simpler: without a set of automatically generated document instances, series dependencies, or deployment,
there is little for \OLLM\ to coordinate, and \code{latexmk main.tex} is
sufficient.}

\begin{infobox}{\ldeen{Hinweis}{Hint}}
\ldeen{Die Wahl ist eine Frage des Problems, nicht der Dokumentlänge: Ein
vierseitiges Handout, das in drei Sprachen zusammen mit zwölf Lehreinheiten
gebaut wird, gehört in eine Serie. Ein hundertseitiger einmaliger Tagungsband
ohne Nachbardokumente kann dagegen Standalone sein.}{The choice depends on the
problem, not on document length: a four-page handout built in three languages
alongside twelve course units belongs in a series. A one-off hundred-page
conference volume without neighbouring documents may still be standalone.}
\end{infobox}

\ldeen{Dokumenttyp und Sprache, die in einer Serie von \OLLM\
kommen, werden nun mit \option{doctype} und \option{lang} gewählt. Mit
\option{profile} kann das Dokumentprofil überschrieben werden}{The document type
and language that \OLLM\ supplies in a series are now selected with
\option{doctype} and \option{lang}. The document profile can be overridden
with \option{profile}}:

\begin{verbatim}
\documentclass[
  standalone,
  doctype=script,
  profile=scrbook,
  lang=de,
  class-options={11pt,oneside}
]{osglecture}
\end{verbatim}

\ldeen{In diesem Beispiel ist \code{script} die semantische Ausgabeform,
\cls{scrbook} die technische Satzklasse und \code{de} die unmittelbar im
Dokument gewählte Sprache. In einer Serie kämen diese drei Entscheidungen aus
Manifest und Projektkonfiguration; Standalone macht sie absichtlich am
Dokument sichtbar.}{In this example, \code{script} is the semantic output form,
\cls{scrbook} is the technical typesetting class, and \code{de} is the language
selected directly by the document. In a series these three decisions would
come from the manifest and project configuration; standalone mode deliberately
makes them visible in the document.}

\ldeen{\option{doctype} ist ohne Angabe \code{slides}; für die eingebauten
Dokumenttypen existieren Defaultprofile. Explizite Werte machen ein
Standalone-Dokument dennoch verständlicher und reproduzierbarer.
\option{class-options} reicht Optionen direkt an die vom Profil gewählte
Basisklasse weiter. Eine gleichzeitig vorhandene OLLM-Auftragsdatei und die
Option \option{standalone} sind ein Fehler, weil sonst zwei Quellen denselben
Buildkontext bestimmen würden.}{\option{doctype} defaults to \code{slides},
and built-in document types have default profiles. Explicit values nevertheless
make a standalone document clearer and more reproducible.
\option{class-options} passes options directly to the base class selected by
the profile. Having both an OLLM build request and the \option{standalone}
option is an error because two sources would otherwise determine the same build
context.}

\ldeen{Ohne Manifest wird \File{Include/projectconfig.tex} nicht automatisch
gefunden. Gemeinsam genutzte Pakete, Sprachkonfiguration, Titel und eigene
Makros müssen daher im Dokument geladen oder ausdrücklich aus einer Datei
eingelesen werden. Ein eigenständiges mehrsprachiges Skript kann beispielsweise
so beginnen}{Without a manifest,
\File{Include/projectconfig.tex} is not discovered automatically. Shared
packages, language configuration, title, and custom commands must therefore be
loaded in the document or explicitly read from a file. A standalone
multilingual script might begin as follows}:

\begin{verbatim}
\documentclass[standalone,doctype=script,profile=scrbook,lang=de]
  {osglecture}
\usepackage[
  languages={de,en},
  targetlang=de,
  map={de=ngerman,en=british},
  load babel
]{langselect}
\title{\ldeen{Betriebssysteme}{Operating Systems}}
\end{verbatim}

\ldeen{Profile wie \cls{ltx-talk} verlangen
\cs{DocumentMetadata} bereits vor
\cs{documentclass}. In einem Standalone-Dokument gibt es keine
von OLLM vorgeschaltete \File{documentmetadata.tex}; der Aufruf muss daher
wirklich am Dateianfang stehen}{Profiles such as \cls{ltx-talk} require
\cs{DocumentMetadata} before
\cs{documentclass}. A standalone document has no
\File{documentmetadata.tex} inserted by OLLM, so the call must genuinely be
placed at the start of the file}:

\begin{verbatim}
\DocumentMetadata{lang=en,tagging=on}
\documentclass[
  standalone,doctype=slides,profile=ltx-talk,lang=en
]{osglecture}
\end{verbatim}

\ldeen{Sie können ein solches Dokument direkt mit Lua\LaTeX\ beziehungsweise
\code{latexmk} bauen. Der kompatible Komfortaufruf
\code{ollm standalone main.tex} verwendet ebenfalls die Klassenoptionen;
Target-, Sprach- und Matrixoptionen von OLLM sind dabei nicht zulässig. Ohne
Serienzustand gibt es keine externen Unit-Referenzen, Counter-Continuation oder
\cs{includeunit}-Auflösung. Lokale Referenzen und alle
modusabhängigen Darstellungsbefehle funktionieren unverändert.}{Such a
document can be built directly with Lua\LaTeX\ or \code{latexmk}. The
compatible convenience command \code{ollm standalone main.tex} also uses the
class options; OLLM target, language, and matrix options are not permitted in
this mode. Without series state there are no external unit references, counter
continuation, or \cs{includeunit} resolution. Local references and
all mode-aware rendering commands continue to work unchanged.}
