.. _viewer: The E-book viewer ============================= calibre includes a built-in E-book viewer that can view all the major e-book formats. The E-book viewer is highly customizable and has many advanced features. .. contents:: :depth: 1 :local: Starting the E-book viewer ----------------------------- You can view any of the books in your calibre library by selecting the book and pressing the :guilabel:`View` button. This will open up the book in the E-book viewer. You can also launch the E-book viewer by itself from the Start menu in Windows. On macOS, you can pin it to the dock and launch it from there. On Linux you can use its launcher in the desktop menus or run the command :command:`ebook-viewer`. Navigating around an e-book ----------------------------- You can "turn pages" in a book by either: - Clicking in the left or right margin or the page with the mouse - Pressing the :kbd:`spacebar`, :kbd:`page up`, :kbd:`page down` or arrow keys - On a touchscreen tapping on the text or swiping left and right You can access the viewer controls by either: - Right clicking on the text - Pressing the :kbd:`Esc` or :kbd:`Menu` keys - On a touchscreen by tapping the top 1/3rd of the screen The viewer has two modes, "paged" and "flow". In paged mode the book content is presented as pages, similar to a paper book. In flow mode the text is presented continuously, like in a web browser. You can switch between them using the viewer :guilabel:`Preferences` under :guilabel:`Page layout` or by pressing the :kbd:`Ctrl+M` key. Bookmarks ^^^^^^^^^^^^ When you are in the middle of a book and close the E-book viewer, it will remember where you stopped reading and return there the next time you open the book. You can also set bookmarks in the book by using the :guilabel:`Bookmarks` button in the E-book viewer controls or pressing :kbd:`Ctrl+B`. When viewing EPUB format books, these bookmarks are actually saved in the EPUB file itself. You can add bookmarks, then send the file to a friend. When they open the file, they will be able to see your bookmarks. You can turn off this behavior in the :guilabel:`Miscellaneous` section of the viewer preferences. Table of Contents ^^^^^^^^^^^^^^^^^^^^ If the book you are reading defines a Table of Contents, you can access it by pressing the :guilabel:`Table of Contents` button. This will bring up a list of sections in the book. You can click on any of them to jump to that portion of the book. Navigating by location ^^^^^^^^^^^^^^^^^^^^^^^^ E-books, unlike paper books, have no concept of pages. You can refer to precise locations in e-books using the :guilabel:`Go to->Location` functionality in the viewer controls. You can use this location information to unambiguously refer to parts of the books when discussing it with friends or referring to it in other works. You can enter these locations under :guilabel:`Go to->Location` in the viewer controls. There is a URL you can copy to the clipboard and paste into other programs or documents. Clicking on this URL will open the book in the calibre E-book viewer at the current location. If you click on links inside the e-book to take you to different parts of the book, such as an endnote, you can use the :guilabel:`Back` and :guilabel:`Forward` buttons in the top left corner of the viewer controls. These buttons behave just like those in a web browser. Reference mode ^^^^^^^^^^^^^^^^^ calibre also has a very handy :guilabel:`Reference mode`. You can turn it on by clicking the :guilabel:`Reference mode` button in the viewer controls. Once you do this, every paragraph will have a unique number displayed at the start, made up of the section and paragraph numbers. You can use this number to unambiguously refer to parts of the books when discussing it with friends or referring to it in other works. You can enter these numbers in the :guilabel:`Go to function` to navigate to a particular reference location. Highlighting text ---------------------- When you select text in the viewer, a little popup bar appears next to the selection. You can click the highlight button in that bar to create a highlight. You can add notes and change the color of the highlight. On a touch screen, long tap a word to select it and show the popup bar. Once in highlight mode you can change what text is selected, using touch screen friendly selection handles. Drag the handles to the top or bottom margins to scroll while selecting. You can also :kbd:`Shift+click` or :kbd:`right click` to extend the selection, particularly useful for multi-page selections. You can use the :guilabel:`Highlights` button in the viewer controls to show a separate panel with a list of all highlights in the book, sorted by chapter. You can browse *all highlights* in your entire calibre library by right clicking the :guilabel:`View` button and choosing :guilabel:`Browse annotations`. Finally, if you use the calibre Content server's in browser viewer, you can have the viewer sync its annotations with the browser viewer by going to :guilabel:`Preferences->Miscellaneous` in the viewer preferences and entering the username of the Content server viewer to sync with. Use the special value ``*`` to sync with anonymous users. Read aloud ------------ The viewer can read book text aloud. To use it you can simply click the :guilabel:`Read aloud` button in the viewer controls to start reading book text aloud. The word being currently read is highlighted. Speech is synthesized from the text using your operating system services for text-to-speech. You can change the voice being used by clicking the gear icon in the bar that is displayed while :guilabel:`Read aloud` is active. You can also read aloud highlighted passages by adding the :guilabel:`Read aloud` button to the selection bar in the viewer preferences under :guilabel:`Selection behavior`. .. note:: Support for text-to-speech in browsers is very incomplete and bug-ridden so how well :guilabel:`Read aloud` will work in the in-browser viewer is dependent on how well the underlying browser supports text-to-speech. In particular, highlighting of current word does not work, and changing speed or voice will cause reading to start again from the beginning. .. note:: On Linux, :guilabel:`Read aloud` requires `Speech Dispatcher `_ to be installed and working. .. note:: On Windows, not all installed voices may be visible to the SAPI sub-system that is used for text-to-speech. There are `instructions to make all voices visible `_. Searching the text -------------------------- The viewer has very powerful search capabilities. Press the :kbd:`Ctrl+F` key or access the viewer controls and click search. The simplest form of searching is to just search for whatever text you enter in the text box. The different forms of searching are chosen by the search mode box below the search input. Available modes are: #. :guilabel:`Contains` - The simplest default mode. The text entered in the search box is searched for anywhere. All punctuation, accents and spaces are ignored. For example, the search: ``Pena`` will match all of the following: ``penal, pen a, pen.a and Peña``. If you select the :guilabel:`Case sensitive` box then accents, spaces and punctuation are no longer ignored. #. :guilabel:`Whole words` - Searches for whole words. So for example, the search ``pena`` will match the word ``Peña`` but not the word ``Penal``. As with :guilabel:`Contains` searches above, accents and punctuation are ignored unless the :guilabel:`Case sensitive` box is checked. #. :guilabel:`Nearby words` - Searches for whole words that are near each other. So for example, the search ``calibre cool`` will match places where the words ``calibre`` and ``cool`` occur within sixty characters of each other. To change the number of characters add the new number to the end of the list of words. For instance, ``calibre cool awesome 120`` will match places where the three words occur within 120 characters of each other. Note that punctuation and accents are *not* ignored for these searches. #. :guilabel:`Regex` - Interprets the search text as a *regular expression*. To learn more about using regular expressions, see :doc:`the tutorial `. Following links using only the keyboard ----------------------------------------------- The E-book viewer has a :guilabel:`Hints mode` that allows you to click links in the text without using the mouse. Press the :kbd:`Alt+F` key and all links in the current screen will be highlighted with a number or letter over them. Press the letter on your keyboard to click the link. Pressing the :kbd:`Esc` key will abort the :guilabel:`Hints mode` without selecting any link. If more than thirty five links are on-screen then some of them will have multiple letters, in which case type the first and second, or the first and press :kbd:`Enter` to activate. You can also use the :kbd:`Backspace` key to undo a mistake in typing. Customizing the look and feel of your reading experience ------------------------------------------------------------ You can change font sizes on the fly by using :guilabel:`Font size` in the viewer controls or :kbd:`Ctrl++` or :kbd:`Ctrl+-` or holding the :kbd:`Ctrl` key and using the mouse wheel. Colors can be changed in the :guilabel:`Colors` section of the viewer preferences. You can change the number of pages displayed on the screen as well as page margins in :guilabel:`Page layout` in the viewer preferences. You can display custom headers and footers such as time left to read, current chapter title, book position, etc. via the :guilabel:`Headers and footers` section of the viewer preferences. More advanced customization can be achieved by the :guilabel:`Styles` settings. Here you can specify a background image to display under the text and also a stylesheet you can set that will be applied to every book. Using it you can do things like change paragraph styles, text justification, etc. For examples of custom stylesheets used by calibre's users, see `the forums `_. Dictionary lookup ------------------- You can look up the meaning of words in the current book by double clicking or long tapping the word you want to lookup and then clicking the lookup button that looks like a library. Copying text and images ------------------------- You can select text and images by dragging the content with your mouse and then right clicking and selecting :guilabel:`Copy` to copy to the clipboard. The copied material can be pasted into another application as plain text and images. Zooming in on images ---------------------------- You can zoom in to show an image at full size in a separate window by either double clicking or long tapping on it. You can also right click on it and choose :guilabel:`View image`. .. _viewer_shortcuts: Keyboard shortcuts ----------------------- The viewer has extensive keyboard shortcuts, like the rest of calibre. They can be customised in the viewer :guilabel:`Preferences`. The default shortcuts are listed below: .. list-table:: Keyboard shortcuts for the calibre viewer :widths: 10 100 :header-rows: 1 * - Keyboard shortcut - Action * - :kbd:`Home, Ctrl+ArrowUp, Ctrl+ArrowLeft` - Scroll to the start of the current file in a multi file book * - :kbd:`Ctrl+Home` - Scroll to the beginning of the book * - :kbd:`Ctrl+End` - Scroll to the end of the book * - :kbd:`End, Ctrl+ArrowDown, Ctrl+ArrowRight` - Scroll to the end of the current file in a multi file book * - :kbd:`ArrowUp` - Scroll backwards, smoothly in flow mode and by screen fulls in paged mode * - :kbd:`ArrowDown` - Scroll forwards, smoothly in flow mode and by screen fulls in paged mode * - :kbd:`ArrowLeft` - Scroll leftwards by a little in flow mode and by a page in paged mode * - :kbd:`ArrowRight` - Scroll rightwards by a little in flow mode and by a page in paged mode * - :kbd:`PageUp, Shift+Spacebar` - Scroll backwards by screen-fulls * - :kbd:`PageDown, Spacebar` - Scroll forwards by screen-fulls * - :kbd:`Ctrl+PageUp` - Scroll to the previous section * - :kbd:`Ctrl+PageDown` - Scroll to the next section * - :kbd:`Alt+ArrowLeft` - Back * - :kbd:`Alt+ArrowRight` - Forward * - :kbd:`Ctrl+T` - Toggle Table of Contents * - :kbd:`Ctrl+S` - Read aloud * - :kbd:`Alt+P` - Change settings quickly by creating and switching to :guilabel:`profiles` * - :kbd:`Alt+f` - Follow links with the keyboard * - :kbd:`Ctrl+C` - Copy to clipboard * - :kbd:`Alt+C` - Copy current location to clipboard * - :kbd:`Ctrl+Shift+C` - Copy current location as calibre:// URL to clipboard * - :kbd:`/, Ctrl+f, Cmd+f` - Start search * - :kbd:`F3, Enter` - Find next * - :kbd:`Shift+F3, Shift+Enter` - Find previous * - :kbd:`Ctrl+Plus, Meta+Plus` - Increase font size * - :kbd:`Ctrl+Minus, Meta+Minus` - Decrease font size * - :kbd:`Ctrl+0` - Restore default font size * - :kbd:`Ctrl+]` - Increase number of pages per screen * - :kbd:`Ctrl+[` - Decrease number of pages per screen * - :kbd:`Ctrl+Alt+C` - Make number of pages per screen automatic * - :kbd:`F11, Ctrl+Shift+F` - Toggle full screen * - :kbd:`Ctrl+M` - Toggle between Paged mode and Flow mode for text layout * - :kbd:`Ctrl+W` - Toggle the scrollbar * - :kbd:`Ctrl+X` - Toggle the Reference mode * - :kbd:`Ctrl+B` - Show/hide bookmarks * - :kbd:`Ctrl+Alt+B` - New bookmark * - :kbd:`Ctrl+N, Ctrl+E` - Show the book metadata * - :kbd:`Ctrl+Alt+F5, Ctrl+Alt+R` - Reload book * - :kbd:`Ctrl+Shift+ArrowRight` - Alter the current selection forward by a word * - :kbd:`Ctrl+Shift+ArrowLeft` - Alter the current selection backwards by a word * - :kbd:`Shift+ArrowRight` - Alter the current selection forward by a character * - :kbd:`Shift+ArrowLeft` - Alter the current selection backwards by a character * - :kbd:`Shift+ArrowDown` - Alter the current selection forward by a line * - :kbd:`Shift+Home` - Extend the current selection to the start of the line * - :kbd:`Shift+End` - Extend the current selection to the end of the line * - :kbd:`Ctrl+A` - Select all * - :kbd:`Shift+ArrowUp` - Alter the current selection backwards by a line * - :kbd:`Ctrl+Shift+ArrowDown` - Alter the current selection forward by a paragraph * - :kbd:`Ctrl+Shift+ArrowUp` - Alter the current selection backwards by a paragraph * - :kbd:`Esc, MenuKey` - Show the E-book viewer controls * - :kbd:`Ctrl+Comma, Ctrl+Esc, Meta+Esc, Meta+Comma` - Show E-book viewer preferences * - :kbd:`Ctrl+G, ;, :` - Go to a specified book location or position * - :kbd:`Ctrl+Spacebar` - Toggle auto-scroll * - :kbd:`Alt+ArrowUp` - Auto scroll faster * - :kbd:`Alt+ArrowDown` - Auto scroll slower * - :kbd:`Ctrl+I` - Show/hide Inspector * - :kbd:`Ctrl+L` - Show/hide the word lookup panel * - :kbd:`Ctrl+Q (Cmd+Q on macOS)` - Quit * - :kbd:`Ctrl+P` - Print book to PDF * - :kbd:`Ctrl+F11` - Toggle the toolbar * - :kbd:`Ctrl+H` - Toggle the highlights panel * - :kbd:`Ctrl+D` - Edit this book Non re-flowable content -------------------------- Some books have very wide content that cannot be broken up at page boundaries. For example tables or :code:`
` tags. In such cases, you should switch the
viewer to *flow mode* by pressing :kbd:`Ctrl+M` to read this content.
Alternately, you can also add the following CSS to the :guilabel:`Styles` section of the
viewer preferences to force the viewer to break up lines of text in
:code:`
` tags::

    code, pre { white-space: pre-wrap }


Designing your book to work well with the calibre viewer
------------------------------------------------------------

The calibre viewer will set the ``is-calibre-viewer`` class on the root
element. So you can write CSS rules that apply only for it. Additionally,
the viewer will set the following classes on the ``body`` element:

``body.calibre-viewer-dark-colors``
    Set when using a dark color scheme

``body.calibre-viewer-light-colors``
    Set when using a light color scheme

``body.calibre-viewer-paginated``
    Set when in paged mode

``body.calibre-viewer-scrolling``
    Set when in flow (non-paginated) mode

``body.calibre-footnote-container``
    Set when displaying a popup footnote

Finally, you can use the calibre color scheme colors via `CSS variables
`_.
The calibre viewer defines the following variables:
``--calibre-viewer-background-color``, ``--calibre-viewer-foreground-color``
and optionally ``--calibre-viewer-link-color`` in color themes that define
a link color.