The first line of .compose and .composed files must be:
.* 「」 Lingenic Compose 1.1
The version number (here 1.1) identifies which specification the document targets. Tools use this to determine feature availability and compatibility. Omitting the version implies the latest stable release.
Processing pipeline: .compose → process → .composed → render → PDF / HTML / terminal.
.composed files have static content (variables, conditionals, includes resolved) but active navigation (URLs, internal references, cross-references preserved). Like PDF: content is fixed, links still work.
Units
Default
Short
Verbose
Unit
Scale
(none)
—
Centipoints
7200 per inch (Compose internal unit)
Bare numbers without a unit suffix are centipoints — the original Compose fine-positioning unit, 100× finer than standard 72 DPI, allowing detail at holographic levels.
Typographic
Short
Verbose
Unit
Scale
mp
millipoints
Millipoints
72000 per inch (1/1000 point)
pt
points
Points
72 per inch (standard DTP)
pc
picas
Picas
6 per inch (12 points)
cc
ciceros
Ciceros
~5.63 per inch (European)
Metric
Short
Verbose
Unit
Scale
mm
millimeters
Millimeters
25.4 per inch
cm
centimeters
Centimeters
2.54 per inch
m
meters
Meters
Large format output
Imperial
Short
Verbose
Unit
Scale
in
inches
Inches
1 inch
Relative
Short
Verbose
Unit
Scale
ln
lines
Lines
Current line spacing
Values can be absolute or relative (+ or - prefix).
Examples:
.indent 7200 1 inch (7200 centipoints)
.indent 1in 1 inch
.indent 72pt 1 inch (72 standard points)
.indent 100 100 centipoints (fine positioning)
Text Alignment
Command
.align-both
.align-center
.align-inside
.align-left
.align-outside
.align-right
Content Blocks
Command
.begin-artwork / .end-artwork
.begin-footnote / .end-footnote
.begin-keep / .end-keep
.begin-literal / .end-literal
.begin-picture / .end-picture
.title (single-line title)
Breaks
Command
.break
.break-block
.break-column
.break-format
.break-need
.break-page
.break-skip
.break-word
Change Bars
Command
.change-bars-addition
.change-bars-deletion
.change-bars-modification
.change-bars-off
.change-bars-on
Conditionals
Command
.if
.then
.else
.elseif
.endif
Delimiters
Command
.change-symbol-delimiter
.change-title-delimiter
Fill Mode
Command
.fill-default
.fill-off
.fill-on
Fonts
Command
.font
.font-name name
.font-size size
Footnotes
Command
.footnote-reference
.footnotes-held
.footnotes-paged
.footnotes-running
.footnotes-unreferenced
.insert-footnotes
Headers and Footers
Multics had multiple redundant forms. Lingenic simplifies: .begin-header / .end-header (multi-line) and position commands (single-line).
Single-line commands. Long text wraps when rendered.
.title Chapter One: Introduction
.caption Figure 1: System Architecture
Command
.title
.caption
Character Translation
Character substitution using pattern syntax.
.translate from {a} to {b} .* global mode — all subsequent text
.translate my_text from {a} to {b} .* translate variable
.translate-off .* turn off global mode
Command
.translate [var] from {x} to {y}
.translate-off
Underscoring
Command
.underscore-on
.underscore-off
Undenting
Command
.undent
.undent-both
.undent-hanging
.undent-left
.undent-nobreak
.undent-right
Vertical Margins
Command
.vertical-margin-all
.vertical-margin-bottom
.vertical-margin-footer
.vertical-margin-header
.vertical-margin-top
Widow Control
Command
.widow
.widow-footnote
.widow-text
I/O Commands
Command
.read
.type
.wait
.write-formatted
.write-text
.begin-read / .end-read
.begin-type / .end-type
Device and Miscellaneous
Command
.device-control
.invoke-tool
.request
.defer-until
.equation-count
.error
.execute
.galley-mode
.test
Index Entries
Command
.hit
.hit-file
Rules
Command
.horizontal-rule
.vertical-rule
Text Wrap
Use position=left wrap or position=right wrap attributes on graphics/pictures.
Lingenic Extensions
New commands not present in Multics Compose:
Lists
Command
Description
.begin-list [numbered|bulleted|definition]
Begin list
.end-list
End list
.list-item
List item
.list-term term
Definition term
.list-definition
Definition text
.list-style style
Set marker style
Floats
Command
Description
.begin-figure [label] [position]
Begin figure
.end-figure
End figure
.begin-table-float [label] [position]
Begin floating table
.end-table-float
End floating table
.caption text
Figure/table caption
.caption-position above|below
Caption placement
.clear left|right|both
Clear floats
Cross-References
Command
Description
.label name
Create reference target
.refer(name)
Reference by number
.refer(name, page)
Reference with page
.counter name [start]
Define counter
.counter-style name style
Set counter format
Notes
Command
Description
.begin-endnote
Begin endnote
.end-endnote
End endnote
.endnotes-chapter
Collect per chapter
.endnotes-document
Collect at document end
.insert-endnotes
Output endnotes
.begin-sidenote
Begin sidenote
.end-sidenote
End sidenote
.sidenote-position left|right|outside|inside
Margin placement
Bibliography
Citations use @key inline. Style determines format (author-date, footnote, endnote, etc.).
.set-citation-style author-date
According to @smith2020, the results were significant.
See also @jones2019:42-50 for discussion.
.bibliography
The source is monospace-aligned and readable — exactly as it should be. For antique calligraphic rendering, embed LaTeX.
Typography
Command
Description
.tracking [value]
Letter spacing
.kerning on|off
Pair kerning
.drop-cap [lines]
Drop capital
.hanging-punctuation on|off
Hanging punctuation
.optical-alignment on|off
Optical margins
Parallel Text
For bilingual editions, synoptic texts, code with commentary.
Command
Description
.begin-parallel [columns]
Begin parallel text (default: 2 columns)
.end-parallel
End parallel text
.next-parallel-column
Switch to next column (syncs automatically)
.parallel-column [n]
Jump to specific column
.parallel-gutter [value]
Space between columns
.begin-parallel 2
Nel mezzo del cammin di nostra vita
mi ritrovai per una selva oscura,
ché la diritta via era smarrita.
.next-parallel-column
Midway upon the journey of our life
I found myself within a forest dark,
For the straightforward pathway had been lost.
.end-parallel
Ruby Text
Command
Description
.ruby base "annotation"
Ruby annotation
.annotate(base, "reading")
Inline ruby annotation
.ruby-position above|below|right
Annotation position
.ruby-size [ratio]
Annotation size
Accessibility
Command
Description
.insert-graphic "path" alt="text"
Image with alt text
.language code
Set language
.abbreviation SHORT "expansion"
Define abbreviation
Built-in Variables
Any identifier containing an underscore is a variable. The underscore can appear anywhere: prefix (_count), infix (page_number), or suffix (total_).
Internationalization: The underscore syntax works universally across scripts. Languages without word boundaries (Chinese, Japanese, Thai) can use prefix or suffix: 计数_, _カウント. RTL scripts work naturally: _عداد. The ASCII underscore is unambiguous in any writing system.
Variable Typography
Typography distinguishes variable types:
Type
Typography
Example
String
Regular text
author_name, document_title
Numeric
Unicode italic
𝑥, 𝑦, 𝑟, 𝑛
Unicode italic for numeric variables avoids collision with domain functions (sin, cos, log, max) which use regular ASCII.
.if page_number > 1
.header-left current_file
.header-right "Page " page_number
.footer-center current_date
This is page page_number of page_count.