209 lines
8.9 KiB
ReStructuredText
209 lines
8.9 KiB
ReStructuredText
.. _a_struct:
|
|
|
|
***************
|
|
Novel Structure
|
|
***************
|
|
|
|
This section covers the structure of a novel project.
|
|
|
|
It concerns documents under the :guilabel:`Novel` type root folder only. There are some
|
|
restrictions and features that only apply to these types of documents.
|
|
|
|
|
|
.. _a_struct_heads:
|
|
|
|
Importance of Headings
|
|
======================
|
|
|
|
Subfolders under root folders have no impact on the structure of the novel itself. The structure is
|
|
instead dictated by the heading level of the headers within the documents.
|
|
|
|
Four levels of headings are supported, signified by the number of hashes (``#``) preceding the
|
|
title. See also the :ref:`a_fmt` section for more details about the markdown syntax.
|
|
|
|
.. note::
|
|
The header levels are not only important when generating the manuscript, they are also used by
|
|
the indexer when building the outline tree in the Outline as well as the Novel Tree. Each
|
|
heading also starts a new region where new references and tags can be defined.
|
|
|
|
The syntax for the four basic header types, and the two special header types, is listed in section
|
|
:ref:`a_fmt_head`. The meaning of the four levels for the structure of your novel is as follows:
|
|
|
|
**Header Level 1: Partition**
|
|
This header level signifies that the text refers to a top level partition. This is useful when
|
|
you want to split the manuscript up into books, parts, or acts. These headings are not required.
|
|
The novel title itself should use the special header level explained in :ref:`a_fmt_head`.
|
|
|
|
**Header Level 2: Chapter**
|
|
This header level signifies a chapter level partition. Each time you want to start a new
|
|
chapter, you must add such a heading. If you choose to split your manuscript up into one
|
|
document per scene, you need a single chapter document with just the heading. You can of course
|
|
also add a synopsis and reference keywords to the chapter document. If you want to open the
|
|
chapter with a quote or other introductory text that isn't part of a scene, this is also where
|
|
you'd put that text.
|
|
|
|
**Header Level 3: Scene**
|
|
This header level signifies a scene level partition. You must provide a title text, but the
|
|
title text can be replaced with a scene separator or just skipped entirely when you build your
|
|
manuscript.
|
|
|
|
**Header Level 4: Section**
|
|
This header level signifies a sub-scene level partition, usually called a "section" in the
|
|
documentation and the user interface. These can be useful if you want to change tag references
|
|
mid-scene, like if you change the point-of-view character. You are free to use sections as you
|
|
wish, and you can filter them out of the final manuscript just like with scene titles.
|
|
|
|
Page breaks are automatically added before level 1 and 2 headers when you build your project to a
|
|
format that supports page breaks, or when you print the document directly from the build tool. If
|
|
you want page breaks in other places, you have to specify them manually. See :ref:`a_fmt_break`.
|
|
|
|
.. tip::
|
|
There are multiple options of how to process novel titles when building the manuscript. For
|
|
instance, chapter numbers can be applied automatically, and so can scene numbers if you want
|
|
them in a draft manuscript. See the :ref:`a_export` page for more details.
|
|
|
|
|
|
.. _a_struct_heads_title:
|
|
|
|
Novel Title and Front Matter
|
|
----------------------------
|
|
|
|
It is recommended that you add a document at the very top of each Novel root folder with the novel
|
|
title as the first line. You should modify the level 1 header format code with an ``!`` in order to
|
|
render it as a document title that is excluded from any automatic Table of Content in a manuscript
|
|
build document, like so:
|
|
|
|
``#! My Novel``
|
|
|
|
The title is by default centred on the page. You can add more text to the page as you wish, like
|
|
for instance the author's name and details.
|
|
|
|
If you want an additional page of text after the title page, starting on a fresh page, you can add
|
|
``[NEW PAGE]`` on a line by itself, and continue the text after it. This will insert a page break
|
|
before the text. See also :ref:`a_fmt_break`.
|
|
|
|
|
|
.. _a_struct_heads_unnum:
|
|
|
|
Unnumbered Chapter Headings
|
|
---------------------------
|
|
|
|
If you use the automatic numbering feature for your chapters, but you want to keep some special
|
|
chapters separate from this, you cam add a ``!`` to the level 2 header formatting code to tell the
|
|
build tool to skip these chapters.
|
|
|
|
``##! Unnumbered Chapter Title``
|
|
|
|
There is a separate formatting feature for such chapters in the :guilabel:`Build Novel Project`
|
|
tool as well. See the :ref:`a_export` page for more details. When building a document of a format
|
|
that supports page breaks, also unnumbered chapters will have a page break added just like for
|
|
normal chapters.
|
|
|
|
.. Note::
|
|
Previously, you could also disable the automatic numbering of a chapter by adding an ``*`` as
|
|
the first character of the chapter title itself. This feature has been dropped in favour of the
|
|
current format in order to keep level 1 and 2 headers consistent. Please update your chapter
|
|
headings if you've used this syntax.
|
|
|
|
|
|
.. _a_struct_tags:
|
|
|
|
Note References
|
|
===============
|
|
|
|
Each text partition, indicated by a heading of any level, can contain references to tags set in the
|
|
project notes of the project. The references are gathered by the indexer and used to generate the
|
|
Outline View. This section covers how to make references to tags. See :ref:`a_notes_tags` for how
|
|
to define tags the references can point to.
|
|
|
|
References and tags are also clickable in the document editor and viewer, making it easy to
|
|
navigate between reference notes while writing. Clicked links are always opened in the view panel.
|
|
|
|
References are set as a keyword and a list of corresponding tags. The valid keywords are listed
|
|
below. The format of a reference line is ``@keyword: value1, [value2] ... [valueN]``. All keywords
|
|
allow multiple values.
|
|
|
|
``@pov``
|
|
The point-of-view character for the current section. The target must be a note tag in a
|
|
:guilabel:`Character` type root folder.
|
|
|
|
``@focus``
|
|
The character that has the focus for the current section. This can be used in cases where the
|
|
focus is not a point-of-view character. The target must be a note tag in a :guilabel:`Character`
|
|
type root folder.
|
|
|
|
``@char``
|
|
Other characters in the current section. The target must be a note tag in a
|
|
:guilabel:`Character` type root folder. This should not include the point-of-view or focus
|
|
character if those references are used.
|
|
|
|
``@plot``
|
|
The plot or subplot advanced in the current section. The target must be a note tag in a
|
|
:guilabel:`Plot` type root folder.
|
|
|
|
``@time``
|
|
The timelines touched by the current section. The target must be a note tag in a
|
|
:guilabel:`Timeline` type root folder.
|
|
|
|
``@location``
|
|
The location the current section takes place in. The target must be a note tag in a
|
|
:guilabel:`Locations` type root folder.
|
|
|
|
``@object``
|
|
Objects present in the current section. The target must be a note tag in a :guilabel:`Object`
|
|
type root folder.
|
|
|
|
``@entity``
|
|
Entities present in the current section. The target must be a note tag in a
|
|
:guilabel:`Entities` type root folder.
|
|
|
|
``@custom``
|
|
Custom references in the current section. The target must be a note tag in a :guilabel:`Custom`
|
|
type root folder. The custom folder are for any other category of notes you may want to use.
|
|
|
|
The syntax highlighter will alert the user that the tags and references are used correctly, and
|
|
that the tags referenced exist.
|
|
|
|
The highlighter may be mistaken if the index of defined tags is out of date. If so, press :kbd:`F9`
|
|
to regenerate it, or select :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu. In general,
|
|
the index for a document is regenerated when it is saved, so this shouldn't normally be necessary.
|
|
|
|
Example of a novel document with references to characters and plots:
|
|
|
|
.. code-block:: none
|
|
:linenos:
|
|
|
|
## Chapter 1
|
|
|
|
@pov: Jane
|
|
|
|
### Scene 1
|
|
|
|
@char: John, Sam
|
|
@plot: Main
|
|
|
|
Once upon a time ...
|
|
|
|
|
|
.. _a_struct_layout:
|
|
|
|
Document Layout
|
|
===============
|
|
|
|
All documents in the project can have a layout format set. Previously, there were multiple layouts
|
|
available to change how the documents where formatted on export. These have now been reduced to
|
|
just two layouts: :guilabel:`Novel Document` and :guilabel:`Project Note`.
|
|
|
|
Novel documents can only live in a :guilabel:`Novel` type root folder. You can also move them to
|
|
:guilabel:`Archive` and :guilabel:`Trash` of course. Project notes can be added anywhere in the
|
|
project.
|
|
|
|
The project tree can distinguish between the different layouts and header levels of the documents
|
|
using coloured icons, and optionally add emphasis on the label (See the :guilabel:`Preferences`.)
|
|
For novel documents, the heading level of the first heading is recorded, and indicated by the icon.
|
|
|
|
.. tip::
|
|
You can always start writing with a coarse setup with one or a few documents, and then later use
|
|
the split tool to split the documents into separate chapter and scene documents. You can split a
|
|
document on any of the four header levels.
|