mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
442 lines
17 KiB
ReStructuredText
442 lines
17 KiB
ReStructuredText
.. _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 or sentence being currently read is highlighted. Speech is
|
|
synthesized from the text using either the `Piper
|
|
<https://github.com/rhasspy/piper>`__ neural text-to-speech engine or your
|
|
operating system services for text-to-speech. You can change the backend and
|
|
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.
|
|
|
|
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
|
|
<regexp>`.
|
|
|
|
|
|
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
|
|
<https://www.mobileread.com/forums/showthread.php?t=51500>`_.
|
|
|
|
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`.
|
|
|
|
|
|
Syncing with a paper edition of the current book
|
|
----------------------------------------------------
|
|
|
|
Some e-books, that have corresponding print editions, include metadata that
|
|
marks the start of each paper page. For such e-books, the viewer allows you to
|
|
jump to a particular paper edition page via the :guilabel:`Go to` button in the
|
|
viewer controls. You can also optionally display the paper page corresponding
|
|
to the current location in the book's headers or footers via the viewer
|
|
settings, by adding :guilabel:`Pages from paper edition` to either the header
|
|
or the footer.
|
|
|
|
.. _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 E-book 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:`<pre>` 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:`<pre>` tags::
|
|
|
|
code, pre { white-space: pre-wrap }
|
|
|
|
|
|
Designing your book to work well with the calibre E-book viewer
|
|
-----------------------------------------------------------------
|
|
|
|
The calibre E-book 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
|
|
<https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties>`_.
|
|
The calibre E-book 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.
|