]> git.donarmstrong.com Git - xournal.git/blobdiff - html-doc/manual.html
Update to version 0.4.2.
[xournal.git] / html-doc / manual.html
index be75dea015668eb7605e5a7181e92acff986d1b9..f043617f789896cd3035b36b75b012c51f01030e 100644 (file)
@@ -24,7 +24,7 @@
   Xournal User's Manual
 </h2>
 <p style="font-size: 0.95em; text-align: center; color: rgb(0,0,0)">
- Version 0.3.1
+ Version 0.4.2
 </p>
 <hr />
 <p>
@@ -38,6 +38,7 @@
 </p>
 <p>
 Xournal can be downloaded at
+<a href="http://xournal.sourceforge.net/">http://xournal.sourceforge.net/</a> or 
 <a href="http://math.mit.edu/~auroux/software/xournal/">http://math.mit.edu/~auroux/software/xournal/</a>
 </p>
 <p>
@@ -53,6 +54,7 @@ Xournal can be downloaded at
   <li> <a href="manual.html#tools">The drawing and selection tools</a> </li>
   <li> <a href="manual.html#pages-layers">Pages, layers, and backgrounds</a> </li>
   <li> <a href="manual.html#printing">Printing</a> </li>
+  <li> <a href="manual.html#configuration">Configuration</a> </li>
   <li> <a href="manual.html#author">Author information, license, bug-reports</a> </li>
   <li> <a href="manual.html#changelog">Version history</a> </li>
   <li> <a href="manual.html#file-format">The file format</a> </li>
@@ -125,6 +127,28 @@ the Tools menu):
   is yellow) and thicknesses. Use the color and thickness toolbar buttons
   to change these settings.
 </p>
+<h3 class="subsub"><img src="pixmaps/text-tool.png"> The text tool</h3>
+<p>
+  To insert a new text item, click at the location where the text is to be
+  inserted on the page, then type it in or paste it using the contextual
+  menu (note: no wrapping is performed). To modify a text item, click inside
+  it. The font and point size can be modified using the "Text Font" command
+  in the Tools menu (or the toolbar button). The color is the same as that
+  currently selected for the pen (and can be modified using the toolbar
+  buttons).
+</p>
+<p>
+  Text items can contain arbitrary Unicode characters, provided that a
+  suitable font is installed on your system. However, languages written
+  in a direction other than left-to-right might not be handled properly.
+  If a journal contains some items in a font that is unavailable on your
+  system, another one will be substituted. (Also, text items will be
+  lost if the document is opened in a version of Xournal prior to 0.4).
+  Finally, note that the printing and PDF export features only accept
+  TrueType and Type 1 scalable fonts (do not use any bitmap fonts), and
+  that the typesetting of the text may be slightly different in the
+  printout.
+</p>
 <h3 class="subsub"><img src="pixmaps/ruler.png"> The ruler</h3>
 <p>
   The ruler is not a tool by itself, but rather a special operating mode
@@ -132,17 +156,44 @@ the Tools menu):
   line segments instead of curvy strokes. For simplicity, selecting the
   ruler when not in pen or highlighter mode automatically selects the pen.
 </p>
+<a name="recognizer"></a>
+<h3 class="subsub"><img src="pixmaps/shapes.png"> The shape recognizer</h3>
+<p>
+  The shape recognizer is also a special 
+  operating mode of the pen and highlighter tools. When it is enabled,
+  Xournal attempts to recognize geometric shapes as they are drawn, and
+  if successful will replace the drawn strokes accordingly. The shapes
+  that can be recognized are: line segments, circles, rectangles, arrows,
+  triangles and quadrilaterals. Polygonal shapes can be drawn in a single
+  stroke or in a sequence of consecutive strokes.
+</p>
+<p>
+  The recognizer is set to be as unobtrusive as possible, and should not
+  interfere too much with handwriting. (It differs in this and other ways
+  from another shape recognizer written for Xournal by Lukasz Kaiser).
+  As a result, it may only recognize shapes if you draw them carefully and
+  deliberately. Specific tips for better recognition: (1) for circles,
+  a closed curve that isn't quite round works better
+  than a rounder curve that doesn't close; (2) for arrows, it is better
+  to lift the pen before drawing the tip of the arrow, and make sure
+  the tip consists of two straight line segments;
+  (3) for very elongated rectangles,
+  recognition tends to be better if you lift the pen between consecutive
+  sides.
+</p>
 <h3 class="subsub"><img src="pixmaps/recycled.png"> Default tools</h3>
 <p>
