Rail Mode
Zoom in past the threshold and navigation locks to detected text blocks.
Advance line by line with arrow keys or WASD. Hold left/right to scroll
continuously with speed ramping. Hold Ctrl to temporarily
free-pan and zoom without rail constraints — release to snap back.
Zooming preserves your reading position within the current line.
Line Highlight Tint
Configurable colour tint on the active line in rail mode — Auto,
Yellow, Cyan, Green, or None. Auto adapts to the active colour effect.
Adjustable opacity for subtle or prominent highlighting.
Auto-Scroll & Speed Control
Toggle continuous horizontal scrolling with the P key or the toolbar
button. Hold D or Right to boost speed. Pauses briefly at line and block
boundaries for eye settling — narrow blocks like equations and
headings get proportional dwell time. Scroll speed is zoom-independent,
so reading pace stays consistent at any magnification. Adjust speed via
the docked slider toolbar, [ / ] keys
(±5), or Ctrl+[ / ] for fine
adjustments (±1). Auto-scroll and jump mode are mutually exclusive.
Jump Mode & Line Focus
Press J or the toolbar button to toggle saccade-style jump navigation
— advance by a configurable percentage of the visible width.
Enable line focus dim (F button) to smoothly fade non-active lines,
reducing peripheral distraction. Toggle the line highlight
independently with the H key. All modes have quick-toggle
buttons on the rail toolbar.
Colour Effects
GPU-accelerated colour filters — amber, high contrast, high
visibility, inverted — with adjustable intensity. Per-document:
each tab keeps its own effect. Press C to cycle through
effects quickly.
High-DPI Rendering
PDF pages are rasterised by PDFium at a DPI proportional to zoom
(up to 600 DPI). Pan and zoom are compositor-level transforms
— sharp and smooth at any magnification.
Configurable Navigation
Choose which block types are navigable in rail mode and which are
horizontally centered when narrow. Adjust zoom thresholds, scroll
speeds, and snap animation timing. Hold Down/S
at the last line of a page to advance to the next page automatically.
Settings persist across sessions.
Margin Cropping
Eliminate wasted whitespace by fitting the viewport to the detected
content area instead of the full page. Computed from layout analysis,
so it adapts per document and never clips content. Toggle with
Ctrl+Shift+M.
Named Bookmarks
Bookmark any page with a custom name. Navigate to bookmarks from a
dedicated panel tab alongside the outline. "Back to previous location"
for quick return after jumping. Bookmarks persist across sessions.
Search
Full-text search across all pages in a sidebar panel. Results are
grouped by page with text snippets showing matches in context.
Click any result to jump to that match. Regex and case-sensitivity
toggles. Matches highlighted on the page — navigate with
F3 / Shift+F3 or Enter / Shift+Enter.
Copy as LaTeX
Send any detected equation, table, or figure to a Vision Language
Model and copy the result to the clipboard. Equations become LaTeX,
tables become Markdown, figures get a description. Works with
cloud APIs (OpenAI gpt-4.1-mini recommended for accuracy)
or local models for privacy. See the
setup guide
for all options.
Multi-Tab & Sidebar
Open multiple PDFs in tabs with independent state. The tab bar scrolls
horizontally and provides a dropdown when many tabs are open.
Navigate via the table of contents panel, the interactive minimap,
or the figures panel — a browsable index of all detected
figures, tables, and equations with thumbnails and extracted text.
In fullscreen, the tab bar and status bar auto-hide and reveal on
hover at the screen edges.
Smooth Zoom & Dark Mode
All zoom actions animate smoothly over 180ms with cubic ease-out.
Rapid scroll inputs accumulate fluidly. Toggle a dark UI theme in
Settings for comfortable use in low-light environments.
Annotations
Right-click to open a three-ring radial menu — tool selection
(inner), stroke thickness with size-varied circles (middle), and
colour picker (outer). Highlight, freehand pen, rectangles, text
notes, and eraser. Pen and rectangle tools offer thin, normal, and
thick stroke widths. Colour palettes for highlight, pen, and
rectangle. Annotations render in z-order: highlights below strokes,
text notes on top. Select, move, and resize in browse mode. Undo/redo
for all actions. Export into a new PDF or as JSON. Import from other
users via File → Import Annotations.
Text Selection & Copy
Switch to Text Select mode via the floating toolbar to select and
copy text from PDF pages. The toolbar provides Browse, Text Select,
and Copy buttons with clear visual feedback for the active mode.
Motion Blur
Subtle directional blur during horizontal scroll (including
auto-scroll) and uniform blur during zoom for perceptual smoothness.
Adjustable via Shift+[ / ] or
Ctrl+Shift+[ / ] for fine control.
Configurable intensity via Settings, or disable entirely.
Diagnostic Logging
A session log file captures all activity for troubleshooting.
Export via Help → Export Diagnostic Log,
or copy the log file path from the About dialog to attach to
bug reports.
Headless Core Library
All business logic lives in a rendering-agnostic core library
(RailReader.Core) with zero Avalonia or SkiaSharp
dependencies. A separate RailReader.Renderer.Skia
project implements rendering interfaces. Fully testable —
101 xUnit tests run without a display server. A standalone
CLI tool leverages the same core for headless
rendering, structure extraction, annotation export, and batch
VLM transcription of equations, tables, and figures.