If you see this, something is wrong
First published on Saturday, Jan 25, 2025 and last modified on Wednesday, May 27, 2026
You can access a document in edit mode in two ways:
Inline edit item in the Action menu for your document
Inline edit item in the View menu
Apart from some initial code, most of this documentation was written interactively using the Inline Editor.
Note: before reading what follows, make sure you have understood the help text about the Documents Live workflow and the internal model.
To edit an element, hover over it. In most of the cases, clicking on the elemnt will open the editor for that content.
In some cases, there may be several elements stacked on top of each other. To select the right element, hover on the content and watch the tooltips that appear. They indicate which kind of element you will edit. When you are satisfied with the element type, just click to open the editor.
Here is a screenshot.
Note: if you click on a section title, this will collapse/expand the corresponding section. This functionality is active to let you to organize your work space. To open a section in the Inline Editor, press the alt/option key while clicking on the section title. This will edit the section.
If you click the Edit button, this will open the Inline Editor for the selected object. Here we have opened the editor for this very paragraph. Here is the screenshot.
The editor consists in two stacked panes:
Th code editor has two parts: on top is the toolbar, and below is the code editor itself. The editor is powered by Ace .
The left part is devoted to the search and replace operations. At its right is a collection of LaTeX-related editing buttons. Finally, at the right, you have the Inline Editor dropdown menu that lets you perform top-level operations related to the Inline Editor.
The input field on the left is where you enter the string you are looking for. The search is case-sensitive. To launch the search, click on the magnifier icon next to it. Pressing the enter/return key will not initiate the search. Actually, the keyboard action is first intercepted by the browser which, in this case, will reload the page. Doing so would lose your unsaved changes.
You can initiate four types of searches:
When you have found your first match, hit Ctrl-K (Windows/Linux) or Command-G (Mac) to search for the next occurence.
At the right of the replace field are two search and replace buttons. The first one will do a single search and replace operation. Hitting it repeatedly will repeat the process for the next occurences. The second button performs a global search and replace.
Here is a quick description of the LaTeX related dropdown menus, as seen in figure 2.
environment action creates an environment whose name is the selected text. For instance, to create a verbatim environment, type verbatim in the editor, select the word, and use the environment action on it.
Keyboard shortcuts are available in all of LaTeX editors. Make sure you are editing code, or the shortcut may have undesirable results. Most of the shortcuts apply to the selection, if any. Here is a list.
| Ctrl/Cmd M |
inserts \item
|
| Ctrl/Cmd L | inserts/makes a label |
| Ctrl/Cmd R | inserts/makes a reference |
| Ctrl/Cmd I | applies italic style |
| Ctrl/Cmd B | applies bold style |
| Ctrl/Cmd E | makes an environment out of the selection |
| Ctrl/Cmd shift C | inserts/make a caption |
The question mark reveals help for the editor.
Edit dropdown menu
Below is a snapshot of the Edit menu in context.
Edit dropdown menu in action.
Here are the actions available
Revert to saved action wil revert to this.
Revert to saved action wil revert to this.
The editor is Ace .
It has a full undo/redo system.
It has an excellent syntax coloring for LaTeX code. We use the Cobalt theme.
You can navigate using the arrow keys.
It is quite helpful with delimiters. For the parentheses, curly braces and bracket delimiters, it will create an open/close pair when typing the opening character. It will enclose the selection (if present) with the chosen delimiter pair. Clicking near an opening delimiter will reveal the scope of it.
It also has a auto-complete feature.
A full list of Ace’s default shorcuts in available in the Documents Live online help .
Chosing the Render menu item of the Edit dropdown menu will render the Web version of the current code that is in the editor. This gives you an instant preview of what your code will produce.
Render does not alter your data in any way. It just generates HTML code from the code in the editor and renders it in the top pane of the Inline Editor. Most of the Documents Live functionalities are available in the preview, including reference inclusion, etc....
When you are in edit mode, there are two ways to save your work. The first one consists in saving from the Inline Editor itself.
The second one is accessed by selecting the Backup... item from the Edit menu.
When you are in the Inline Editor, you can save you work from the Edit dropdown menu of the editor. You have two options
Save to model save the object that you are editing to the document model.
Save to model and update HTML saves your modifications to the model and exports the result to the HTML code of the document.
Both options perform a local update. This means that only the current object is modified in the model, and the updated HTML code replaces only the previous code for the current object.
This also means that use can use the Inline Editor on very large or complex documents without impacting the editor’s performance.
When using the Backup... menu item, you will be prompted for a description of the work that was done between the previous backup and now.
After hitting the Save button, a number of tasks will be executed:
As a summary, three kinds of backups are performed: the model is saved, the LaTeX code is saved to a file, and the LaTeX code is saved to the database.
Subsequently, if you compile the document into a web page, the latest backup code will be used. Note that an initial backup is performed when the document is created.
You can access your backups by using the Manage backups menu item in the Edit menu. After that, you are presented with list of your backups. For each backup, you can
Both revert operations restore the LaTeX code. The second one also restores the model, which spare you the work of re-creating the model. This can be useful for large documents for which the import process may be complicated.
Important: the restore operations work globally, by contrast to the restore operation in the Inline Editor, which is limited to the scope of the object being edited.
From the right sidebar, drag and drop the "Versioning" block to the element you wish yo inspect. here is a screenshot.
You card read the original version in the editor in the left pane, and edit the current version in the right editor pane.
Or, instead of checking the version, you can directly select a version that you wish to restore.
Not that, by contrast to common versioning tools such as git, the Documents Live versioning system lets you act at the object level, which is totally different from classical versioning sytems when you must review the full length of the code, which can be quite tedious.
You can create objects simply by drag and drop. In the "Builder" section of the sidebar, drag a object type block to its destination in the document view. When the drag action begins, available targets in the document will have a blue dashed border. Here is a screenshot.
To delete an object, drag from the right sidebar the "Delete" block to the document object you wish to delete. Here is a screenshot.
After creating or deleting an object, in general the HTML code is updated accordingly.
There are actually two situations:
One of the powerful features of LaTeX (and Documents Live) is its ability to manage cross-references.
But, how can one find the label for a reference when you are in edit mode and it is hidden from view?
Be re-assured that you do not have to look for the label inside your source code.
Before fetching labels interactively, the label fetching must be enabled. This can be done in two ways
Fetch labels checkbox activated (see below).
Once this mode is activated, when clicking anywhere in the view, a list of document objects that contain the clicked object will be created, very much like when a list was created before editing an object.
Important: the list will display only objects which can be referenced by some text. This the text that will be displayed as “link” to the reference. For instance, a numbered object can be referenced. A running text paragraph cannot be.
After selection, the browser will put the object reference into the clipboard. Paste the result into a \ref command and you are good to go!
Note that there are two kinds of reference code:
\label will return the label
In the object list, objects which have a label have a tag emoji 🏷️ next to the object item
Since it is unlikely that a label be modified inside a document, the label response is more robust than the object ID.
Below is a screenshot that shows the object list in this vary section.
A paragraph was clicked in the section while label fetching was enabled. The paragraph itself has no identifier, so it is not listed. The section itself has a label (it is cross-references). Above that is the document itself, which is not referenced by a sign.
Clicking “Select” will copy the label to the cliboard and you will be notified of the operation success.
Actually, when looking for a reference, you are not limited to the current document. You can go to another document view, and thanks to a cookie that say that you are in a label fetching mode, you will be able to fetch labels from another document. Once the reference label or ID is in your clipboard, you can paste it into a \ref{} command inside the editor, and it will work.
Note: if it happens that you cannot fetch labels, check the corresponding box in the status bar at the bottom of the page to enable the fetch label behavior.
In edit mode, just above the document title, there is a search bar that works a bit differently from usual search. Instead of looking for text in the web page, it looks for content in the document model.
What is returned is a list of matches, each consisting of two lines
The model search is useful when looking for data that is not visible in the web page render. Here are some examples of usages
Clicking on any segment of the breadcrumb will open an inline editor to the corresponding object.