-  Each drawing tool (pen, eraser, highlighter) has a default setting
-  (color, thickness, ...) associated to it.
-  The "Default Pen", "Default Eraser", and "Default Highlighter" entries of
+  Each tool (pen, eraser, highlighter, text) has a default setting
+  (color, thickness, ... for the drawing tools, font and size for the
+  text tool) associated to it.
+  The "Default Pen", "Default Eraser", "Default Highlighter", and
+  "Default Text" entries of
   the Tools menu select the appropriate tool and reset its settings to
   the defaults. The toolbar also includes a "Default" button which
-  resets the currently selected drawing tool to its default settings,
+  resets the currently selected tool to its default settings,
   and a "Default Pen" button. <br />
   The "Set As Default" entry of the Tools menu takes the current settings
-  of the currently selected drawing tool and makes them the new default.
+  of the currently selected tool and makes them the new default.
 </p>
 <a name="thicknesses"></a>
 <h3 class="subsub"><img src="pixmaps/thin.png"> <img src="pixmaps/medium.png">
@@ -190,6 +241,11 @@ the Tools menu):
   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.
 </p>
+<h3 class="subsub"><img src="pixmaps/hand.png"> Hand tool</h3>
+<p>
+  This tool lets you browse the journal; dragging the cursor scrolls the
+  view.
+</p>
 <h3 class="subsub">Undo and redo</h3>
 <p>
   All operations performed on the currently open journal (drawing, erasing,
@@ -464,7 +520,8 @@ file is much more compact than those produced via gnome-print, and
 its pages have the same size as in Xournal. Highlighter strokes
 are rendered in a partially transparent manner (note however that
 applications such as xpdf and ghostview do not always handle
-PDF transparency properly).
+PDF transparency properly). Text items are rendered by embedding
+TrueType subsets or Type 1 fonts into the PDF document as appropriate.
 </p>
 <p>
 Xournal also includes a PDF file parser compatible with PDF format
@@ -477,6 +534,30 @@ file, the backgrounds are converted to (compressed) bitmaps and a new
 PDF file is generated from scratch.
 </p>
 <hr />
+<a name="configuration"></a>
+<h2 class="subtitle">Configuration</h2>
+<p>
+Starting with version 0.3.2, Xournal's configuration settings can be
+saved to a file (<tt>~user/.xournal/config</tt>) by using the "Save
+Preferences" command in the Options menu. The settings saved in the
+configuration file include in particular:
+<ul>
+<li>general display preferences: zoom level, window size, ...</li>
+<li>default paper settings (as set by the "Set As Default" command in
+the Journal menu)</li>
+<li>default settings for the pen, eraser, highlighter, and text tools
+(as set by the "Set As Default" command in the Tools menu)</li>
+<li>mappings for buttons 2 and 3</li>
+<li>the various preferences set in the Options menu</li>
+</ul>
+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, ...
+</p>
+<hr />
 <a name="author"></a>
 <h2 class="subtitle">Author information, license, bug-reports</h2>
 <p>
@@ -499,9 +580,73 @@ Bug reports and suggestions can also be submitted on Xournal's
 <a name="changelog"></a>
 <h2 class="subtitle">Version history</h2>
 <p>
