ORE Studio Manual
Table of Contents
Summary
The ORE Studio user manual is a PDF produced by Emacs ox-latex
(org-latex-export-to-pdf), driven by ores-build-manual.el in
ores.lisp. The source is
doc/manual/user_guide/user_manual.org; output lands alongside it as
user_manual.pdf. The layout uses the tufte-book LaTeX class for
wide-margin typography. compass build --direct manual runs the
full pipeline in one step via emacs -Q --script
projects/ores.lisp/src/ores-build-manual.el (the equivalent
deploy_manual CMake target does the same in a full environment).
Detail
Build pipeline
./compass.sh build --direct manual
This invokes emacs -Q --script projects/ores.lisp/src/ores-build-manual.el,
which calls org-latex-export-to-pdf on
doc/manual/user_guide/user_manual.org. LaTeX is run twice
(pdflatex × 2) so that cross-references and the table of contents
are fully resolved.
LaTeX classes
Two custom classes are registered in ores-build-manual.el:
ores-manual— a plainbookclass (a4paper, 11pt). Heading hierarchy:*→\chapter,**→\section, etc. Used as a fallback.ores-tufte— the primary class, based ontufte-book(a4paper, justified). Provides the wide-margin aesthetic: sidenotes, margin figures, and full-bleed headings.tufte-bookmanages its own geometry, fonts, and hyperref;user_manual.orgkeeps only a minimal preamble.
Margin figures
Small figures (width ≤ 510 px AND height ≤ 320 px) are automatically
promoted to LaTeX marginfigure environments by the
ores/figures-to-margin filter, registered via
org-export-filter-final-output-functions. Larger screenshots stay
in the text column. This transform is LaTeX-only; the HTML site is
unaffected.
The filter inspects each \begin{figure}…\end{figure} block,
reads the PNG header of the referenced image to get pixel dimensions,
and rewrites the block to \begin{marginfigure} when both thresholds
are met.
Image width
org-latex-image-default-width is set to \\maxwidth, a custom
LaTeX macro defined in user_manual.org that yields the image's
natural pixel width when it is smaller than 0.6\linewidth, and
0.6\linewidth otherwise. This prevents large dialog screenshots
from overflowing the text column while letting small crops render at
their natural size.
Link conventions
The manual is exported to both PDF (pdflatex) and HTML (via the site
pipeline). The two exporters handle links differently, so authors must
follow these rules:
- Internal links (within the manual):
[[id:UUID]]org-roam links between manual chapter files are permitted. The exporter resolves them as\hyperrefinternal cross-references in the PDF and as anchor links in the HTML. Both work correctly. - External links (outside the manual):
[[id:UUID]]links to any document outsidedoc/manual/— knowledge docs, recipes, agile artefacts — must not be used in chapter files. Thedeploy_manualpipeline scans only the manual's own org-id index; an unresolvable ID aborts the export with an error. Use a plain HTTP URL ([[https://example.com][label]]) or a plain text citation instead. If the target document has a canonical public URL (e.g. an ISO standard or a Wikipedia article) use that. If there is no public URL, use italic prose:/Document Title/ (=path/to/file.org)=. - Image links:
[[file:../../../assets/images/foo.png]]links are fine; they resolve to the asset path at export time. - Site-only files (
user_manual_site.org,manuals.org): these are not included in the PDF export and may freely use[[id:UUID]]links for site navigation.
Version stamping
The cover page version number is read at export time from
CMakeLists.txt by ores/cmake-version, which greps for the
project(OreStudio VERSION …) line. This keeps the PDF cover in
sync with the single source of truth without any manual update step.
Title page
A custom org-latex-title-command generates the cover page:
centred title, author, version, and the login-screen screenshot
(assets/images/login_screen.png) scaled to 60% of the text width.
See also
- ORE Studio Manuals — the user-facing manuals index; for the available manuals and their PDF downloads, start here.
- ores.lisp — component overview; lists
ores-build-manual.elunder Source files. - ORE Studio Site — the companion page covering HTML site build and menu bar.