tex/vym.tex
author insilmaril
Tue, 19 Jun 2007 14:20:29 +0000
changeset 513 5f576e56ad99
parent 509 218b0e2c8bfd
child 514 497fab7d1404
permissions -rw-r--r--
Exports can (partly) be scripted
     1 \documentclass[12pt,a4paper]{article}
     2 \usepackage[utf8]{inputenc}
     3 \usepackage{verbatim}
     4 \usepackage{hyperref}
     5 \usepackage{graphicx}
     6 %\usepackage{longtable}
     7 
     8 \setlength{\headheight}{0cm}
     9 \setlength{\headsep}{0cm}
    10 \setlength{\topskip}{0cm}
    11 \setlength{\topmargin}{-0.5cm}
    12 
    13 \setlength{\parskip}{1.5ex}
    14 \setlength{\parindent}{0cm}
    15 \setlength{\oddsidemargin}{0cm}
    16 \setlength{\textwidth}{16cm}
    17 \setlength{\textheight}{27cm}
    18 
    19 \newlength{\maximgwidth}
    20 \setlength{\maximgwidth}{14cm}
    21 \newcommand{\maximage}[1]{	
    22 	\begin{center}
    23 		\includegraphics[width=\maximgwidth]{#1} 
    24 	\end{center}
    25 }
    26 \newcommand{\hint}[1]{
    27 	\begin{center}
    28 		\begin{tabular}{|rp{12cm}|} \hline
    29 			
    30 			{\bf Hint}:& #1\\	\hline
    31 		\end{tabular}
    32 	\end{center}
    33 }
    34 
    35 \newcommand{\vym}{{\sc vym }}
    36 \newcommand{\ra}{$\longrightarrow$}
    37 \newcommand{\la}{$\longleftarrow$}
    38 \newcommand{\ua}{$\uparrow$}
    39 \newcommand{\da}{$\downarrow$}
    40 \newcommand{\key}[1]{[#1]}
    41 
    42 \hypersetup{bookmarks, bookmarksopen,
    43   pdftitle={VYM - a tool for visual thinking },
    44   pdfauthor={Uwe Drechsel},    
    45   pdfsubject={map},
    46   pdfkeywords={map, tool},
    47   pdfpagemode={UseOutlines},                                 
    48   bookmarksopenlevel={1},   
    49   colorlinks={true},     
    50   linkcolor={blue},
    51   urlcolor={green},
    52   citecolor={red}} 
    53 
    54 
    55 \begin{document}
    56 \title{
    57 	\includegraphics[width=8cm]{images/vym-logo-new.png}
    58 	\\
    59 VYM \\ -- \\View Your Mind\\ {\small Version 1.9.0}}
    60 \author{\textcopyright Uwe Drechsel  }
    61 
    62 
    63 \maketitle
    64 
    65 \newpage
    66 
    67 \tableofcontents
    68 
    69 \newpage
    70 
    71 \section{Introduction}
    72 \subsection{What is a \vym map?}
    73 A \vym map (abbreviated below as {\em map}) is a tree like structure:
    74 \maximage{images/example1.png}
    75 Such maps can be drawn by hand on a sheet of paper or flip chart and help to
    76 structure your thoughts. While a tree like structure like the illustration above can be
    77 drawn manually \vym offers much more features to work with such maps.
    78 \vym is not just another drawing software application, but a tool to store and modify
    79 information in an intuitive way. For example you can reorder parts of
    80 the map by pressing a key or add various pieces of information like a complete
    81 email by a simple mouse click.
    82 
    83 Once you have finished collecting and organising your ideas, you can
    84 easily generate a variety of outputs including for example a
    85 presentation in Open~Office based on a {\em map}.
    86 
    87 \hint{You find the map shown above and others by clicking \begin{center}Help \ra Open vym
    88 examples\end{center} in the menu bar.}
    89 
    90 \subsection{Why should I use {\em maps}? Time, Space and your Brain.}
    91 \subsubsection*{Space}
    92 A {\em map} can concentrate very complex content in a small space such as a
    93 piece of paper. It helps to use both sides of your brain: the logical
    94 side and also your creative side (e.g. by using pictures, colours and
    95 keywords in a map, often called {\em anchors}).  It is a technique to help
    96 organize the way you think and stimulate your creativity: It can help you by developing, sorting and helping to memorise your ideas. 
    97 
    98 \subsubsection*{Time}
    99 Because you just use keywords and drawings, it is much faster than good
   100 old fashioned 'notes'. Your brain memorizes things by associating them with
   101 other things -- a {\em map} makes use of those connections and stimulates
   102 new asccociations. 
   103 
   104 
   105 \subsubsection*{Your Brain}
   106 In 1960 Prof. {\sc Roger Sperry} discovered that both hemispheres
   107 of the human brain undertake different tasks (of course both of them
   108 basically {\em can} do the same): 
   109 \begin{center}
   110 \begin{tabular}{|p{5.5cm}|p{5.5cm}|} \hline
   111 	Left side & Right side \\ \hline
   112 	\begin{itemize}
   113 	   \item verbal speech and writing 
   114 	   \item numbers
   115 	   \item logical thinking
   116 	   \item analysing and details
   117 	   \item science
   118 	   \item linear thinking
   119 	   \item concept of time
   120 	\end{itemize} &
   121 	\begin{itemize}
   122 		\item body language
   123 		\item visual thinking, day dreams
   124 		\item intuition and emotion
   125 		\item overview of things
   126 		\item creativity
   127 		\item art, music, dancing
   128 		\item non-linear thinking, connecting things
   129 		\item spatial awareness
   130 	\end{itemize}     \\ \hline
   131 \end{tabular}	
   132 \end{center}
   133 In our science oriented western society we have learned to mainly rely on our
   134 left side of the brain, the "rational" one. In other cultures, such as the native americans and other "old" cultures, the right
   135 side is much more important. {\em Map} are just one way to stimulate the
   136 other side and make use of additional resources we all have.
   137 
   138 
   139 \subsection{Where could I use a {\em map}?}
   140 Here are some examples, how you can use those {\em maps}
   141 \begin{itemize}
   142     \item to prepare articles, papers, books, talks, \ldots
   143     \item to sort complex data
   144     \item to memorize facts, peoples names, vocabulary, \ldots
   145     \item to sort emails, files and bookmarks on your computer
   146     \item to moderate conferences
   147     \item to brainstorm solutions to problems
   148     \item to record the tasks when planning a project
   149 \end{itemize}
   150 
   151 \subsection{What you shouldn't do with a {\em map}...}
   152 A {\em map} drawn by somebody shows the way that the author thinks. There is
   153 no question of right or wrong in the way it is drawn, so there is no way to criticise
   154 it. "It is, what it is" ({\sc F.~Lehmann}).The tool will be of considerable use to the author and only very limited use to anyone else. 
   155 
   156 However, when groups share in creating a {\em map} all of the group will benefit from its use. An example of such use is when a Tutor develops a {\em map} with a group of students during instruction. Another group use is when a Project leader gathers a group of specialists to help {\em map} the tasks that will be required to deliver a project.
   157 
   158 %\section{Tutorials}
   159 %TODO
   160 
   161 \subsection{Internet Ressources} 
   162 A good starting point to learn more about Mindmaps in general is Wikipedia:
   163 \begin{itemize}
   164 	\item English: 
   165 		\href{http://en.wikipedia.org/wiki/Mind_map}{http://en.wikipedia.org/wiki/Mind\_map}
   166 	\item German: 
   167 		\href{http://de.wikipedia.org/wiki/Mindmap}{http://de.wikipedia.org/wiki/Mindmap}
   168 \end{itemize}
   169 
   170 
   171 
   172 
   173 \section{The Concept of the \vym application}
   174 %TODO may add a general introduction here...
   175 \subsection{The Mainwindow and its satellites} \label{satellite}
   176 \vym comes with several windows, the central one being the {\em
   177 mapeditor}.
   178 More windows, each having a special purpose, can be opened and arranged
   179 around the mainwindow\footnote{
   180 	The advantage of having separate window instead of integrating them
   181 	in a combined workspace is flexibility in arranging the windows. For
   182 	example I usually have the {\em noteeditor} "behind" the {\em
   183 	mapeditor}. On Linux my windowmanager (KDE) allows me to enter text
   184 	into a small visible corner of the {\em noteeditor} withour clicking
   185 	the mouse button in it. I just push the mouse around to set the
   186 	window focus, a concept which is useful also working with 
   187 	\href{http://www.gimp.org}{http://www.gimp.org}.
   188 }. 
   189 The image below shows the {\em mapeditor}
   190 together with the often used {\em noteeditor}: 
   191 \maximage{images/windows.png}
   192 Most of the time you will work in the {\em mapeditor} by just adding new
   193 branches, moving around and reordering them. The various ways to do this
   194 will be explained in \ref{mapeditor}. You can store additional
   195 information e.g. the content of a email easily in a {\em branch}: Just
   196 type or copy\&paste it into the {\em noteeditor}. Working with notes is
   197 explained in \ref{noteeditor}
   198  
   199 Here is a list of the available satellite windows:
   200 \begin{itemize}
   201 	\item Noteeditor (see \ref {noteeditor})
   202 	\item Historywindow (see \ref{historywindow})
   203 	\item Branch Property Window (see \ref{propwindow})
   204 \end{itemize}
   205 
   206 
   207 \subsection{Menus and Context menus}
   208 At the top of each window you will find the menubar. The options provided there
   209 are similar to those you are probably used to from other applications. Note that
   210 many (and even more) options are availabe via {\em context menus}. Those
   211 are available if you right-click onto an object in a map (on Mac~OS~X
   212 Command-Click).
   213 
   214 \subsection{Toolbars}
   215 The toolbars in the mainwindows give quick access to many functions and
   216 also display the state of selected objects in the map. For example a
   217 branch may show certain {\em flags}, the corresponding flags are also
   218 set in the toolbar. 
   219 
   220 \hint {You can reposition all toolbars by simply grabbing and
   221 dragging them with the toolbar handle to a new position. For example you
   222 can move the flags-toolbar from its original horizontal position on top
   223 of the mapeditor to a vertical position on the right side.  Or just
   224 insert it again at its original position. Also hiding some of the
   225 toolbars is possible by right-clicking on the toolbar handle.}
   226 
   227 \subsection{Maps}
   228 The  {\em map} itself has always a {\em mapcenter}.  The
   229 mapcenter has {\em branches} radiating out from the centre just like the trunk 
   230 of a tree. Each branch in turn may have branches again.
   231 	\maximage{images/branches.png}
   232 We will call a branch directly connected to the mapcenter a {\em
   233 mainbranch}, because it determines the position of all its child
   234 branches.
   235 
   236 The mapcenter and the branches all have a {\em heading}. This is the
   237 text you see in the mapeditor. Usually it should just be one or a few
   238 key words, so that one can easily keep track of the whole map.
   239 
   240 
   241 In the toolbar above the mapeditor you see various symbols.
   242 	\maximage{images/default-flags.png}
   243 These are called {\em flags} and can be used to mark branches in the
   244 {\em map}, e.g. if something is important or questionable. 
   245 There are also more flags set by \vym automatically to show additional
   246 information, e.g. when a note is attached to a  particular branch.
   247 
   248 By default some of these flags are set exclusively e.g. when the 
   249 "thumb-up" flag is set, then the "thumb down" is reset and vice
   250 versa. You can change this default behaviour in the settings menu.
   251 
   252 \section{Mapeditor} \label {mapeditor}
   253 \subsection{Start a new map}
   254 After \vym is started two windows will open: the {\em mapeditor} and the {\em noteditor}. Usually you will work in both windows, but at the moment we
   255 will just need the mapeditor. 
   256 
   257 Select the mapcenter "New map" in the middle of the mapeditor by
   258 left-clicking with the mouse. It will be highlighted yellow to show that is
   259 selected. There are several ways to add a new branch to the center:
   260 \begin{itemize}
   261 	\item Using the mouse: Open the context menu by clicking with the
   262 	right mouse button (CTRL-Click on Mac) onto the
   263 	mapcenter and choose Add \ra Add branch as child
   264 	\item Press \key{Ins} or \key{A}
   265 \end{itemize}
   266 A new branch will appear and you will be able to type the heading of the
   267 branch. Finish adding the new branch by pressing \key{Enter}.
   268 %tipp
   269 Sometimes it comes in handy to be able to add a new branch above or below the current
   270 one. 
   271 \begin{itemize}
   272 	\item Use \key{Shift-A} to add a branch above the selected one or... 
   273 	\item \key{Ctrl-A} to add one below. 
   274 \end{itemize}
   275 It is also
   276 possible to add a branch in such a way, that the current selection
   277 becomes the child of the new branch, which is like inserting it {\em
   278 before} the selection. This can be done using the context menu.
   279 
   280 \hint{To delete a branch press \key{CTRL-X}. If enabled in the Settings
   281 menu, you can also use the \key{Del} key.}
   282 
   283 \subsection{Navigate through a map}
   284 \subsubsection*{Select branches}
   285 To select branches you can use the left button of your mouse or also the
   286 arrow keys. Depending on the {\em orientation} of a branch tap
   287 \key{\la} or \key{\ra} to move nearer to the mapcenter or deeper
   288 down into the branches. Within a set of branches, let's call them a 
   289 {\em subtree}, you can use \key{\ua} and \key{\da} to go up and down. You can
   290 also use \key{Home} and \key{End} to select the first and last branch.
   291 
   292 
   293 \subsubsection*{Panning the view of a map}
   294 While adding more and more branches the size of the map may become
   295 larger than the mapeditor window. You can use the scrollbars on the
   296 right and the bottom of your mapeditor window to scroll the view up or down or left or right. It is easier to just scroll using the left mouse button: Click anywhere on the {\em canvas} itself. Choose an empty space somewhere between the branches. The
   297 mouse pointer will change from an arrow to a hand, now move or drag the visible
   298 map to show the desired part.
   299 
   300 If you select branches using the arrow keys, the map will scroll
   301 to ensure that the selected branch is always visible.
   302 
   303 \subsubsection*{Zooming the view of a map}
   304 Working with huge maps, the {\em zoom}-function comes in handy: You can
   305 use 
   306 \begin{itemize}
   307 	\item from the menu: View \ra Zoom in, View \ra Zoom out, View \ra reset Zoom.
   308 	\item the toolbar buttons 
   309 		\begin{center}
   310 			\includegraphics[width=3cm]{images/zoom-buttons.png}
   311 		\end{center}	
   312 \end{itemize}	
   313 Clicking the crossed magnifying lens icon will reset the zoomed view to its original size.
   314 
   315 
   316 \subsubsection*{Find Function} \label{findwindow}
   317 With huge maps there is the need to have a
   318 find function. Choose Edit \ra Find to open the Find Window:
   319 \begin{center}
   320 	\includegraphics[width=6cm]{images/find-window.png}
   321 \end{center}	
   322 The find function will search for, the text you enter here, in all the branch headings and also in the associated notes. Everytime you press the "Find"-button it will look for the next occurence, which will then be selected automatically. If the search
   323 fails, a short message "Nothing found" will appear for a few
   324 seconds in the {\em statusbar} on the bottom of the mapeditor.
   325 
   326 \subsubsection*{Keep the overview -- scroll a part of the map}
   327 A very big subtree of a map e.g. a branch with hundreds of child branches would make
   328 it very hard to keep an overview over the whole map. You can hide all
   329 the children of a branch by {\em scrolling} it -- this function is often called {\em folding}. Think of the whole subtree as painted onto a
   330 broadsheet newspaper. You can scroll or fold the paper to a small roll, leaving just
   331 the headline visible.
   332 
   333 To scroll or unscroll a branch and its children,
   334 \begin{itemize}
   335 	\item press either the \key{Scroll Lock} key or the \key{S}
   336 	\item press the middle-mouse button or
   337 	\item choose the scroll icon from the toolbar.
   338 \end{itemize}
   339 If you select parts of a scrolled branch e.g. using the find function or
   340 by using the arrow-keys, it will unscroll temporary. This is shown as a
   341 scroll with a little hour glass. If the temporary unscrolled part is no
   342 longer needed, it will be hidden again automatically. It is also
   343 possible to unscroll all branches using "Edit\ra Unscroll all scrolled
   344 branches".
   345 
   346 You can also hide parts of the map while exporting it e.g. to a webpage
   347 or a presentation, see \ref{hideexport} for details.
   348 
   349 \subsection{Modify and move branches}
   350 \subsubsection*{Modify the heading}
   351 You can edit the heading by selecting the branch and then
   352 \begin{itemize}
   353 	\item pressing \key{Enter}
   354 	\item pressing \key{F2}
   355 	\item double-clicking with left mouse.
   356 \end{itemize}
   357 Just type the new heading (or edit the old one) and press \key{Enter}.
   358 
   359 \subsubsection*{Move a branch}
   360 The easiest way to move a branch is to select it with left-mouse and
   361 drag it to the destination while keeping the mouse button pressed.
   362 Depending on the branch  it will be
   363 \begin{itemize}
   364 	\item moved to the destination or
   365 	\item {\em linked} to a new {\em parent} (mapcenter or branch)
   366 \end{itemize}
   367 If you drag the branch over another one or over the mapcenter, you will
   368 notice that the  link connecting it to the old parent will be changed to
   369 lead to the  new parent which is now under your mousepointer. 
   370 If you release the button now, the branch will be relinked.
   371 
   372 If you release the button in the middle of nowhere, the result will
   373 depend on the type of branch you are releasing:
   374 \begin{itemize}
   375 	\item A mainbranch is directly connected to the mapcenter.
   376 		It will stay on its new position.
   377 	\item An ordinary branch will "jump" back to its original position.	
   378 \end{itemize}
   379 Thus you can easily rearrange the layout of the mainbranches to avoid
   380 overlapping of their subtrees.
   381 There is another convenient way to move branches, especially if you want
   382 to {\em reorder} a subtree: You can move a branch up or down in a
   383 subtree by
   384 \begin{itemize}
   385 	\item pressing \key{\ua} and \key {\da}
   386 	\item selecting Edit \ra Move branch
   387 	\item clicking on the toolbar buttons:
   388 		\begin{center}
   389 			\includegraphics[width=1.5cm]{images/move-buttons.png}
   390 		\end{center}	
   391 \end{itemize}
   392 %tipp
   393 There is yet another way to move branches: If you press \key{Shift} or
   394 \key{Ctrl} while moving with the mouse, the branch will be added above
   395 or below the one the mouse pointer is over. This can also be used to reorder branches in a map.
   396 
   397 \subsection{Colours and Images - Using the right side of your brain}
   398 \subsubsection*{Change colour of a heading}
   399 You can also use colours to add more information to a map, e.g. use
   400 red, green and more colours to prioritize tasks. Again you can
   401 \begin{itemize}
   402 	\item use the menu and choose e.g Format \ra Set Color
   403 	\item use the toolbar
   404 		\begin{center}
   405 			\includegraphics[width=3cm]{images/color-buttons.png}
   406 		\end{center}	
   407 \end{itemize}
   408 The first button (black in the graphic above) shows the current colour.
   409 Clicking on it let's you choose another colour. You can also "pick"
   410 another colour by selecting a branch with the desired colour and using the
   411 "pick colour" button. Both of the icons showing a palette actually apply
   412 the current colour to the selected branch. While the first one just
   413 colours the heading of the selection, the last one also colours all the
   414 children of the selected branch.
   415 
   416 %tipp
   417 A very useful function is the "copy colour" using the mouse: Select the
   418 branch which should get the new colour, then press \key{Ctrl} and
   419 simultanously click with left-mouse on another branch to copy its colour
   420 to the first one. Here the children of the selection also will get the new
   421 colour, if you just want to colour the selection itself, additionally
   422 press \key{Shift}.
   423 
   424 \subsubsection*{Use flags}
   425 \vym provides various flags. They are usually displayed in the toolbar on top of the
   426 mapeditor window. (Note: Like all toolbars you can also move them to the
   427 left or the right side of the window or even detach them. Just grab the
   428 very left "dotted" part of the toolbar with your left-mouse button.) 
   429 	\maximage{images/default-flags.png}
   430 If you have a branch selected, you can set any number of flags by
   431 clicking them in the toolbar. The toolbar buttons change their state and
   432 always reflect the flags set in the selected branch. So, to remove a flag from a branch, select the branch and then click the highlighted flag on the toolbar.
   433 
   434 At present \vym uses two kinds of flags: {\em System Flags} and {\em
   435 Standard Flags}. The standard flags are those shown in the toolbar.
   436 System flags are set by \vym to indicate e.g. that there is additional
   437 information in a note (more on this in \ref{noteeditor}). Later versions
   438 of \vym may have another kind of flags, which may be edited by the user.
   439 
   440 \subsubsection*{Images}
   441 The easiest way to add an image to a branch is by dragging it e.g. from a
   442 webbrowser to the mapeditor while a branch is selected there.
   443 
   444 You can also add an image to a branch by opening the context menu of the
   445 branch. Right click the selected branch, choose "Add Image". A
   446 dialog window enables you choose the image to load. 
   447 \footnote{Supported image types are: PNG, BMP, XBM, XPM and PNM. It may
   448 	also support JPEG, MNG and GIF, if specially configured during
   449 	compilation (as done when \vym is part of SUSE LINUX).}
   450 While an image is selected in the dialog, a preview of the
   451 image is displayed. It is also possible to select multiple images.	
   452 
   453 You can position the image anywhere you want, just drag it with left
   454 mouse. To relink it to another branch, press \key{Shift} while moving
   455 it. To delete it, press \key{Del}. 
   456 
   457 If you right-click onto an image, a context menu will open which let's
   458 you first choose one of several image formats. Then a file dialog opens
   459 to save the image. 
   460 
   461 Hint: This is used to "export" the image, it will be
   462 saved anyway in the map itself! You can also cut and
   463 copy images, but it is not possible to add objects to an image\footnote{
   464 	Images are regarded as "extra feature". It would make working with
   465 	the map much more complex if e.g. images could be linked to images.}
   466 
   467 The option \lq{\bf Use for export} \rq controls the output of exports
   468 e.g. to HTML: If set to no, the image won't appear in the {\em text}
   469 part of the output. This is useful for large images or if images are
   470 used as a kind of frame e.g. the famous cloud symbol around a part of
   471 the map. Those shouldn't appear in the middle of the text.
   472 
   473 At the moment image support is preliminary: Images will be saved
   474 together with all the other data of a map in the {\tt .vym}-file.
   475 Later versions will include more functionality like resizing the images,
   476 changing its z-value (put it into background) etc.
   477 
   478 \subsubsection*{Frames}
   479 A frame can be added to a branch in the {\em property window} (see
   480 \ref{propwindow}). 
   481 Alternatively, you can use use images as frames. Have a look at the demo
   482 map {\tt todo.vym} as an example, where the mapcenter is a cloud. You
   483 can use an external drawing program like {\tt gimp} to create an image,
   484 preferable with an transparency channel, so that you can design frames
   485 which don't use a rectangular borderline, just like that cloud.
   486 
   487 
   488 \subsection{Design of map background and connecting links }
   489 The design of the background of a map and also of the links connecting
   490 various parts of the map can be changed by
   491 \begin{itemize}
   492 	\item Selecting Format from the menu
   493 	\item Right clicking on the canvas, which will open a context menu
   494 \end{itemize}
   495 
   496 \subsubsection*{Background }
   497 The colour is set (and also displayed) as "Set background colour".
   498 Alternatevily you can set an background image, though this is not
   499 recommended in general. Working on the map becomes slow and the image
   500 currently cannot be positioned freely.
   501 
   502 \subsubsection*{Link colour}
   503 Links connecting branches can be coloured in one of two ways:
   504 \begin{itemize}
   505 	\item use the same colour for the heading and for the branch link line.
   506 	\item use {\em one} colour for all links and choose different colours for the branch headings text. The default colour for branch link lines is blue.
   507 \end{itemize}
   508 The latter can be set with "Set link colour". Check or uncheck the "Use
   509 colour of heading for link" option to toggle between the two designs for
   510 your map.
   511 
   512 \subsubsection*{Link style}
   513 \vym offers four different styles for the appearences of links:
   514 \begin{itemize}
   515 	\item Line
   516 	\item Parabel
   517 	\item Thick Line
   518 	\item Thick Parabel
   519 \end{itemize}
   520 The "thick" styles only apply to links starting at the mapcenter, link lines for the rest
   521 of the map are always painted "thin".
   522 
   523 
   524 \subsection{Links to other documents and webpages}
   525 \vym supports two kind of external links:
   526 \begin{itemize}
   527 	\item Document, which will be opened in an external webbrowser
   528 	\item \vym map, which will be opened in \vym itself
   529 \end{itemize}
   530 In addition to the external links there also internal ones, leading from one
   531 branch in a map to another one. Those are called {\em XLinks} and are explained
   532 in section~\ref{xlinks}.
   533 
   534 \subsubsection*{Webbrowser}
   535 Modern Webbrowsers like {\tt konqueror and Firefox} are able to display various
   536 types of files, both local or on the internet. To enter the URL of
   537 any document, right-click  onto a branch to open the contextmenu then choose "Edit URL". Enter the path to your document (or copy and paste it from your browser). Examples for valid paths are:
   538 \begin{verbatim}
   539 	http://www.insilmaril.de/vym/index.html
   540 	file:/usr/share/doc/packages/vym/doc/vym.pdf
   541 \end{verbatim}
   542 If an URL was entered, a little globe will appear in the branch. By
   543 clicking on the globe in the toolbar or the context menu an external
   544 browser\footnote{
   545 	The browser can be changed in the Settings Menu.}
   546 will be launched.
   547 \begin{center}
   548 	\includegraphics[width=0.5cm]{images/flag-url.png}
   549 \end{center}
   550 For more information on working with bookmarks and webbrowsers see
   551 section \ref{bookmarks}.
   552 
   553 In the context menu there is also an option to open all URLs found
   554 in the selected subtree of the map. That's useful to simultanously open
   555 a collection of URLs in the webbrowser, especially if the browser can
   556 open them in tabs (like Konqueror).
   557 
   558 
   559 \subsubsection*{\vym map}
   560 To link to to another map right click on a branch and choose "Edit \vym link". A file dialog opens where you can choose the map. A
   561 branch with a link is marked with 
   562 \begin{center}
   563 	\includegraphics[width=0.5cm]{images/flag-vymlink.png}
   564 \end{center}
   565 Clicking this flag beside the branch heading, in the toolbar or in the context menu of a branch will open the map in another tab (see \ref{tabs} for working with
   566 multiple maps). To delete an existing link, just right click the branch and select "Delete \vym link".
   567 
   568 In the context menu there is also an option to open all vymlinks found
   569 in the selected subtree of the map. That's useful to simultanously open
   570 a collection of related maps.
   571 
   572 Technical note: Internally \vym uses absolute paths, to avoid opening
   573 several tabs containing the same map. When a map is saved, this path is
   574 converted to a relative one (e.g. {\tt /home/user/vym.map} might become
   575 {\tt ./vym.map}. This makes it fairly easy to use multiple maps on
   576 different computers or export them to HTML in future.
   577 
   578 \subsection{Multiple maps} \label{tabs}
   579 You can work on multiple maps at the same time. Each new map is opened
   580 in another {\em tab}. The available tabs are shown just above the
   581 mapeditor. You can use the normal cut/copy/paste functions to
   582 copy data from one map to another.
   583 
   584 %todo
   585 
   586 %TODO
   587 %\subsubsection{Menus}
   588 %\subsubsection{Keyboard shortcuts}
   589 
   590 % Settings
   591 % Images
   592 % Copy & Paste
   593 % Working with tabs (multiple maps)
   594 % Exporting
   595 % Scrolling
   596 
   597 \section{Noteeditor} \label {noteeditor}
   598 If you want to attach more text to a branch e.g. a complete email, a
   599 cooking recipe, or the whole source code of a software project, you can
   600 use the noteeditor. 
   601 	\maximage{images/noteeditor.png}
   602 This editor displays text associated with a branch selected in the mapeditor. The noteeditor
   603 shows different background colours depending on whether text is associated with a selected branch.
   604 
   605 \subsection{States}
   606 Before you can type or paste text into it, you have
   607 to select a branch in the mapeditor. Note that the background colour
   608 of the noteeditor indicates its state:
   609 \begin{itemize}
   610 	\item grey: no text entered yet
   611 	\item white: some text has been entered
   612 \end{itemize}	
   613 In the mapeditor itself, to signal that there is a note with more
   614 information for a particular branch, a little "note" flag will appear next
   615 to the heading of the branch. This is illustrated in the lower branch on the right hand side:
   616 	\maximage{images/branches-flags.png}
   617 
   618 \subsection{Import and export notes}
   619 The note is always saved automatically within the \vym map itself.
   620 Nevertheless sometimes it is nice to import a note from an external file
   621 or write it. In the Note Editor use "File\ra~Import" and "File\ra~Export" to do so. 
   622 
   623 \subsection{Edit and print note}
   624 Editing works like in any simple texteditor, including undo and redo
   625 functions. You can delete the complete note by clicking the
   626 trashcan. Only the note itself is printed by clicking the printer icon.
   627 
   628 \subsection{RichText: Colours, paragraphs and formatted text}
   629 \vym supports formatted text (QT Rich Text) in the noteeditor since
   630 version 1.4.7.  Colours and text attributes (e.g. italic, bold) can be
   631 set with the buttons above the text.  The text itself is divided into
   632 paragraphs. For each paragraph the format can be set (e.g. centered,
   633 right). A paragraph is ended when a \key{Return} is entered. If you just
   634 want to begin a new line, press \key{CTRL-Return}.
   635 
   636 \subsection{Fonts and how to switch them quickly}
   637 The noteeditor is designed to be used for simple notes, not really as a full
   638 featured word processor. Because of many requests \vym supports 
   639 formatted text in the noteeditor\footnote{
   640 	\vym uses the QRichtText format, which is basically a subset of the
   641 	formatting provided in HTML.}
   642 Two default fonts are supported which can be set in the Settings menu.
   643 One is a fixed width font, the other has variable width. The fixed font
   644 is usually used for emails, source code etc.\ while the variable font is
   645 used for simple notes, where one doesn't need fixed character widths.
   646 Both fonts can easily switched using the following symbol from the
   647 toolbar:
   648 \begin{center}
   649 	\includegraphics[width=0.5cm]{images/formatfixedfont.png}
   650 \end{center}
   651 In the Settings menu both fonts can be set. The default font can also be toggled between the fixed and variable font by selecting or deselecting the "fixed font is default" menu item.
   652 
   653 Additionally to the default fonts any font installed on your system can
   654 be used. Please note, that the chosen font also will be used for HTML
   655 exports, so if youy VYM mind map could ever be exported to a web or intranet page you should only use fonts which are available generally.
   656 
   657 \subsection{Find text}
   658 The noteeditor itself has no Find function, use Find in the mapeditor,
   659 which will also search all notes (see \ref{findwindow}).
   660 
   661 \subsection{Paste text into note editor}
   662 Often you will paste text into the editor from another application e.g.
   663 an email. Normally \vym will generate a new paragraph for each new line.
   664 This usually is not what you want, so you can choose from the menu
   665 
   666 
   667 \section{Hello world}
   668 This section is about how \vym can interact with other applications.
   669 Many applications can now read and write their data using XML, the
   670 eXtensible Markup Language. \vym also uses XML to save its maps, see
   671 \ref{fileformat} for a more detailed description. 
   672 
   673 So if you make use of another application that understands XML, chances are good that someone
   674 could write import/export filters for \vym. Volunteers are always
   675 welcome ;-)
   676 
   677 \subsection{Import} \label{import}
   678 
   679 \subsubsection*{KDE Bookmarks}
   680 The integrated bookmark editor in KDE (Konqueror etc.) is somewhat limited, so why not
   681 use \vym to maintain the bookmark mess? To create a new map containing
   682 your current KDE bookmarks just choose
   683 \begin{itemize}
   684 	\item File \ra Import\ra KDE Bookmarks
   685 \end{itemize}
   686 
   687 \subsubsection*{Mind Manager}
   688 \vym has currently a very basic import filter to convert maps created by
   689 {\em Mind Manager}\footnote{Mind Manager is a commercial i.e. non free, software application by Mindjet for Windows and the Mac. Both names are registered trademarks by Mindjet. For more information see their website at
   690 \href{http://mindjet.com}{http://mindjet.com}} into \vym maps. Notes and
   691 pictures are not converted at the moment. You can import files with
   692 \begin{itemize}
   693 	\item File \ra Import\ra Mind Manager
   694 \end{itemize}
   695 
   696 
   697 \subsubsection*{Directory structure}
   698 \vym can read a directory structure. This is mainly for
   699 testing \vym e.g. to easily create huge maps used for benchmarks (yes,
   700 there is still room to optimize \vym ;-)
   701 
   702 
   703 
   704 
   705 \subsection{Export}  \label{export}
   706 \label{hideexport}
   707 Often you may not want to export the whole map, but just parts of it. For
   708 example you may have additional info you want to talk about in a
   709 presentation, while those parts should not be visible to the audience.
   710 To achieve this you can "hide" parts of the map during exports by
   711 setting the "hide in export" flag.
   712 \begin{center}
   713 	\includegraphics[width=0.5cm]{images/flag-hideexport.png}
   714 \end{center}
   715 You can toggle this flag in the toolbar or by pressing \key{H}.
   716 Note that there is a global option in the settings menu to toggle the
   717 use of this flag. By default the flag is enabled.
   718 
   719 \subsubsection*{Open Office}
   720 Open Office beginning with version~2 uses the so called "Open Document Format", which can be written by \vym. The options are
   721 currently limited, but it possible to export presentations which can be
   722 opened in Open Office Impress. By selecting
   723 \begin{itemize}
   724 	\item File  \ra Export\ra Open Office
   725 \end{itemize}
   726 you get a file dialogue where you can choose the output file and the
   727 file type:
   728 	\maximage{images/export-oo.png}
   729 The file types represent various templates, which can be created with
   730 some manual work from an existing Open Office document. The structure of
   731 \vym map is then inserted into a template. 
   732 There are some limitations at the moment:
   733 \begin{itemize}
   734 	\item \vym can't take care of page lengths, so you have to check and
   735 	probably reedit in Open Office to avoid text running over the end of
   736 	a page
   737 	\item Images and flags are not used at the moment
   738 	\item Notes are just written as plain text, without RichText 
   739 	\item The full range of templates are not available in all distributions.	
   740 \end{itemize}
   741 Some of the templates make use of {\em sections} i.e sections insert the
   742 headings of mainbranches as chapters for sections into the presentation.
   743 
   744 \subsubsection*{Image}
   745 \vym supports all image formats which are natively supported by the
   746 QT~toolkit:
   747 BMP, JPEG, PBM, PGM, PNG, PPN, XPM, and XBM.
   748 For use in websites and for sending images by email PNG is a good
   749 recommodation regarding quality and size of the image. \vym uses QTs
   750 default options for compressing the images.
   751 
   752 \subsubsection*{ASCII}
   753 Exporting an image as text is somewhat experimental at the moment. Later
   754 this will probably be done using stylesheets. So the output may change in
   755 future versions of \vym.
   756 
   757 \subsubsection*{\LaTeX}
   758 \vym can generate an input file for \LaTeX. Currently this is considered
   759 as experimental, there are no options (yet). 
   760 By selecting
   761 \begin{itemize}
   762 	\item File  \ra Export\ra \LaTeX 
   763 \end{itemize}
   764 you will be asked in a file dialog for the name of the output file. This
   765 file may then be included in a \LaTeX document using command: 
   766 \begin{verbatim}
   767 	\include{inputfile.tex}
   768 \end{verbatim}
   769 
   770 \subsubsection*{KDE Bookmarks}
   771 \vym will overwrite the KDE bookmarks file and then try to notify
   772 running Konquerors via DCOP of the changed file. \vym does not create a
   773 backup!
   774 \begin{itemize}
   775 	\item File \ra Export \ra KDE Bookmarks
   776 \end{itemize}
   777 
   778 
   779 \subsubsection*{XHTML (Webpages)}
   780 
   781 This is the format to use if you wish to create a webpage. To see an example
   782 visit the \vym homepage: 
   783 \href{http://www.InSilmaril.de/vym}{www.InSilmaril.de/vym}
   784 
   785 Some explanation on how this works: 
   786 Before a map is exported as XHTML, it will be first written as XML into a
   787 directory (see \ref{xmlexport}). Then the external program {\tt
   788 xsltproc}\footnote{On SUSE Linux and some other distributions {\tt xsltproc} is installed by
   789 default.}
   790 will be called to process the XML file and generate HTML code.
   791 A dialog allows the user to set various options:
   792 \begin{itemize}
   793 	\item {\bf Include image:} If set, \vym will creat an image map at
   794 	the top of the HTML output. Clicking on a branch in the map will
   795 	jump to the corresponding section in the output.
   796 
   797 	\item {\bf Colored headings:}
   798 	If set to yes, \vym will colour the headings in the text part  with the
   799 	same colours used in the \vym map.
   800 	\item {\bf Show Warnings:}
   801 	If set to yes, \vym will ask before overwriting data.
   802 	\item {\bf Show output:}
   803 	This is useful mainly for debugging. It will show how the processing of
   804 	the XML file works by calling the external {\tt xsltproc}.
   805 \end{itemize}
   806 Additionally the paths to the CSS and XSL stylesheets can be set. By
   807 default on SUSE~Linux they will be in {\tt /usr/share/vym/styles}.
   808 
   809 
   810 \subsubsection*{XML} \label{xmlexport}
   811 The map is written into a directory both as an image and as an XML file. The
   812 directory is set in a file dialog. If the directory is not empty, you
   813 will be warned and offered choices if you are at risk of overwriting existing contents.
   814 
   815 It is possible to export different maps into the same directory. Each
   816 file generated will have the map's name as prefix, e.g. {\tt todo.vym}
   817 becomes {\tt todo.xml}, {\tt todo.png}, {\tt todo-image-1.png} and so
   818 on. This is useful if, for example, a website comprises several combined maps that have to be stored in the same directory.
   819 
   820 \subsubsection*{Export a part of a map}
   821 Select a branch you want to export together with its children, then open
   822 the context menu and choose {\em Save Selection}. This will create a
   823 file with the suffix {\tt .vyp}, which is an abbreviation for \lq vym
   824 part\rq.
   825 
   826 
   827 \section{Advanced Editing}
   828 
   829 \subsection{Properties of an object} 
   830 For any branch you can open a satellite window (see \ref{satellite}):
   831 the {\em property window}:
   832 \begin{center}
   833 	\includegraphics[width=8cm]{images/propwindow.png}
   834 	\label{propwindow}
   835 \end{center}
   836 %FIXME create screenshot
   837 %FIXME explain the tabs
   838 
   839 \begin{itemize}
   840 	\item Frame
   841 	\item Link (see \ref{hideunselected})
   842 	\item Layout (see \ref{incimg})
   843 \end{itemize}
   844 
   845 \subsection{Changing the history: Undo and Redo}
   846 \vym keeps track of all changes done in a map. The default number of
   847 changes which can be undone is~75. The complete history can be seen in
   848 the {\em historywindow}:
   849 	\maximage{images/historywindow.png}
   850 	\label{historywindow}
   851 A single step back be undone or redone with \key{CTRL-Z} or \key{CTRL-Y},
   852 or by using the buttons in the toolbar or the {\em historywindow}.
   853 Inside the {\em historywindow}, you can click on a line to unwind all
   854 actions done until that point in time -- or redo all changes by clicking
   855 on the last line.
   856 
   857 \hint{
   858 	You can "paste from the past": Go back in time by e.g. with
   859 	\key{CTRL-Z}, then copy to clipboard by pressing \key{CTRL-C}.
   860 
   861 	Now do all actions again, e.g. by \key{CTRL-Y} or clicking on the
   862 	last action in {\em historywindow}. Now paste from the past with
   863 	\key{CTRL-V}.
   864 }
   865 
   866 \subsection{Macros} \label{macros}
   867 Macros have been added to \vym in version~1.9.0. Each function key
   868 \key{F1} to \key{F12} holds a macro, which is executed on the current
   869 selection if the key is pressed. The default macros change the colour of
   870 a subtree or set the frame of a branch:
   871 \begin{center}
   872 	\includegraphics[width=8cm]{images/macros.png}
   873 \end{center}
   874 Each macro is a \vym script, which is executed when the associated key
   875 is pressed. The default location of the scripts can be changed in the
   876 Settings menu. More information on using scripts in \vym is found in
   877 appendix~\ref{scripts}.
   878 
   879 \subsection{Bookmarks} \label{bookmarks}
   880 \subsubsection*{Open new tabs instead of new windows}
   881 If you use konqueror as your browser, \vym will remember the konqueror session which
   882 was opened first by \vym. You can also press \key{Ctrl} and click to
   883 open the link in a new tab.
   884 
   885 \vym can also open a new tab in Mozilla or Firefox using the remote
   886 command\footnote{\href{http://www.mozilla.org/unix/remote.html}{http://www.mozilla.org/unix/remote.html}}
   887 of these browsers.
   888 
   889 \subsubsection*{Drag and Drop}
   890 If you want to keep bookmarks in a map, select a branch where you want
   891 to add the bookmark, then simply drag the URL from your browser to the
   892 map. Also you could use an existing heading as URL: Right click onto the
   893 branch and select "Use heading for URL".
   894 
   895 
   896 \subsubsection*{Directly access bookmark lists of a browser}
   897 Please see the sections \ref{import} and \ref{export} about
   898 Import and Export filters.
   899 
   900 \subsubsection*{Special URLs}
   901 \vym can turn an existing heading of a branch into an URL. Currently
   902 this works for Bugentries in the Novell Bugtracking system: Open the
   903 context menu of a branch (usually by right-clicking it) and select
   904 \begin{itemize}
   905 	\item Create URL to Bugzilla
   906 \end{itemize}
   907 The URL will be build from the number in the heading.
   908 
   909 \subsection{Associating images with a branch} \label{incimg}
   910 The default setting for an image is for it to float "freely". Images can be
   911 positioned anywhere on the canvas, but may end up in the same place as other
   912 parts of the map obscuring that part of the map.
   913 
   914 The solution is to insert or include them "into" a branch. This can be done via
   915 the property window (see \ref{propwindow}):
   916 \begin{itemize}
   917 	\item Include images horizontally
   918 	\item Include images vertically
   919 \end{itemize}
   920 The image is still positioned relative to its parent branch, but the
   921 heading and border of the branch frame adapt to the floating image, see below: 
   922 	\maximage{images/includeImages.png}
   923 
   924 \subsection{Modifier Modes} 
   925 Modifiers are for example the \key{Shift}- the \key{Ctrl}- ot the \key{Alt}-keys. When
   926 pressed while applying mouse actions, they will cause \vym to use
   927 a "modified" version of the action which usually would be done. 
   928 
   929 %\key{Ctrl} or \key{Alt}is pressed while releasing the branch, it will be
   930 %added above/below the target, not as child of the target.
   931 
   932 Without a modifier key pressed, the first mouse click on a branch just selects
   933 it. For the behaviour of the \key{Ctrl} modifier there are several
   934 options, which can be set from the modifier toolbar:
   935 \begin{center}
   936 	\includegraphics[width=3cm]{images/modmodes.png}
   937 \end{center}
   938 The default mode is to copy the colour from the clicked branch to the already
   939 selected branch. The figure above shows the toolbar with the default modifier 
   940 selected. The second modifier
   941 let's you easily copy a whole branch with a single click. The third
   942 modifier lets you create links between branches called {\em xLinks}.
   943 They will be explained in the next section \ref{xlinks}.
   944 
   945 \subsection{Hide links of unselected objects} \label{hidelink}
   946 Sometimes it would be useful to position a branch freely, just like a
   947 mainbranch or an image. This is possible for all
   948 branches, you can use a mainbranch and hide its connecting link to the
   949 mapcenter or hide the link between a child branch and its parent. This can be used e.g. for legends or a collection of vymLinks
   950 pointing to other maps:
   951 \begin{center}
   952 	\includegraphics[width=9cm]{images/hiddenlink.png}
   953 \end{center}
   954 To hide the link between a branch and its parent open the
   955 \ref{propwindow} and check "Hide link if object is not selected" on
   956 "Link" tab.
   957 
   958 
   959 \subsection{XLinks} \label{xlinks}
   960 So far all the data in the \vym map has been treelike. Using xLinks you
   961 can link one branch to any other, just like attaching a rope between two
   962 branches in a real tree. This is especially useful in complex maps,
   963 where you want to have crossreferences which can not be displayed on the same
   964 visible area of the {\em mapeditor} window. The following example map still fits on one screen, but shows how data can be crosslinked. In the graphics there is a link from a task (prepare a presentation) to general information:
   965 	\maximage{images/xlink.png}
   966 Note that a xLink which points to a branch that is not visible (because
   967 it is scrolled), is just shown as a little horizontal arrow. In the
   968 screenshot above have a look at the \lq Tuesday\rq\ branch.
   969 
   970 \subsubsection*{Create a xLink}
   971 Choose the link mode from the modifier toolbar (by clicking the toolbar icon or pressing
   972 \key{L}). Select the branch, where the xLink should start. Press the
   973 modifier key \key{Ctrl} and then click on the selected branch where the
   974 link should start and drag the mouse pointer to the branch where the link is to end. (The link is drawn to follow the mouse pointer). When you release the mouse over a branch the xLink becomes permanent.
   975 
   976 \subsubsection*{Modify or delete a xLink}
   977 First select a branch at either end of the xLink. Then open the context
   978 menu and select \lq Edit xLink\rq. A submenu contains all the xLinks of
   979 the branch (if there are any). They are named like the branches, where
   980 they end. Choose one and the xLink dialogue opens, where you can set
   981 colour, width and also delete the xLink.
   982 
   983 \subsubsection*{Follow a xLink}
   984 In a complex \vym map it sometimes comes in handy to be able to jump to the other end
   985 of a xLink. You can do this by opening the context menu of the branch
   986 and clicking on \lq Goto xLink\rq and selecting the xLink you want to
   987 follow.
   988 
   989 
   990 
   991 \subsection{Adding and removing branches}
   992 The context menu of a branch shows some more ways to add and delete data
   993 e.g. you can delete a branch while keeping its children. The children become
   994 linked to the parent of the previously removed branch.
   995 Similar branches can be inserted into existing maps. For keyboard
   996 shortcuts also have a look at the context menu.
   997 
   998 \subsection{Adding a whole map or a part of a map}
   999 Select a branch where you want to add a previously saved map ({\tt
  1000 .vym})or a part of a map ({\tt .vyp}) , then open the context menu and
  1001 choose {\em Add \ra Add Map (Insert)}. For the import you can choose
  1002 between {\em Add Map (Insert)} and {\em Add Map (Replace)}: The imported
  1003 data will be added after the selected branch.
  1004 
  1005 \section{\vym on Mac OS X}
  1006 \subsection{Overview}
  1007 Basically there are two ways to run \vym on Macs:
  1008 \subsubsection*{QT Mac Edition:}
  1009 	\vym here provides the well known Mac look and feel.  \vym is
  1010 	available as zipped Mac OS X application. It has been compiled and
  1011 	tested in Mac~OS~10.4. It is using the Mac version of Trolltechs QT library.  
  1012 \subsubsection*{X11}
  1013 	\vym can also be run using the Linux version, but then menus and
  1014 	handling will also be those of the Linux version e.g. The menu bar
  1015 	will look different. 
  1016 
  1017 \subsection	{Contextmenu and special keys}
  1018 Most Macs unfortunatly just have a single mouse button. In order to show
  1019 the context menu which usually would be opened with the right mouse
  1020 button, you can click while pressing the \key{kommand}-key.
  1021 
  1022 Especially on Laptops some of the keys usually used on PC keyboards seem
  1023 to be missing. The QT-Mac Edition of \vym has its own keyboard
  1024 shortcuts. To find the shortcuts just have a look at all the menu
  1025 entries, the shortcut is visible next to an entry. Toolbar buttons also
  1026 may have shortcuts, just position the mouse pointer over a button and
  1027 wait for the little help window to appear. 
  1028 
  1029 \subsection {Viewing external links}
  1030 \vym on Mac uses the system call {\tt /usr/bin/open} to view links.
  1031 Mac~OS determines automatically if the link is a pdf or www page and
  1032 opens the right browser.
  1033 
  1034 
  1035 \begin{appendix}
  1036 
  1037 \section{\vym initialisation process and configuration}
  1038 \subsection{Configuration file}
  1039 On startup \vym will look for a configuration for user specific settings
  1040 like window positions, toolbars etc. If this file does not already
  1041 exist, it will be created. The file is located in the users home
  1042 directory. The exact position depends on the platform:
  1043 \begin{center}
  1044 \begin{tabular}{cl}
  1045 	{\bf Platform}	& {\bf Configuration file} \\ \hline
  1046 	Linux		& {\tt $\sim$/.config/InSilmaril/vym.conf  } \\
  1047 	Mac OS X	& {\tt /Users/NAME/Library/Preferences/com.insilmaril.vym.plist  } \\
  1048 \end{tabular}
  1049 \end{center}
  1050 The file can be edited manually, or on Mac~OS~X with Property List
  1051 Editor (installed with xtools).
  1052 
  1053 \subsection{Path to ressources}
  1054 \vym will try to find its ressources (images, stylesheets, filters,
  1055 etc.) in the following places:
  1056 \begin{enumerate}
  1057 	\item Path given by the environment variable {\tt VYMHOME}.
  1058 	\item If called with the local option (see \ref{options} below),
  1059 	      \vym will look for its data in the current directory.
  1060 	\item {\tt /usr/share/vym}
  1061 	\item {\tt /usr/local/share/vym}
  1062 \end{enumerate}
  1063 
  1064 \subsection{Command line options} \label{options}
  1065 \vym has the following options:
  1066 \begin{center}
  1067 \begin{tabular}{cccp{8cm}}\\ 
  1068 \bf Option	& \bf Comment & \bf Argument & \bf Description \\ \hline
  1069 v & version &			& Show version and codename of \vym\\
  1070 l & local	&			& Use local paths to stylesheets, translations, icons, 
  1071                           etc. instead of system paths. Useful for testing\\
  1072 h & help	&			& Show help\\
  1073 r & run 	& filename	& Run script\\
  1074 q & quit	&			& Quit immediatly after startup. Useful for benchmarks.\\
  1075 \end{tabular}
  1076 \end{center}
  1077 You can also give several filenames at the commandline to let \vym open
  1078 several maps at once.
  1079  
  1080 
  1081  \section{Scripts} \label{scripts}
  1082  %FIXME
  1083 
  1084 
  1085 
  1086 
  1087 
  1088 \section{Contributing to \vym}
  1089 So far I'd say I have written 98\% of the code on my own. No surprise,
  1090 that \vym exactly fits my own needs. Nevertheless I would like to
  1091 encourage all users of  \vym to contribute. Maybe not only with feature
  1092 requests, but also with code, new import/export filters, translations
  1093 etc. In this appendix I'll try to show how easy it is to expand the
  1094 things you can do already with \vym. I really look forward to hear from
  1095 you!
  1096 
  1097 \subsection{Getting help}
  1098 
  1099 \subsubsection*{Frequently asked questions}
  1100 Please refer to the FAQ available on the \vym website:
  1101 \begin{center}
  1102 \href{http://www.InSilmaril.de/vym/faq.html}{http://www.InSilmaril.de/vym/faq.html}
  1103 \end{center}
  1104 
  1105 \subsubsection*{Mailinglists}
  1106 There are two mailinglists: {\tt vym-forum} is the \vym users forum to
  1107 discuss various questions, while {\tt vym-devel} is intended for people
  1108 interested in contributing to \vym. You can view the archives and
  1109 subscribe at
  1110 \begin{center}
  1111 \href{https://sourceforge.net/mail/?group_id=127802}{https://sourceforge.net/mail/?group\_id=127802}
  1112 \end{center}
  1113 
  1114 \subsubsection*{Contacting the author}\label{author}
  1115 Especially for support questions please try the mailinglists first. If
  1116 everything else fails you can contact the author Uwe Drechsel at
  1117 \begin{center}
  1118 \href{mailto:vym@InSilmaril.de}{vym@InSilmaril.de}
  1119 \end{center}
  1120 
  1121 
  1122 
  1123 \subsection{How to report bugs}
  1124 Though Sourceforge has its own bugreporting system, I'd rather prefer if
  1125 you contact me directly (see \ref{author}) or even better: You can file
  1126 a bugreport in Bugzilla, the bugtracking system of openSUSE:
  1127 \begin{center}
  1128 \href{http://en.opensuse.org/Submit_a_bug}{http://en.opensuse.org/Submit\_a\_bug}
  1129 \end{center}
  1130 I build \vym regulary for openSUSE, so you may report it against a
  1131 recent version there, even if you  use another Operating System.
  1132 Please don't forget to tell me what you are using:
  1133 \begin{itemize}
  1134 	\item the exact steps needed to reproduce the bug
  1135 	\item the version and build date of \vym (see the Help \ra About
  1136 	\vym)
  1137 	\item hardware and Operating System
  1138 \end{itemize}
  1139 
  1140 \subsection{Compiling from the sources}
  1141 \subsubsection{Getting the sources} \label{getsources}
  1142 You find the latest version of \vym at the project site:
  1143 \begin{center}
  1144 \href{https://sourceforge.net/projects/vym/}{https://sourceforge.net/projects/vym/}
  1145 \end{center}
  1146 There you can check them out of the source repository (CVS):\\
  1147 
  1148 \begin{verbatim}
  1149 cvs -d:pserver:anonymous@cvs.sf.net:/cvsroot/vym checkout code
  1150 \end{verbatim}
  1151 
  1152 \subsubsection{The Qt toolkit}
  1153 Qt is C++ toolkit for multiplatform GUI and application development. It
  1154 provides single-source portability across MS~Windows, Mac~OS~X, Linux
  1155 and all major commercial Unix variants. Qt is also available for
  1156 embedded devices. Qt is a Trolltech product. For more information see 
  1157 \begin{center}
  1158 \href{http://www.trolltech.com/qt/}{www.trolltech.com/qt} 
  1159 \end{center}
  1160 
  1161 
  1162 \subsubsection{Compiling \vym }
  1163 Make sure you have installed your Qt environment properly, see the Qt
  1164 documentation for details. You need to have the Qt command {\tt qmake}
  1165 in your {\tt PATH}-environment, then run
  1166 \begin{verbatim}
  1167 qmake
  1168 make  
  1169 make install
  1170 \end{verbatim}
  1171 The last command {\tt make install} needs root-permissions. Of course it
  1172 may be omitted, if you just want to test \vym.
  1173 
  1174 %\subsubsection*{Compiling \vym on Macs}
  1175 %FIXME
  1176 
  1177 \subsection{\vym file format} \label{fileformat}
  1178 \vym maps usually have the suffix "{\tt .vym}" and represent a
  1179 compressed archive of data. If you want to have a
  1180 closer look into the data structure map called "mapname.vym", 
  1181 just uncompress the map manually using
  1182 \begin{verbatim}
  1183 	unzip mapname.vym
  1184 \end{verbatim}
  1185 This will create directories named {\tt images} and {\tt flags} in your
  1186 current directory and also the map itself, usually named {\tt
  1187 mapname.xml}.
  1188 The XML structure of \vym is pretty self explaining, just have a look at
  1189 {\tt mapname.xml}.
  1190 
  1191 This XML file can be loaded directly into \vym, it does not have to be
  1192 compressed. If you want to compress all the data yourself, use
  1193 \begin{verbatim}
  1194 	zip -r mapname.vym .
  1195 \end{verbatim}
  1196 to compress all data in your current directory.
  1197 
  1198 \subsection{New features}
  1199 There are lots of features which might find their way into \vym.
  1200 Together with \vym you should have received a directory with several
  1201 maps e.g. on SUSE~LINUX this is
  1202 \begin{center}
  1203 	{\tt /usr/share/doc/packages/vym/demos}
  1204 \end{center}
  1205 where you find the map {\tt todo.vym}. It lists quite a lot of things to
  1206 be done in future. If you have more ideas, contact the development team
  1207 at
  1208 {\tt vym-devel@lists.sourceforge.net}.
  1209 
  1210 
  1211 \subsection{New languages support}
  1212 In order to add a new language to \vym you need 
  1213 the sources (see \ref{getsources}) and
  1214 an installation of Trolltechs QT. A part of QT are the development
  1215 tools, from those tools especially the translation tool "Linguist" is
  1216 needed. 
  1217 
  1218 In some Linux distributions the development tools are in an extra package, e.g. on SUSE LINUX you should have installed:
  1219 \begin{verbatim}
  1220     qt3-devel.rpm
  1221     qt3-devel-doc.rpm
  1222     qt3-devel-tools.rpm
  1223     qt3-man.rpm
  1224 \end{verbatim}
  1225 If you don't have QT in your system, you can get it from 
  1226 	\href{http://www.trolltech.com}{http://www.trolltech.com} Once you
  1227 	are able to compile vym yourself, you can translate the text in vym
  1228 	itself by performing the following steps:
  1229 \begin{itemize}
  1230 	\item Let's assume now your encoding is "NEW" instead of for example
  1231 	"de" for german or "en" for english
  1232 	
  1233 	\item Copy the file {\tt lang/vym\_en.ts} to l{\tt ang/vym\_NEW.ts} (The code
  1234 	itself contains the english version.)
  1235 		
  1236 	\item Add {\tt lang/vym\_NEW.ts} to the TRANSLATIONS section of vym.pro
  1237 
  1238 	\item Run Linguist on {\tt vym\_NEW.ts} and do the translation
  1239 
  1240 	\item Run {\tt lrelease} to create {\tt vym\_NEW.qm}
  1241 
  1242 	\item Do a make install to install the new vym and check your translation
  1243 \end{itemize}
  1244 
  1245 If you feel brave, you can also translate the manual. It is written in
  1246 LaTeX, you just have to change the file tex/vym.tex. (Linguist and QT
  1247 are not needed, but it is useful to know how to work with LaTeX and esp.
  1248 pdflatex to create the PDF.) 
  1249 
  1250 Please mail me every translation you have done. I can also give you a
  1251 developer access to the project, if you want to provide translations
  1252 regulary.  
  1253 
  1254 \subsection{New export/import filters}
  1255 \vym supports various kinds of filters. Data can be written directly,
  1256 inserted into templates or it can be written as XML data and then
  1257 processed by XSL transformations. 
  1258 
  1259 Most of the import/export functionality is available in the classes
  1260 ImportBase and ExportBase and subclasses. All of them can be found in
  1261 {\tt imports.h} and {\tt exports.h}.
  1262 
  1263 \subsubsection*{Direct import/export}
  1264 An example for a direct export is the XML export. This method touches
  1265 the implementation of nearly every object of \vym, so whenever possible
  1266 you should better use a XSL transformation instead.
  1267 
  1268 If you still want to know how it is done, start looking at 
  1269 {\tt MapEditor::saveToDir} in {\tt mapeditor.cpp}.
  1270 
  1271 \subsubsection*{Templates}
  1272 Templates have been introduced to export to opendoc format used e.g. by
  1273 Open~Office. While I read the spec ($>$ 500 pages) about the format\footnote{
  1274 \href{http://www.oasis-open.org/}{http://www.oasis-open.org/}}\ 
  1275 I had the feeling that I did not want to write the export from scratch. 
  1276 It would be too complex to adapt the styles to your own wishes, e.g. the
  1277 layout.
  1278 
  1279 Instead I analyzed existing Open~Office documents. I found out that
  1280 there are lots of redundant bits of information in a standard
  1281 presentation, for example each list item is contained in its own list.
  1282 In the end I came up with the default presentation style, which still
  1283 could be simplified, just in case you have free time\ldots
  1284 
  1285 The existing templates are still work in progress, before you spend too
  1286 much time developing your own style, please contact me.  Basically the
  1287 following steps are needed to build your own style:
  1288 \begin{enumerate}
  1289 	\item Create an example in Open Office. Use a title, authors name,
  1290 	page heading etc.\ which you can easily grep for in the output file.
  1291 	
  1292 	\item Unzip  the Open Office document into a directory.
  1293 
  1294 	\item The main file is called {\tt content.xml}. All data is in one
  1295 	single line. You can split the XML tags using the script {\tt
  1296 	scripts/niceXML}, which is part of the \vym distribution.
  1297 
  1298 	\item Copy the output of {\tt niceXML} to {\tt
  1299 	content-template.xml}.
  1300 
  1301 	\item Looking closer you will find lots of unused definitions, for
  1302 	example of styles. You can delete or simply ignore them.
  1303 
  1304 	\item Try to find your title, authors name. \vym will replace the
  1305 	following strings while exporting:
  1306 	\begin{center}
  1307 	\begin{tabular}{lp{4cm}}
  1308 		{\tt <!-- INSERT TITLE -->}		& title of map \\
  1309 		{\tt <!-- INSERT AUTHOR-->	}	& author \\
  1310 		{\tt <!-- INSERT COMMENT -->}	& comment \\
  1311 		{\tt <!-- INSERT PAGES-->}		& content of map \\
  1312 	\end{tabular}
  1313 	\end{center}
  1314 	The content itself is generated in a similar way by inserting lists
  1315 	into {\tt page-template}. Here the following substitutions are made:
  1316 	\begin{center}
  1317 	\begin{tabular}{lp{7cm}}
  1318 		{\tt <!-- INSERT PAGE HEADING-->}		& heading of a page
  1319 		(mainbranch or child of mainbranch, depending on the use of
  1320 		sections) \\
  1321 		{\tt <!-- INSERT LIST -->	}	& all childs of the branch above \\
  1322 	\end{tabular}
  1323 	\end{center}
  1324 \end{enumerate}
  1325 Currently images are exported and notes just will appear as text
  1326 without formatting and colours.
  1327 
  1328 
  1329 
  1330 
  1331 \subsubsection*{XSL Transformation}
  1332 \vym uses XSL transformations while exporting (e.g. XHTML) and importing
  1333 data (e.g. KDE bookmarks). There is a little code needed to provide the
  1334 GUI, the rest is done using the {\tt .xsl} stylesheet and calling the
  1335 {\tt xsltproc} processor, which is part of libxslt, the XSLT
  1336 C  library  for  GNOME. 
  1337 
  1338 \end{appendix}
  1339 \end{document}
  1340 
  1341 %TODO
  1342 %\subsubsection{Menus}
  1343 %\subsubsection{Keyboard shortcuts}
  1344 %Where does vym save its settings? -> ~/.qt/vymrc
  1345 
  1346 
  1347 % INDEX
  1348 % mapeditor
  1349 % noteditor
  1350 % branch
  1351 % mapcenter
  1352 % heading
  1353 % flag
  1354 % orientation 
  1355 % zoom
  1356 % orientation
  1357 % Toolbar
  1358 % Zoom
  1359 % Find
  1360 % statusbar
  1361 % link
  1362 % mainbranch
  1363 % subtree
  1364 % reorder
  1365 % scroll
  1366 % fold
  1367 % vymlink
  1368 % xlink
  1369 % modMode
  1370 % context menu
  1371 % Mac OS X
  1372 
  1373 
  1374 
  1375 \end{document}