+Version 0.4.2 (Mar 25, 2008):
+<ul>
+ <li>bugfixes for X.org 7.3; allow XInput and core events in reverse order</li>
+ <li>resize selection (patch contributed by Andy Neitzke)</li>
+ <li>pressure sensitive pen (variable stroke width) (patch by Andy Neitzke)</li>
+ <li>geometric shape recognizer (after an idea by Lukasz Kaiser) 
+     (see <a href="manual.html#recognizer">here</a>)</li>
+ <li>clean up compiler warnings (patch contributed by Danny Kukawka)</li>
+</ul>
+</p>
+<p>
+Version 0.4.1 (Sep 15, 2007):
+<ul>
+ <li> bugfix: compatibility with new versions of pdftoppm (thanks to
+      Vincenzo Ciancia)</li>
+ <li>GTK+ 2.11 event processing bugfix</li>
+ <li>minor bugfixes: hand tool, handling of filenames containing '&amp;'</li>
+ <li>desktop and MIME files (thanks to Mathieu Bouchard) + updated installer</li>
+ <li>config options: left-handed scrollbar (contributed by Uwe Winter),
+     hide some menu items (customizable in config file), auto-save
+     preferences</li>
+</ul>
+</p>
+<p>
+Version 0.4.0.1 (September 3, 2007):
+<ul>
+ <li>bugfixes for GTK+ 2.11 behavior (thanks to everyone who reported bugs)</li>
+</ul>
+</p>
+<p>
+Version 0.4 (August 15, 2007):
+<ul>
+ <li>text tool (handles most TrueType and Type1 fonts)</li>
+ <li>font selection dialog and button</li>
+ <li>keyboard mappings (arrow keys)</li>
+ <li>menu mnemonics and shortcuts (suggestions by Jean-Baptiste Rouquier)</li>
+ <li>more responsive hand tool</li>
+ <li>bugfix for GTK+ 2.11 XInput behavior (thanks to Robert Gerlach)</li>
+ <li>various minor bugfixes and enhancements</li>
+</ul>
+</p>
+<p>
+Version 0.3.3 (January 31, 2007):
+<ul>
+ <li>bugfix: upon loading a new file, zoom is set to default startup zoom</li>
+ <li>config option to allow input from a mouse or other core pointer device</li>
+ <li>config file entry to specify a default location for open/save
+     (patch contributed by Andy Neitzke)</li>
+ <li>config file entries to customize visibility and position of toolbars</li>
+ <li>icon (thanks to Michele Codutti)</li>
+</ul>
+</p>
+<p>
+Version 0.3.2 (November 25, 2006):
+<ul>
+ <li>preferences file and Save Preferences command</li>
+ <li>extra customization (via preferences file)</li>
+ <li>minor UI changes (patch contributed by Eduardo de Barros Lima)</li>
+ <li>hand tool (partially contributed by Vincenzo Ciancia)</li>
+ <li>a few bugfixes in rendering of bitmap backgrounds</li>
+</ul>
+<p>
 Version 0.3.1 (August 3, 2006):
 <ul>
- <li>fixed a file format bug on systems with non-standard numeric locale</li>
+ <li>fixed a file format bug on systems with non-standard numeric locale
+     (bug reported by Gert Renckens)</li>
+</ul>
 </p>
 <p>
 Version 0.3 (July 23, 2006):
@@ -567,14 +712,6 @@ Version 0.1.1 (January 5, 2006):
 <p>
 Version 0.1 (January 2, 2006): initial release.
 </p>
-<p>
-Features yet to be implemented:
-<ul>
- <li>freeform selection tool</li>
- <li>preferences file; persistent printer settings</li>
- <li>various functionalities (flatten layers, ...)</li>
-</ul>
-</p>
 <hr />
 <a name="file-format"></a>
 <h2 class="subtitle">The file format</h2>
@@ -582,17 +719,21 @@ Features yet to be implemented:
 <p>
 Xournal stores its data in gzipped XML-like files. The gzipped data consists
 of a succession of XML tags describing the document. By convention, the
-first few lines contain a header in the following format:
+file header and trailer look like this:
 <pre>
 &lt;?xml version="1.0" standalone="no"?&gt;
+&lt;xournal version="..."&gt;
 &lt;title&gt;Xournal document - see http://math.mit.edu/~auroux/software/xournal/&lt;/title&gt;
-&lt;xournal version="..."/&gt;
+... sequence of pages ...
+&lt;/xournal&gt;
 </pre>
 The &lt;title&gt; and &lt;xournal&gt; tags may only appear within the file
 header (not within the pages of the document). The <i>version</i> attribute of
 the &lt;xournal&gt; 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
