\(\newcommand{\footnotename}{footnote}\) \(\def \LWRfootnote {1}\) \(\newcommand {\footnote }[2][\LWRfootnote ]{{}^{\mathrm {#1}}}\) \(\newcommand {\footnotemark }[1][\LWRfootnote ]{{}^{\mathrm {#1}}}\) \(\let \LWRorighspace \hspace \) \(\renewcommand {\hspace }{\ifstar \LWRorighspace \LWRorighspace }\) \(\newcommand {\TextOrMath }[2]{#2}\) \(\newcommand {\mathnormal }[1]{{#1}}\) \(\newcommand \ensuremath [1]{#1}\) \(\newcommand {\LWRframebox }[2][]{\fbox {#2}} \newcommand {\framebox }[1][]{\LWRframebox } \) \(\newcommand {\setlength }[2]{}\) \(\newcommand {\addtolength }[2]{}\) \(\newcommand {\setcounter }[2]{}\) \(\newcommand {\addtocounter }[2]{}\) \(\newcommand {\arabic }[1]{}\) \(\newcommand {\number }[1]{}\) \(\newcommand {\noalign }[1]{\text {#1}\notag \\}\) \(\newcommand {\cline }[1]{}\) \(\newcommand {\directlua }[1]{\text {(directlua)}}\) \(\newcommand {\luatexdirectlua }[1]{\text {(directlua)}}\) \(\newcommand {\protect }{}\) \(\def \LWRabsorbnumber #1 {}\) \(\def \LWRabsorbquotenumber "#1 {}\) \(\newcommand {\LWRabsorboption }[1][]{}\) \(\newcommand {\LWRabsorbtwooptions }[1][]{\LWRabsorboption }\) \(\def \mathchar {\ifnextchar "\LWRabsorbquotenumber \LWRabsorbnumber }\) \(\def \mathcode #1={\mathchar }\) \(\let \delcode \mathcode \) \(\let \delimiter \mathchar \) \(\def \oe {\unicode {x0153}}\) \(\def \OE {\unicode {x0152}}\) \(\def \ae {\unicode {x00E6}}\) \(\def \AE {\unicode {x00C6}}\) \(\def \aa {\unicode {x00E5}}\) \(\def \AA {\unicode {x00C5}}\) \(\def \o {\unicode {x00F8}}\) \(\def \O {\unicode {x00D8}}\) \(\def \l {\unicode {x0142}}\) \(\def \L {\unicode {x0141}}\) \(\def \ss {\unicode {x00DF}}\) \(\def \SS {\unicode {x1E9E}}\) \(\def \dag {\unicode {x2020}}\) \(\def \ddag {\unicode {x2021}}\) \(\def \P {\unicode {x00B6}}\) \(\def \copyright {\unicode {x00A9}}\) \(\def \pounds {\unicode {x00A3}}\) \(\let \LWRref \ref \) \(\renewcommand {\ref }{\ifstar \LWRref \LWRref }\) \( \newcommand {\multicolumn }[3]{#3}\) \(\require {textcomp}\) \(\newcommand {\intertext }[1]{\text {#1}\notag \\}\) \(\let \Hat \hat \) \(\let \Check \check \) \(\let \Tilde \tilde \) \(\let \Acute \acute \) \(\let \Grave \grave \) \(\let \Dot \dot \) \(\let \Ddot \ddot \) \(\let \Breve \breve \) \(\let \Bar \bar \) \(\let \Vec \vec \)

TeXoScope (VersoTeX-2): readme

1. TeXoScope

There are many devices which improve our ability to see:
Telescopes help to see distant objects (like planets);
Microscopes let us examine the tiny and intricate.
Here you meet a similar device - let us call it a TeXoScope - designed to help you explore a LaTeX document.

TeX/LaTeX is a Lingua Franca of the Exact Sciences. Most mathematicians and physicists write their research papers, textbooks and even personal letters using TeX/LaTeX. For instance, the majority of papers in ArXiv.org - a leading prerint server - are written in TeX. (A missing TeX source often indicats the author is not a professional.)

TeX produces a PDF file suitable for both paper and screen. While many still prefer printed versions, digital reading offers valuable features hyperlinks, search functions, and fast navigation. Yet, the potential of on-screen reading extends far beyond these.

We define a TeXoScope as an interactive program that makes mathematical texts easier to read on-screen. VersoTeX aspires to fill this role, claiming it can convert virtually any standard LaTeX file to a dynamic HTML TeXoScope.

What help do you wish when reading?

Imagine you are reading a fascinating but challenging text in your browser. I - the browser, or HTML document - want to assist you. How can I help?


  • Is the text too small? Click an icon to enlarge it.
  • Is it now too large? Click another icon to reduce it.
  • Are the lines too long? Shorten them by a click to make reading more comfortable.
  • Does a long formula stick out of the screen? Click again to wrap lines apprpriately.
  • Curious about a citation? Click the the reference symbol to see a floating window with full bibliographic info.
  • Want to browse the entire list of references? Click "refs" on the margin to open it in a sidebar.
  • Forgot a formula referred to by number? Click the number to see the formula pop up in a floating window.
  • Feeling lost in a long text? Click "contents" on the side. The table of contents appears - click any item to jump ther instantly.
  • Need to compare multiple items (like definitions and theorems)? Select them and pin them to the right-hand side in a draggable floating windows.

VersoTeX prepares dynamic HTML documents for reading in web-browsers. Dynamic HTML enables all these real-time features. It transforms a standard LaTeX file into a reader-friendly interface for immersive, interactive study.

The goal is to support thoughtful reading and deep engagement — something neither print nor basic PDFs can achieve.

A LaTeX file includes many structural elements: sections, subsections, theorems, definitions, remarks, references, figures, and more. These elements support various modes of presentation, which can change or conflict as you read. VersoTeX allows the reader to switch between these dynamically and instantly.

The input file looks like a conventual LaTeX source. VersoTeX works with documents written in plain LaTeX article style. If you already write in LaTeX, adapting your text for VersoTeX requires minimal effort.

2. Instructions to a VersoTeX reader

2.1. Three fields.

When you open a VersoTeX-generated HTML file in a wide enough browser window, the layout consists of three fields: a narrow left margin (about 40 pixels), a central pane (about 740 pixels wide), and a right pane. On smaller screens, the fields overlap.

At the top of the narrow field, there is a menu icon. Clicking it reveals a drop-down menu, which we describe below.

The central field is called verso, and the rightmost is recto These names mirror the left and right pages of an open book (see Wikipedia: Recto and verso).

When the document first opens, the recto field is empty.

2.2. Verso.

The verso pane displays the start of the article and looks like a table of contants. The blue items are clickable. Click the triangle next to "Abstract" to reveal its text; click again to collapse it.

Below are section titles. Click the triangle to expand a section. Subsections, if present, remain folded. You can unfold them with additional clicks.

This folding system — familiar from code editors or document viewers — lets you hide irrelevant parts while focusing on what matters.

Unfolding everything manually takes time, but an impatient reader can expand or collapse the entire document with just two clicks: open the menu and select "open all" or "fold all."

By default, special sections like References, Acknowledgements, Keywords, Mathematics Subject Classification, and all proofs are folded.

Proofs are, of course, vital — but sometimes skipped during a first pass. Click the triangle before “Proof” to reveal it. Click the end-of-proof square to collapse it.

References appear in blue and are clickable. Clicking opens a floating window with full bibliographic info; click again to dismiss it.

These windows are draggable—a helpful feature when multiple references overlap. Just drag them apart.

Footnotes work similarly. Instead of jumping to the bottom of the page, a footnote appears right where you clicked — no scrolling needed.

2.3. Recto.

At the first opening of a document, the recto is empty. You control what appears there. Eventually, it may be populated by various floating windows, like this: (image)

2.3.1. Table of Contents.

Clicking "contents" in the menu opens a floating Table of Contents window at the top-right. Like the article itself, the TOC is foldable. Expand sections gradually using the triangles, or all at once with a single icon.

Clicking a TOC item scrolls the verso to the corresponding section. If that section was folded, it will be expanded automatically.

Besides sections, subsections and subsubsections, the TOC lists also all the theorems, lemmas, corollaries, figures, tables, and more.

2.3.2. From verso to recto.

On the verso, blue references act as anchors. Clicking at any blue reference (to a formula, theorem, lemma or section) opens a floating window in the recto. These are draggable and resizable. Clicking the same reference again closes the window.

At the end of titles in the verso, an icon (image) lets you send the part with that title into a floating recto window.

2.4. Menu.

Click "replicate" in the menu to copy the entire document into the recto. This allows you to read two different sections side by side.

Clicking "refs" opens the complete bibliography in the recto.

To close all floating windows at once, click "purge." You can also close individual windows via their top-right "×" icon.

Clicking "highlite" highlights all segments in the document marked by the LaTeX command \(\backslash \)em. This can help you spot emphasized phrases or important ideas quickly.

2.5. The environment for reading VersoTeX html article.

You'll need a modern web browser — Firefox, Chrome, Safari, Opera, Edge, or even Internet Explorer will do.

The VersoTeX relies on MathJax, an open source JavaScript display engine for mathematical formulas, and on the jQuery JavaScript library. You may load MathJax and jQuery via the internet (Content Delivery Network), or download them for offline use. See www.mathjax.org, jquery.com and jqueryui.com.

This setup assumes an internet connection. For proper rendering, the following files are needed:


  • vt.js: a collection of JavaScript macros.
  • vt.css: a stylesheet for displaying VersoTeX HTML output.
  • icons/: a directory with UI icons.

These should be placed in the same directory as your HTML file. If you'd prefer another location, a small configuration change will suffice.