Professional Documents
Culture Documents
Xournal is an application for notetaking, sketching, keeping a journal using a stylus. It is free software (GNU GPL) and runs on Linux
(recent distributions) and other GTK+/Gnome platforms. It is similar to Microsoft Windows Journal or to other alternatives such as
Jarnal and Gournal.
Xournal can be downloaded at http://xournal.sourceforge.net/ or http://math.berkeley.edu/~auroux/software/xournal/
Xournal aims to provide superior graphical quality (subpixel resolution) and overall functionality; however various advanced features
have not been implemented yet.
Table of contents
Getting started
The drawing and selection tools
Pages, layers, and backgrounds
Printing
Configuration file
Author information, license, bug-reports
Version history
The file format
Installation issues and tablet calibration issues
Getting started
Xournal's user interface is (hopefully) intuitive, and if you don't run into installation or tablet calibration issues, you'll probably be able to
start taking notes without referring to this manual.
Here is a screenshot of the user interface (click to enlarge):
Refer to the next few sections of this manual for more information about the various functionalities.
http://xournal.sourceforge.net/manual.html 1 / 13
Xournal User's manual 1/11/2015
http://xournal.sourceforge.net/manual.html 2 / 13
Xournal User's manual 1/11/2015
menu).
If you drag the cursor below the bottom of the page (so that the entire block being moved has become invisible), the items will be
moved to the next page (topmost layer); however, any items that were already present on the next page are left unchanged. Similarly,
dragging the cursor above the top of the page so that the entire block being moved becomes invisible results in the items being
moved to the previous page.
Hand tool
This tool lets you browse the journal; dragging the cursor scrolls the view.
Undo and redo
All operations performed on the currently open journal (drawing, erasing, cut-and-paste; adding, deleting, and reformatting pages;
etc.) can be undone and redone at will using the Undo and Redo toolbar buttons or the corresponding entries in the Edit menu.
There is no limit to the depth of the undo/redo stack. It is cleared only when you quit the application or open a new journal.
Button mappings
Stylus buttons 2 and 3 (mouse middle and right buttons) can be mapped to different tools using the appropriate submenus in the
Options menu (whereas the Tools menu and the toolbar buttons affect the primary tool assigned to button 1). The default mapping is
the eraser.
Advanced configuration: if a secondary button is mapped to a drawing tool (pen, eraser, or highlighter), the default is to
"dynamically link" its settings to those of the primary tool, which means that each drawing tool has common settings (color, thickness,
etc.) for all buttons. Dynamic linking of brush settings can be disabled by selecting the "Copy of current brush" option in the "Button
mapping" submenu. The settings of the tool for button 2 or 3 are copied from the button 1 settings at the time when you select the
option, and afterwards they are no longer updated when the button 1 settings are modified, thus making it possible to assign pens of
different colors or thicknesses to different buttons.
Another option that affects button mappings is the "Eraser tip" option. If this option is turned on and the XInput extensions are enabled,
then the eraser tip of your tablet's stylus will automatically be remapped to the eraser tool. This behavior, which overrides all other
button mappings, is most useful if your X server is configured to map the eraser tip of your tablet's stylus to button 1.
Also note the "Buttons switch mappings" option, which may be useful to users of external tablets: when this option is turned on, buttons
2 and 3 only switch the tool mapping, and drawing is still done with button 1.
http://xournal.sourceforge.net/manual.html 3 / 13
Xournal User's manual 1/11/2015
Pages can be added to the journal by using the "New Page ..." entries in the Journal menu. The newly created page has the same
format and background as the current page (for the "New Page Before" and "New Page After" commands), or as the last page of the
journal (for "New Page At End"). Additionally, jumping to the next page when already on the last page creates a new page at the end
of the journal.
The "Delete Page" entry in the Journal menu removes the current page from the journal. (Remember that you can always undo this
operation if you deleted a page by accident).
The "New Layer" entry in the Journal menu creates a new layer immediately above the current one, while "Delete Layer" removes the
current layer and its contents (if you attempt to delete the only layer of a page, a new empty layer will be automatically created).
Paper formats and backgrounds
The size of the current page can be modified using the "Paper Size" entry in the Journal menu. Standard and custom sizes are
available.
The background is either one of several kinds of standard paper types, or a bitmap image, or a page of a PDF file.
To select a standard paper type as background for the current page, use the "Paper Style" submenu of the Journal menu. The paper
color can also be changed using the "Paper Color" submenu of the Journal menu.
To use a PDF file as the background for a journal, see the paragraph on PDF annotation below.
To load a bitmap image file for use as background for the current page, use the "Load Background" entry of the Journal menu. This
automatically resizes the current page according to the size of the bitmap image, and resets the zoom level to 100%. If ghostscript is
installed on your system, you can also use this method to import a fixed-resolution bitmap version of a Postscript or PDF file; in that
case, all pages will be imported sequentially as backgrounds into consecutive pages (this is not the recommended method; PDF
annotation is better in every respect).
To capture a screenshot of a window or the entire screen and make it the background of the current page, use the "Background
Screenshot" entry of the Journal menu. This will iconify the Xournal window; click in any window (after ensuring it is fully visible) to
capture its contents, or click on the desktop (or screen background) to capture the entire screen.
Important note: by default, bitmap images loaded using the "Load Background" command will not be saved with the journal; instead,
the journal file will contain a reference to the absolute location of the image file. This means that the background will become
unavailable if the image file is moved or deleted. To avoid this, check the option "Attach file to the journal" at the bottom of the file
selection dialog box.
This option only applies to bitmap image files loaded from disk; screenshot backgrounds (and bitmaps converted from PS/PDF files
using ghostscript) are automatically "attached" to the journal file: when the journal is saved, they will be saved (in PNG format) along
with it (using file names of the form *.xoj.bg_*.png).
PDF annotation
Xournal can be used to annotate PDF files, by loading the pages of a PDF file as backgrounds for a journal. As of version 0.4.5 this is
done using the poppler library (previous versions used the pdftoppm converter, which is part of the xpdf utilities or the poppler utilities
depending on distributions).
The "Annotate PDF" command in the File menu can be used to load a PDF file into a new (empty) journal. The page backgrounds and
page sizes correspond to the contents of the PDF file. (Most unencrypted PDF files should be supported).
By default, the PDF file used to generate the backgrounds will not be saved with the journal; instead, the journal file will contain a
reference to the absolute location of this file. This means that all backgrounds will become unavailable if the PDF file is moved or
deleted (although Xournal will let you specify the updated location of the PDF file when opening the journal file). To avoid this, check
the option "Attach file to the journal" at the bottom of the dialog box when opening the PDF file. The PDF file will then be saved along
with the journal (using a file name of the form *.xoj.bg.pdf).
Upon zooming, the page backgrounds are asynchronously updated to fit the current display resolution. Since this process is quite slow
and memory-intensive, the pages are normally updated only as needed, when they become visible on the screen (unless you disable
the "Progressive Backgrounds" option in the Options menu). This means that you will occasionally notice the page backgrounds being
updated while you are scrolling inside the document (at large zoom levels, it can take a while for the updated background to appear).
It is strongly recommended that you do not resize PDF pages (using the "Paper Size" command). This will result in extremely ugly
rendering, as the PDF converter is unable to render bitmaps with non-standard aspect ratios.
While you can perform all sorts of page operations on a journal file that was created from a PDF file (such as duplicating or deleting
pages, inserting pages with blank or bitmapped backgrounds, ...), it is not possible to include pages from more than one PDF file into
a single journal document. If you need to annotate two or more PDF files inside a same journal document, please consider using an
external utility for merging PDF files (for example pdfmerge).
Note: the PDF backgrounds are rescaled and/or regenerated as needed when the zoom level is changed. Because this consumes a
lot of memory and CPU resources, by default this rescaling is performed on-demand as each page becomes visible. This means that
you will occasionally notice backgrounds being generated while you are scrolling inside the document (at large zoom levels, this can
slow down the screen refresh rate noticeably). If you'd prefer all backgrounds to be loaded in advance and rescaled immediately upon
http://xournal.sourceforge.net/manual.html 4 / 13
Xournal User's manual 1/11/2015
changing the zoom level, disable the "Progressive Backgrounds" option in the Options menu. Be aware that this increases the
memory consumption and will cause out-of-memory crashes when viewing long documents.
Printing
As of version 0.4.5, Xournal uses the gtk-print architecture for printing (previous versions used gnome-print). Xournal also includes a
native PDF printing feature.
Printing via gtk-print
The print dialog box lets you select a printer (either one of the printers installed on your system, or the "Print to File" virtual printer), and
a range of pages to print (the default is to print the entire journal). Each page of the journal is automatically rescaled so as to fit the
paper size.
Unlike the older gnome-print architecture, gtk-print and poppler make it possible to efficiently print files that annotate PDF
backgrounds. (Prior to version 0.4.5, PDF backgrounds had to be converted to bitmaps upon printing, resulting in huge print jobs and
low printout quality).
The settings are currently not saved properly from one print job to the next, so make sure to verify the settings.
Exporting to PDF
As of version 0.4.8, the "Export to PDF" command uses the poppler and cairo libraries to produce a PDF version of the currently
loaded document. The pages of the resulting PDF file have the same size as in Xournal. Highlighter strokes are rendered in a partially
transparent manner. Text items are rendered by embedding TrueType subsets or Type 1 fonts into the PDF document as appropriate.
Xournal still provides its own PDF rendering engine, which was the default up to version 0.4.7 and continues to be used if "Legacy
PDF Export" is checked in the Options menu. This code includes a PDF file parser compatible with PDF format version 1.4; the
compression features of PDF 1.5 are not supported. When exporting a document that uses PDF backgrounds, Xournal attempts to
preserve most of the structure of the original PDF file (however, auxiliary data such as thumbnails, hyperlinks, and annotations are
lost). If Xournal is unable to parse the PDF file, the poppler/cairo renderer is used instead to generate a new PDF file from scratch.
Configuration file
Xournal's configuration settings are saved to the file ~user/.xournal/config by using the "Save Preferences" command in the
Options menu. The settings saved in the configuration file include in particular:
general display preferences: zoom level, window size, ...
default paper settings (as set by the "Set As Default" command in the Journal menu)
default settings for the pen, eraser, highlighter, and text tools (as set by the "Set As Default" command in the Tools menu)
mappings for buttons 2 and 3
the various preferences set in the Options menu
The configuration file also gives access to additional customization options which cannot be set from the user interface, such as: the
display resolution in pixels per inch, the step increment in zoom factors, the tool selected at startup, the thickness of the various
drawing tools, the default directory for opening and saving files, the visibility and position of the menu and toolbars, ...
Here is a partial list of configuration file settings:
Display settings (in the [general] section):
display_dpi: the display resolution in pixels per inch
initial_zoom: the initial zoom level, in percent
window_maximize: whether to start with a maximized window
window_fullscreen: whether to start in fullscreen mode
window_width, window_height: the preferred window size (if not maximized)
zoom_step_factor: the (multiplicative) factor by which the zoom in/zoom out buttons change the zoom level
view_continuous: whether to start in continuous or single-page view mode (see also View menu)
highlighter_opacity: the opacity level of highlighter strokes (from 0 to 1; 1 is fully opaque). Note that .xoj files do not
store the opacity level of strokes, so if you change from the default value of 0.5 your files will look different when opened on
another machine.
User interface settings (in the [general] section):
autosave_prefs: whether to automatically save preferences upon exiting Xournal.
interface_order: the position of the various toolbars relative to the drawing area, from top to bottom. The default order is:
menu main_toolbar pen_toolbar drawarea statusbar. Switching elements around rearranges the interface. Removing
elements from the list hides them.
interface_fullscreen: the same thing, but in fullscreen mode. For example, drawarea main_toolbar pen_toolbar
would position the toolbars below the drawing area, and hide the menu and status bar. interface.
shorten_menus: whether to hide some little-used menu or toolbar items (see also "Shorten Menus" in Options menu)
http://xournal.sourceforge.net/manual.html 5 / 13
Xournal User's manual 1/11/2015
shorten_menus: whether to hide some little-used menu or toolbar items (see also "Shorten Menus" in Options menu)
shorten_menu_items: the list of interface items to hide when shorten_menus is enabled. Virtually everything in the
interface can be hidden. A complete list of interface item ID names can be obtained by running the command grep id=
xournal.glade in the base directory of the source code distribution.
default_path: the default path for the open/save dialog boxes (leave blank to use the current directory)
autoload_pdf_xoj: whether to load filename.pdf.xoj (if it exists) when the user opens filename.pdf (see also "Autoload
.pdf.xoj" in Options menu)
Input device settings (in the [general] section):
use_xinput: whether to enable XInput extensions for high-resolution tablet input (see also "Use XInput" in Options menu)
discard_corepointer: whether to discard Core events when XInput extensions are enabled. Setting this to "false" should
be safe.
use_erasertip: whether to always map the eraser tip of a stylus to the eraser (see also "Eraser Tip" in Options menu)
buttons_switch_mappings: whether to have buttons 2 and 3 switch the tool mapping instead of actually drawing (useful
with some external tablets; see also "Buttons Switch Mappings" in Options menu)
pressure_sensitivity: whether to use stylus pressure to control stroke width (see also "Pressure Sensitivity" in Options
menu)
width_minimum_multiplier, width_maximum_multiplier: the minimum and maximum width multipliers for pressure-
sensitive strokes
Paper settings (in the [paper] section):
width, height: the default paper size, in points (1 point = 1/72 in = 0.353 mm)
color: the default paper color (named color or #rrggbbaa)
style: the default paper style (plain, lined, ruled, or graph)
apply_all: whether paper style changes get applied to all pages (see also "Apply to all pages" in Journal menu)
print_ruling: whether to include the paper ruling lines when printing (see also "Print Paper Ruling" in Options menu)
progressive_bg: whether to generate PDF backgrounds just-in-time as pages become visible (rather than immediately
upon opening the document or changing the zoom level, which is more memory-intensive); see also "Progressive
Backgrounds" in Options menu
gs_bitmap_dpi: resolution (in dpi) of bitmap backgrounds generated from PS/PDF files when using "Load Background"
in Journal menu; higher values mean higher quality but larger memory usage
pdftoppm_printing_dpi: resolution (in dpi) of bitmaps generated from PDF backgrounds when exporting to PDF (only
used if the PDF parser is unable to process the background PDF file); higher values mean higher quality but larger output
files
Tool settings (in the [tools] section):
startup_tool: the tool selected at startup (one of: pen, eraser, highlighter, selectrect, vertspace, hand)
pen_color, pen_thickness, pen_ruler, pen_recognizer: the default pen settings: color (a named color or #rrggbbaa),
thickness (fine = 1, medium = 2, thick = 3), ruler mode, recognizer mode
highlighter_color, highlighter_thickness, highlighter_ruler, highlighter_recognizer: the default highlighter
settings
eraser_thickness, eraser_mode: the default eraser settings: thickness (fine = 1, medium = 2, thick = 3) and operating
mode (standard = 0, whiteout = 1, delete strokes = 2)
btn2_tool, btn3_tool: the tools mapped to buttons 2 and 3 (can be: pen, eraser, highlighter, selectrect, vertspace,
hand)
btn2_linked, btn3_linked: whether the settings of the tools for buttons 2 and 3 are linked to those of the corresponding
primary tools
btn2_color, btn2_thickness, btn2_ruler, btn2_recognizer, btn2_erasermode: if the settings are not linked to the
primary tool (btn2_linked is false), the settings of the tool mapped to button 2. Not all entries are applicable, depending
on the value of btn2_tool.
btn3_color, btn3_thickness, btn3_ruler, btn3_recognizer, btn3_erasermode: similarly for the button 3 tool.
pen_thicknesses, eraser_thicknesses, highlighter_thicknesses: the widths in points (1 pt = 1/72 in = 0.353 mm) of
the various pens (5 values from 'very fine' to 'very thick'), erasers (3 values from 'fine' to 'thick') and highlighters (3 values
from 'fine' to 'thick')
default_font, default_font_size: the name and point size of the default text font.
http://xournal.sourceforge.net/manual.html 6 / 13
Xournal User's manual 1/11/2015
Xournal is distributed under the GNU General Public License (version 2, or at your option any later version).
Note: most of the code of version 0.4.2.1 (excluding graphics and a few portions of the code) has also been released under the MIT License.
Please contact the main developer if you need an MIT License version of the 0.4.2.1 code. Later versions are not available under MIT License.
Feel free to contact me with bug reports and suggestions; I apologize in advance if I am unable to respond properly to some requests.
If you find a sequence of operations which crashes Xournal in a reproducible manner, please send detailed instructions on how to
reproduce the crash. A core file may also be helpful.
Bug reports and suggestions can also be submitted on Xournal's SourceForge page.
Version history
Version 0.4.8 (June 30, 2014):
Features:
option to auto-save documents and recover auto-saves (after Edward Yang, Aiwarrior, Timo Kluck)
new Export to PDF code using cairo (and config option to enable legacy code)
horizontal view mode
improved touchscreen handling
pencil cursor option (patch by Luciano Siqueira)
added "new pages duplicate background" option (new default is false)
updated Windows build and packaging instructions
XInput device handling:
ignore events from non-drawing devices by default (ignore_other_devices)
"touchscreen as hand tool" option (after Rumen Zarev and Daniel German)
"pen disables touchscreen" option; dialog box to designate touch device
tweaks to xinput event processing for touchscreens
Bugfixes:
generate cursors from pixbufs (fixes a Win32 bug)
work around Win32 bug: refuse paste if mismatched format
fix configure.in for automake-1.13 (Florian Bruhin, Andreas Huettel)
smoother icons for eraser and shapes buttons (by Colin Macdonald)
fix a cross-platform g_basename() issue (after Daniel German)
bugfix for file paths with non-English characters in Win32
add some margin around lasso selection rectangle (after Niklas Beisert)
warn for fontconfig cache generation in Win32
Translations:
Chinese (simplified) translation (by Mutse)
updated German translation (Stefan Holtzhauer)
Polish translation (by Mis Uszatek)
Chinese (traditional) translation (William Chao)
Japanese translation (by Hiroshi Saito)
Version 0.4.7 (July 4, 2012):
insert image tool (based on patches by Victor Saase and Simon Guest)
renamed "Journal" menu to "Page"
paste images and text directly from and to other applications
lasso tool (based on patch by Ian Woo Kim)
Version 0.4.6 (May 22, 2012):
win32 portability code (contributed by Dirk Gerrits)
fix bug in PDF export code on 64-bit systems (patch by Robert Buchholz)
fix hand tool bug when exiting canvas (#2905711)
Italian translation (Marco Poletti), German translation (Stefan Lembach)
Spanish translation (Alvaro), Brazil Portuguese translation (Marco Souza)
fix save bug with text boxes containing > 4095 characters
Czech translation (David Kolibac), Dutch translation (Timo Kluck)
fix crash upon unplugging input devices
change close dialog box default to "save" (patch by Kit Barnes)
option to force PDF background rendering via cairo (slower but nicer)
wrapper for missing GdkPixbuf rendering function in newest poppler
disable GTK+ XInput bugfix by default (#3429416)
fix linker flags (#3208984); evdev coordinate fix (#3244118) (Timo Kluck)
specify license version: GPL v2 or later
fix 1.#J coordinates from win32 xoj files
Version 0.4.5 (Oct 2, 2009):
bugfixes for GTK+ 2.16/2.17 issues with xinput events
http://xournal.sourceforge.net/manual.html 7 / 13
Xournal User's manual 1/11/2015
http://xournal.sourceforge.net/manual.html 8 / 13
Xournal User's manual 1/11/2015
The <title> and <xournal> tags may only appear within the file header (not within the pages of the document). The version attribute of
the <xournal> tag indicates which version of Xournal was used to create the document; it is currently ignored, but may be used in a
later release if the file format changes in an incompatible manner. (Following a suggestion of Matteo Abrate, starting with version 0.4
the <xournal> tag is the document's root tag, and encloses all other tags).
The rest of the file is a sequence of pages, specified by a <page> tag, whose attributes width and height specify the physical size of
the page in points (1/72 in). The width and height parameters are floating point values. The format of a page is therefore:
<page width="..." height="...">
... page contents ...
</page>
Page background
The first entry within a page describes the page background. It consists of a <background> tag followed by several mandatory XML
attributes. The first attribute is always type, which can take three possible values: "solid" for a solid background, "pixmap" for a bitmap
background, and "pdf" if the background is a page of a PDF document. The rest of the attributes depends on the type of background.
Solid background: <background type="solid" color="..." style="..." />
The color attribute takes one of the standard values "white", "yellow", "pink", "orange", "blue", "green", or can specify a
hexadecimal RGBA value in the format "#rrggbbaa". The style attribute takes one of the standard values "plain", "lined", "ruled",
http://xournal.sourceforge.net/manual.html 9 / 13
Xournal User's manual 1/11/2015
or "graph".
Bitmap background: <background type="pixmap" domain="..." filename="..." />
The domain attribute takes one of the standard values "absolute", "attach", or "clone". A value of "absolute" indicates that the
bitmap is found in the file specified by filename. The bitmap can be in any format recognized by the gdk-pixbuf library; this
includes most of the common bitmap formats (JPEG, PNG, BMP, GIF, PCX, PNM, TIFF, ...).
A value of "attach" indicates that the bitmap is an attachment to the Xournal file. The bitmap is in PNG format, and resides in a
file whose name is derived from that of the main Xournal file by appending to it a dot and the contents of the filename attribute.
For example, if the Xournal file is in file.xoj and the filename attribute is "bg_1.png" then the bitmap file is
file.xoj.bg_1.png (Xournal saves attached bitmaps sequentially in files ...bg_1.png, ...bg_2.png, etc.)
A value of "clone" indicates that the bitmap is identical to the background of a previous page of the journal; the filename
attribute then specifies the page number, starting with 0 for the first page. For example, if a filename value of "1" indicates that
the background bitmap is identical to that of the second page.
PDF background: <background type="pdf" domain="..." filename="..." pageno="..." /> or <background type="pdf"
pageno="..." />
The domain and filename attributes must be specified for the first page of the journal that uses a PDF background, and must be
omitted subsequently for every other page that uses a PDF background. The domain attribute takes one of the standard values
"absolute" and "attach"; the PDF document is to be found in the file specified by filename (if domain is "absolute"), or in the file
whose name is obtained by appending a dot and the contents of the filename attribute to the name of the main Xournal file (if
domain is "attach"). The pageno attribute specifies which page of the PDF file is used as background, starting with 1 for the first
page of the PDF file.
Layers and strokes
After the line specifying the background, the remainder of a <page> section is occupied by one or more layer sections
<layer> ... </layer>
describing the various items within a layer. Every page must contain at least one layer; a layer may be empty. The successive layers
are listed in their stacking order, from bottom to top.
A layer consists of a collection of items, listed in the order in which they should be drawn (from bottom-most to top-most). Up to
version 0.3.3, the only legal contents within a layer are strokes. The format of a stroke is:
<stroke tool="..." color="..." width="...">
... list of coordinates ...
</stroke>
The tool attribute can take the values "pen", "highlighter", or "eraser" depending on the tool used to create the stroke (pen, highlighter,
or whiteout eraser); a value of "highlighter" indicates that the stroke should be painted in a partially transparent manner (Xournal uses
an alpha coefficient of 0.5).
The color attribute can take one of the standard values "black", "blue", "red", "green", "gray", "lightblue", "lightgreen", "magenta",
"orange", "yellow", "white", or can specify a hexadecimal RGBA value in the format "#rrggbbaa".
The width attribute is a floating-point number (or a sequence of floating-point numbers starting with version 0.4.2), and specifies the
width of the stroke in points (1/72 in). (For a variable-width stroke, the width attribute contains a whitespace-separated succession of
floating-point values: first the nominal brush width, and then the width of each successive segment forming the stroke.)
The list of coordinates is simply a succession of floating-point values, separated by whitespace. The number of given values must be
even; consecutive pairs of values give the x and y coordinates of each point along the stroke. These values are expressed in points
(1/72 in). The coordinates (0,0) represent the top-left corner of the page: hence x is measured from the left of the page, and y is
measured from the top of the page.
Every stroke must contain at least two points (four floating point values). Moreover, two consecutive points on the stroke should be
spaced no more than 5 units apart or so; longer line segments should be subdivided as appropriate (otherwise the eraser tool will not
interact properly with the stroke). The default precision used by Xournal for the x,y coordinates is 0.01 unit (1/7200 in).
Starting with version 0.4, layers also contain text items. The format of a text item is:
<text font="..." size="..." x="..." y="..." color="...">... text ...</text>
The font attribute contains the font name, for example "Serif Bold Italic"; if the font is not available, another font will be substituted. The
size attribute specifies the font size in points. The x and y attributes specify the coordinates of the top-left corner of the text box in
page coordinates (measured in points from the top-left corner of the page). Finally, the color attribute contains either the name of a
standard color or a hexadecimal RGBA value (see above).
The contents of the text are encoded in UTF-8, with the characters '&', '<', '>' replaced by &, <, >. Whitespace and
linefeeds are preserved (in particular, no extraneous whitespace should be inserted between the enclosing tags and the text itself).
Starting with version 0.4.7, layers can also contain image items. The format of an image item is:
<image left="..." top="..." right="..." bottom="...">... data ...</image>
http://xournal.sourceforge.net/manual.html 10 / 13
Xournal User's manual 1/11/2015
The left, top, right and bottom attributes specify the bounding box to which the image is scaled, in page coordinates (measured in
points from the top-left corner). The data is in base64-encoded PNG format (though any other base64-encoded format that can be
loaded by gdk-pixbuf is currently accepted).
Installation issues
Dependencies
The following libraries are required to run Xournal (they are standard on modern Linux distributions such as Fedora 6 or later, RHEL 5
or later, Ubuntu 6.10 or later, etc.):
the gtk+ libraries, version 2.10 or later (package gtk2 and dependencies)
libgnomecanvas version 2.4 or later (package libgnomecanvas and dependencies)
poppler-glib version 0.5.4 or later (package poppler-glib and dependencies)
Optional:
ghostscript (optional: used to import PS/PDF files as bitmap backgrounds)
To compile Xournal, you also need the development packages for the above libraries (packages gtk2-devel, libgnomecanvas-
devel, poppler-glib-devel, and dependencies), as well as autoconf and automake.
(the last one only if your stylus has an eraser tip), and your configuration file should include sections such as
Section "InputDevice"
http://xournal.sourceforge.net/manual.html 11 / 13
Xournal User's manual 1/11/2015
Identifier "cursor"
Driver "wacom"
Option "Device" "/dev/ttyS0"
Option "Type" "cursor"
Option "ForceDevice" "ISDV4"
Option "BottomX" "28800"
Option "BottomY" "21760"
Option "Mode" "absolute"
EndSection
Section "InputDevice"
Identifier "stylus"
Driver "wacom"
Option "Device" "/dev/ttyS0"
Option "Type" "stylus"
Option "ForceDevice" "ISDV4"
Option "BottomX" "28800"
Option "BottomY" "21760"
Option "Mode" "absolute"
EndSection
Section "InputDevice"
Identifier "eraser"
Driver "wacom"
Option "Device" "/dev/ttyS0"
Option "Type" "eraser"
Option "ForceDevice" "ISDV4"
Option "BottomX" "28800"
Option "BottomY" "21760"
Option "Mode" "absolute"
EndSection
The actual settings will depend on your hardware; look on the web for Linux installation instructions specific to your model: for
example, the "Device" settings above correspond to a serial port protocol, many tablets use USB instead; the BottomX and BottomY
values correspond to the physical resolution of the tablet and will vary from one model to another.
For historical reasons, most X servers do not allow the input device designated as the "core pointer" in the X server's configuration file
to be used as an XInput extension device. Thus, your tablet input devices should not be designated as the core pointer device.
Instead, they should be configured with the "SendCoreEvents" option, which enables them to simultaneously generate XInput
extension events and move the cursor on the screen.
If you have a newer X server and no xorg.conf file, the input devices can be configured using the xinput command.
Note: with older X servers, only tablet devices are XInput devices, while a built-in pointing device or an external mouse would only act
as the core pointer. In newer X servers, all devices are handled through XInput (even though without advanced capabilities), though
mice and touchpads typically send invalid event data. Xournal tries to work around the most common bugs in input device drivers and
GTK+ input event processing.
The cursor doesn't appear in the right place...
If the mouse pointer does not follow accurately the position of the stylus, this is an indication that your tablet is not properly calibrated. If
you have the linuxwacom package, you can try modifying the tablet calibration using xsetwacom. The relevant parameters are named
TopX, BottomX, TopY, BottomY, and need to be set separately for the stylus and for the eraser. For example:
xsetwacom set stylus TopX 270
xsetwacom set stylus BottomX 28510
...
(the TopX and TopY parameters default to 0 if you haven't set them in your X server's configuration file). Experiment with these
parameters until you find the right calibration settings for your tablet (i.e., the mouse pointer appears right under the tip of the stylus).
Once you have found the perfect settings for your tablet, update your X server's configuration file or startup scripts.
Important: on older systems, the TopX and TopY values should always be kept at 0 to avoid calibration bugs.
The cursor is in the right place, but strokes aren't drawn under the cursor...
If you experience this while trying to draw with a mouse, touchpad, or other non-tablet device:
If you don't have a tablet, simply disable "Use XInput" in the Options menu, this is the fastest way of fixing the problem.
Upgrade to a recent version of Xournal (0.4.5 or later). Older versions of Xournal are not compatible with the event handling
code of recent X server and GTK+ library versions.
Check that the "Discard Core Events" option is disabled (discard_corepointer should be set to false in ~/.xournal/config).
http://xournal.sourceforge.net/manual.html 12 / 13
Xournal User's manual 1/11/2015
The display geometry might have changed since the beginning of your session in Xournal (resolution changed, external monitor
connected, display rotated, etc.). You need to exit Xournal and re-start it each time your display configuration changes.
Your tablet devices might be incorrectly calibrated or configured.
If all else fails, you can disable XInput support in Xournal (in the Options menu), at a price of a severe loss of resolution (and the eraser
tip won't be detected anymore).
One of the workarounds used by Xournal to bypass a calibration bug in old versions of GTK+ seems to be more harmful than helpful
with modern distributions. If you miss the old behavior or are having XInput issues, try recompiling after uncommenting the line
#define ENABLE_XINPUT_BUGFIX
Note #1: you should not rotate the display while Xournal is running, otherwise the tablet calibration in Xournal may (and most likely
will) become incorrect. (Less likely to occur with modern distributions and ENABLE_XINPUT_BUGFIX disabled). Exit Xournal and
restart it after the display has been rotated.
Note #2: the syntax of xrandr commands has changed in newer X servers. Consult the xrandr manual page for the new syntax.
http://xournal.sourceforge.net/manual.html 13 / 13