+&lt;xournal&gt; tag is the document's root tag, and encloses all other tags).
 </p>
 <p>
 The rest of the file is a sequence of pages, specified by a
@@ -666,15 +807,15 @@ page of the PDF file.
 After the line specifying the background, the remainder of a &lt;page&gt;
 section is occupied by one or more layer sections
 <pre>&lt;layer&gt; ... &lt;/layer&gt;</pre>
-describing the various strokes within a layer. Every page must
+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.
 </p>
 <p>
-A layer consist of a collection of items, listed in the order in which
+A layer consists of a collection of items, listed in the order in which
 they should be drawn
 (from bottom-most to top-most).
-As of the current version, the only legal contents within a layer are 
+Up to version 0.3.3, the only legal contents within a layer are 
 strokes. The format of a stroke is:
 <pre>&lt;stroke tool="..." color="..." width="..."&gt;
 ... list of coordinates ...
@@ -685,11 +826,21 @@ The <i>tool</i> attribute can take the values "pen", "highlighter", or
 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).
+</p>
+<p>
 The <i>color</i> 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 <i>width</i> attribute is a floating-point
-number and specifies the width of the stroke in points (1/72 in).
+the format "#rrggbbaa". 
+</p>
+<p>
+The <i>width</i> 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 <i>width</i> 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.)
 </p>
 <p>
 The list of coordinates is simply a succession of floating-point values,
@@ -708,6 +859,25 @@ 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).
 </p>
+<p>Starting with version 0.4, layers also contain text items.
+The format of a text item is:
+<pre>&lt;text font="..." size="..." x="..." y="..." color="..."&gt;... text ...&lt;/text&gt;
+</pre>
+The <i>font</i> attribute contains the font name, for example "Serif Bold
+Italic"; if the font is not available, another font will be substituted.
+The <i>size</i> attribute specifies the font size in points. The <i>x</i>
+and <i>y</i> 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 <i>color</i> attribute contains either
+the name of a standard color or a hexadecimal RGBA value (see above).
+</p>
+<p>
+The contents of the text are encoded in UTF-8, with the characters
+<tt>'&amp;', '&lt;', '&gt;'</tt> replaced by <tt>&amp;amp;, &amp;lt;,
+&amp;gt;</tt>. Whitespace and linefeeds are preserved (in particular,
+no extraneous whitespace should be inserted between the enclosing tags
+and the text itself).
+</p>
 <hr />
 <a name="installation"></a>
 <h2 class="subtitle">Installation issues</h2>
@@ -718,7 +888,7 @@ modern Linux distributions such as Fedora Core 3 or later, or RHEL 4 or
 later):
 <ul>
  <li> the <b>gtk+</b> libraries, version <b>2.4</b> or later 
-       (2.6 recommended) &nbsp; (package gtk2 and dependencies)</li>
+       (<b>2.6</b> strongly recommended) &nbsp; (package gtk2 and dependencies)</li>
  <li> <b>libgnomecanvas</b> version <b>2.4</b> or later &nbsp;
        (package libgnomecanvas and dependencies)</li>
  <li> <b>libgnomeprint</b> and <b>libgnomeprintui</b> version <b>2.2</b> or later &nbsp;
@@ -760,6 +930,7 @@ installed on your system).
 ./autogen.sh
 make
 (as root) make install
+(as root) make desktop-install
 </pre>
 </p>
 <p>
@@ -769,6 +940,7 @@ make
 ./configure --prefix=$HOME
 make
 make install
+make home-desktop-install
 </pre>
 </p>
 <p><b>Configure error message:</b> <br />
@@ -851,6 +1023,20 @@ installation instructions specific to your model: for example, the
 use USB instead; the BottomX and BottomY values correspond to the physical
 resolution of the tablet and will vary from one model to another.
 </p>
+<p>
+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 <b>not</b> 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. Since high-resolution coordinates cannot be obtained for the
+core pointer device, it is disabled in Xournal by default. 
+Starting with version 0.3.3,
+it is possible to have core events processed alongside with extension
+events (uncheck "Discard Core Events" in the Options menu); however, in
+some rare cases this may lead to a loss of resolution on all devices.
+</p>
 <h3 class="subsub">The cursor doesn't appear in the right place...</h3>
 <p>
 If the mouse pointer does not follow accurately the position of the stylus,
@@ -876,9 +1062,9 @@ linuxwacom driver, the tablet calibration information is often not updated
 properly when using xsetwacom).
 </p>
 <p>
-<b>Important:</b> due to issues with the linuxwacom driver, it is important
-to either upgrade your driver to a <a href="manual.html#wacompatch">patched
-version</a>, or restrict your choice of settings as follows:
+<b>Important:</b> due to issues with old versions of the linuxwacom
+driver (&lt; 0.7.6), it is important to upgrade your driver,
+or restrict your choice of settings as follows:
 <ul>
 <li> your calibration settings should not be changed at runtime (i.e.,
 insert your settings directly into your X server configuration file.
@@ -890,36 +1076,37 @@ Do not add a list of xsetwacom commands to your startup files).
 </p>
 <h3 class="subsub">Strokes aren't drawn under the cursor...</h3>
 <p>
-This is due to misfeatures in the linuxwacom driver. Typically, this
-will happen in all of the following cases:
+This is typically due to misfeatures in the linuxwacom driver in versions
+prior to 0.7.6, and will happen in all of the following cases:
 <ul>
 <li> the calibration settings have been changed after the X server was
 started (using xsetwacom) </li>
 <li> the calibration TopX or TopY values are not 0 </li>
 <li> the display has been rotated </li>
 </ul>
-Future versions of the driver may fix these issues. Meanwhile, you can
+Most of these issues should have been fixed in version 0.7.6 of the
+wacom driver. Otherwise, you can
 either 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), or apply this <a href="manual.html#wacompatch">patch</a>
-to the wacom driver.
+anymore), or inspect carefully your X server configuration and make
+sure the tablet devices are calibrated and configured properly.
 </p>
 <p>
 I have also had a report that one of the workarounds used by Xournal to
 bypass a calibration bug in GTK+ can actually entirely prevent strokes
 from being drawn. If you are being unsuccessful at drawing in Xournal
-with XInput enabled, try recompiling after changing the first line of
-<tt>src/main.c</tt> to
-<pre>#define ENABLE_XINPUT_BUGFIX 0</pre>
+with XInput enabled, try recompiling after commenting out the line
+<pre>#define ENABLE_XINPUT_BUGFIX</pre>
+near the beginning of <tt>src/xournal.h</tt>.
 If this modification does improve things for you, and if you have a bit
 of spare time to help investigate the causes of this problem, please
 contact me.
 </p>
 <h3 class="subsub">On-the-fly display rotation</h3>
 <p> 
-You need an X server that supports the RANDR extension, and a
-<a href="manual.html#wacompatch">patched</a> version of the linuxwacom
-driver to support on-the-fly rotation.
+You need an X server that supports the RANDR extension, and a sufficiently
+recent (0.7.6 or later) 
+version of the linuxwacom driver to support on-the-fly rotation.
 </p>
 <p>
 To set the tablet in portrait mode:
@@ -937,18 +1124,5 @@ otherwise the tablet calibration in Xournal may (and most likely will)
 become incorrect.
 Exit Xournal and restart it after the display has been rotated.
 </p>
-<a name="wacompatch"></a>
-<h3 class="subsub">Linuxwacom patch for calibration and rotation</h3>
-<p>
-This patch fixes rotation and calibration issues with the linuxwacom driver
-version 0.7.0.
-<ul>
-<li>The <a href="http://math.mit.edu/~auroux/software/xournal/linuxwacom-0.7.0-rotate-patch">patch
-file</a> for the linuxwacom source code (also included with the Xournal
-distribution).</li>
-<li>The <a href="http://math.mit.edu/~auroux/software/xournal/linuxwacom-rotate-patch.tar.gz">patched
-binaries</a> for the X.org X server.</li>
-</ul>
-</p>
 </body>
 </html>