]> git.lyx.org Git - lyx.git/blobdiff - lib/doc/Additional.lyx
* new InsetLayout tag to disallow spell checking. This actually brings Inset::allowSp...
[lyx.git] / lib / doc / Additional.lyx
index 565e4c0eaed12a6cf2b3d0ddf0aaa984954ec97d..10f0e1de8a447149672393fdc8f992fef7f84620 100644 (file)
@@ -1,5 +1,5 @@
 #LyX 2.0.0svn created this file. For more info see http://www.lyx.org/
-\lyxformat 374
+\lyxformat 378
 \begin_document
 \begin_header
 \textclass scrbook
@@ -51,6 +51,7 @@ logicalmkup
 theorems-ams
 theorems-ams-extended
 \end_modules
+\maintain_unincluded_children false
 \begin_local_layout
 Format 7
 InsetLayout CharStyle:MenuItem
@@ -191,20 +192,29 @@ User's Guide
 \emph default
  is already quite lengthy, and it contains information on all of the basic
  features one needs to know in order to prepare most documents.
- However, the LyX Team has worked to LyX extensible through various configuratio
-n files and external packages.
+ However, the LyX Team has worked to make LyX extensible through various
+ configuration files and external packages.
  That means that if you want to support the Fizzwizzle LaTeX package, you
  can create a layout file (or module) for it without having to alter LyX
  itself.
- We've already had contributions of several new features this way.
- This is the place where all of those get documented.
+ We've already had contributions of several new features this way, and some
+ of them are documented here.
+ There are also some more `advanced' features, such as how to control the
+ presentation of bibliographies and how to work with multi-part documents,
+ that are not covered in the 
+\emph on
+User's Guide
+\emph default
+ and are discussed here.
 \end_layout
 
 \begin_layout Standard
 This manual also documents some special features, like fax support, version
  control, and SGML support, which require additional software to work properly.
- Lastly, there's a chapter of LaTeX tools and tips, things you can use to
- spruce up your documents by directly using the powerful features of LaTeX.
+ There is also a chapter on LyX's support for HTML.
+ And lastly, there's a chapter of LaTeX tools and tips, things you can use
+ to spruce up your documents by directly using the powerful features of
+ LaTeX.
  After all, LyX 
 \emph on
 is
@@ -232,7 +242,7 @@ User's Guide
 \end_layout
 
 \begin_layout Standard
-Since all the topics in this manual depend heavily on LyX's interaction
+Since many of the topics in this manual depend heavily on LyX's interaction
  with LaTeX, this first chapter covers the inner workings of LyX and how
  to direct LyX to generate exactly the LaTeX code you want.
  It is obviously for more seasoned LyX users.
@@ -2098,7 +2108,8 @@ Customizing Bibliographies with BibTeX
 \end_layout
 
 \begin_layout Standard
-The basics how to use BibTeX are explained in section 
+The most basic information about how to use BibTeX with LyX is contained
+ in the section 
 \emph on
 Bibliography databases (BibTeX)
 \emph default
@@ -4117,586 +4128,1140 @@ savelabelitemi}
 \end_layout
 
 \begin_layout Chapter
-The LyX Server
+LyX and the World Wide Web
 \end_layout
 
-\begin_layout Section
-Introduction
+\begin_layout Standard
+LyX has long supported the export of documents to various web-friendly formats,
+ such as HTML.
+ Before verson 1.7, however, HTML export was always accomplished by the use
+ of external converters.
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+For details on the use of external converters with LyX, see the 
+\size normal
+\emph on
+Converters
+\emph default
+ section of the Customization manual.
 \end_layout
 
-\begin_layout Standard
-The `LyX server' allows other programs to talk to LyX, invoke LyX commands,
- and retrieve information about the LyX internal state.
- This is only intended for advanced users, but they should find it useful.
- It is by writing to the LyX server, for example, that bibliography managers,
- such as JabRef, are able to 
-\begin_inset Quotes eld
 \end_inset
 
-push
-\begin_inset Quotes erd
-\end_inset
+ These fall into two large groups: there are converters that use LaTeX as
+ an intermediate format, such as 
+\begin_inset Flex CharStyle:Code
+status collapsed
 
- citations to LyX.
+\begin_layout Plain Layout
+htlatex
 \end_layout
 
-\begin_layout Section
-Starting the LyX Server
-\end_layout
+\end_inset
 
-\begin_layout Standard
-The LyX server works through the use of a pair of named pipes.
- These are usually located in 
+, 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-UserDir
+html2latex
 \end_layout
 
 \end_inset
 
-, (except on Windows, where 
-\emph on
-local
-\emph default
- named pipes are special objects located in 
+, and 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-
-\backslash
-
-\backslash
-.
-\backslash
-pipe
+plastex
 \end_layout
 
 \end_inset
 
-) and have the names 
-\begin_inset Quotes eld
+, relying upon LyX to produce the LaTeX; and there is a converter that works
+ directly on LyX files, 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+eLyXer
+\end_layout
+
 \end_inset
 
+.
+ All of these have different advantages and disadvantages.
+\end_layout
 
+\begin_layout Standard
+The LaTeX-based converters have the advantage that, in principle, they know
+ everything about the exported document that LaTeX does.
+ Such converters do not care, for example, if a certain block of code was
+ produced by LyX or was Evil Red Text.
+ They know about 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-lyxpipe.in
+aux
 \end_layout
 
 \end_inset
 
+ files, counters, and references, and can often make use of the 
+\begin_inset Flex CharStyle:Code
+status collapsed
 
-\begin_inset Quotes erd
-\end_inset
+\begin_layout Plain Layout
+bbl
+\end_layout
 
- and 
-\begin_inset Quotes eld
 \end_inset
 
-
+ files generated by BibTeX.
+ On the other hand, LaTeX is a very hard language to parse---it is sometimes
+ said that only TeX itself understands TeX---and LaTeX-based converters
+ will often choke on what seem to be quite simple constructs; complex ones
+ can throw them completely, and as of this writing, for example, the 
+\emph on
+Embedded Objects
+\emph default
+ manual will not export with 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-lyxpipe.out
+htlatex
 \end_layout
 
 \end_inset
 
+, though the others will.
+ The other issue concerns how math is handled.
+ These converters typically convert the formulae into little pictures that
+ are then linked from the HTML document.
+ Since these are actually generated by LaTeX, they are accurate.
+ But they do not scale well, and just getting them to look as if they are
+ actually meant to be in your document---so that the font sizes seem to
+ be roughly the same---can be a challenge.
+\end_layout
 
-\begin_inset Quotes erd
-\end_inset
-
-.
- External programs write into 
+\begin_layout Standard
+Alex Fernandez's 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-lyxpipe.in
+eLyXer
 \end_layout
 
 \end_inset
 
- and read back data from 
+ solves some of these problems.
+ In particular, its rendering of math tends to look better than 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-lyxpipe.out
+htlatex
 \end_layout
 
 \end_inset
 
-.
- The stem of the pipe names can be defined in the 
-\begin_inset Flex CharStyle:MenuItem
+'s, at least in simpler cases, since it renders math using a neat combination
+ of HTML and CSS rather than converting the formulae to images.
+ But more complex formula tend to be rendered less well than with 
+\begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-Tools\SpecialChar \menuseparator
-Preferences
+htlatex
 \end_layout
 
 \end_inset
 
- dialog, for example 
+, since there is no reasonable way of scaling parentheses in HTML, for example.
+ More importantly (as of version 0.39, at least), 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-"/home/myhome/lyxpipe"
+eLyXer
 \end_layout
 
 \end_inset
 
-, or 
+ has no support for math macros, for user-defined paragraph or character
+ styles, or for tables of contents and figures.
+ These limitations make 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-"
-\backslash
-
-\backslash
-.
-\backslash
-pipe
-\backslash
-lyxpipe"
+eLyXer
 \end_layout
 
 \end_inset
 
- on Windows.
- You 
-\emph on
-must
-\emph default
- configure this manually in order for the server to start.
+ unsuitable for many of the documents more advanced LyX users would produce.
+ In principle, of course, all of these problems could be solved, but the
+ LyX developers have decided to follow a different path and made LyX itself
+ capable of writing XHTML, just as it is capable of writing LaTeX, DocBook,
+ and plaintext.
 \end_layout
 
 \begin_layout Standard
-LyX will add the '
+As of this writing, XHTML output remains under development and should probably
+ be regarded as 
+\begin_inset Quotes eld
+\end_inset
+
+experimental
+\begin_inset Quotes erd
+\end_inset
+
+.
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+The file 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-.in
+development/HTML.notes
 \end_layout
 
 \end_inset
 
-' and '
-\begin_inset Flex CharStyle:Code
+, which can be found in the LyX source tree or 
+\begin_inset CommandInset href
+LatexCommand href
+name "accessed online"
+target "http://www.lyx.org/trac/browser/lyx-devel/trunk/development/HTML/HTML.notes"
+
+\end_inset
+
+, usually contains up-to-date information about the state of XHTML output.
+\end_layout
+
+\end_inset
+
+ Still, the developers have chosen this approach because it has several
+ potential advantages over the other two.
+\end_layout
+
+\begin_layout Standard
+These advantages are primarily due to the fact that the XHTML output routines,
+ since they are part of LyX, know everything LyX knows about the document
+ being exported.
+\begin_inset Foot
 status collapsed
 
 \begin_layout Plain Layout
-.out
+Another advantege is that, since these routines are internal to LyX, they
+ are immune to changes in LyX's file format, or to changes in the semantics
+ of existing insets.
 \end_layout
 
 \end_inset
 
-' to create the pipes.
- If one of the pipes already exists, LyX will assume that another LyX process
- is already running and will not start the server.
- On POSIX (Unix like) systems, if for some other reason, an unused 
+ So they know about the table of contents (as displayed in the Outline),
+ about the counters associated with different paragraph styles, and about
+ user-defined styles.
+ The XHTML output routines know what LyX knows about internationalization,
+ too, so they will output 
 \begin_inset Quotes eld
 \end_inset
 
-stale
+Chapter 1
 \begin_inset Quotes erd
 \end_inset
 
- pipe is left in existence when LyX closes, then LyX will try to delete
- it.
- If this fails for some reason, you will need to delete the pipes manually
- and then restart LyX.
- On Windows, pipes are deleted by the OS on program termination or crash,
- so 
+ or 
 \begin_inset Quotes eld
 \end_inset
 
-stale
+
+\lang ngerman
+Kapitel
+\lang english
+ 1
 \begin_inset Quotes erd
 \end_inset
 
- pipes should not be possible.
+, depending upon the language in effect at the time.
 \end_layout
 
 \begin_layout Standard
-To have several LyX processes with servers at the same time, you have to
- use different configurations, perhaps by using separate user directories,
- each with its own 
-\begin_inset Flex CharStyle:Code
-status collapsed
-
-\begin_layout Plain Layout
-preferences
+Quite generally, the output routines know everything LyX knows about document
+ layout, that is, about the document is to be rendered on screen.
+ We can use this information when we output the document as XHTML.
+ In particular, LyX 
+\emph on
+automatically
+\emph default
+ generates CSS style information corresponding to the layout information
+ it uses to render the document on screen: if section headings are supposed
+ to be sans-serif and bold as seen in LyX, then (by default) they will be
+ sans-serif and bold when viewed in a web browser, too.
+ And this is true not just for pre-defined styles, like Section, but for
+ any style, including user-defined styles.
+  Indeed, the XHTML output routines make no distinction between user-defined
+ paragraph and character styles and LyX's own pre-defined styles: in each
+ case, everything LyX knows about the styles is contained in the layout
+ files.
+ And much the same is true as regards pre-defined textual insets, such as
+ footnotes, and custom versions.
 \end_layout
 
-\end_inset
-
- file, for each process.
+\begin_layout Standard
+The result is that XHTML output can be customized and extended in 
+\emph on
+exactly
+\emph default
+ the same way LaTeX output can be customized and extended: through layout
+ files and modules.
+ See chapter five of the 
+\emph on
+Customization 
+\emph default
+manual for the details.
 \end_layout
 
 \begin_layout Standard
-If you are developing a client program, you might find it useful to enable
- debugging information from the LyX server.
- Do this by starting LyX as 
+As for math, LyX renders math using MathML.
+ This has advantages and disadvantages.
+ The advantage is that MathML is a dialect of XML designed specifically
+ for mathematics on the web, and it typically renders very well in browsers
+ that support it.
+ The first disadvantage is that not all browsers support MathML, and support
+ is not complete even in the Gecko-based browsers, such as Firefox.
+ A second disadvantage, as compared to rendering math by images, is that
+ LyX can only output MathML for LaTeX constructs that it knows about, which
+ means that the use of ERT in math---e.g., the command 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-lyx -dbg lyxserver
+
+\backslash
+BGassert
 \end_layout
 
 \end_inset
 
-.
-\end_layout
-
-\begin_layout Standard
-You can find a complete example client written in C in the source distribution
- as 
+ from the 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-development/lyxserver/server_monitor.c
+begriff.sty
 \end_layout
 
 \end_inset
 
-.
+ package---will produce nothing helpful.
+ Eventually, therefore, LyX will offer the user the option to use MathML
+ or images, and it will offer this choice on a case by case basis.
 \end_layout
 
 \begin_layout Standard
-Another useful tool is command-line based client you will find in 
-\begin_inset Flex CharStyle:Code
-status collapsed
+The remainder of this chapter contains more detailed information on XHTML
+ output, its limitations, and ways around those limitations.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Note
+status open
 
 \begin_layout Plain Layout
-src/client/lyxclient
+This is very incomplete at this point!
 \end_layout
 
 \end_inset
 
-.
+
 \end_layout
 
 \begin_layout Section
-Normal communication
+Bibliography and Citations
 \end_layout
 
 \begin_layout Standard
-To issue a LyX call, the client writes a line of ASCII text into the input
- pipe.
- This line has the following format:
+XHTML output fully supports bibliographies and citations.
 \end_layout
 
-\begin_layout Quote
-LYXCMD:
-\emph on
-clientname
-\emph default
-:
-\emph on
-function
-\emph default
-:
-\emph on
-argument
+\begin_layout Standard
+Citation labels are generated by exactly the same machinery that generates
+ LyX's on-screen labels, so the labels will look in the output much as they
+ do in LyX, though better.
+ If you are using numerical citations, then LyX will output numerical labels,
+ such as [1] or [17], rather than simply showing the citation key in square
+ brackets, as it does on-screen.
+ If you are using author-year citations, then LyX will add lowercase letters
+ to the years, just as BibTeX does, if it finds more than one citation for
+ a given author-year combination.
+ The labels will be printed with the bibliography entries.
+ Note that there is, at present, no way to customize the appearance of the
+ labels, for example, to choose between square brackets and parentheses.
 \end_layout
 
-\begin_layout Description
-clientname is a name that the client can choose arbitrarily.
- Its only use is that LyX will echo it if it sends an answer—so a client
- can dispatch results from different requesters.
+\begin_layout Standard
+Bibliography output is handled by the same machinery that handles the presentati
+on of reference information in the citation dialog, so you will see in the
+ XHTML output pretty much what you would see if you were to look at a given
+ entry in the citation dialog.
+ Unfortunately, the formatting of bibliography entries, too, is at present
+ not customizable, and it is fairly primitive, though this should change
+ shortly.
 \end_layout
 
-\begin_layout Description
-function is the function you want LyX to perform.
- It is the same as the commands you'd use in the minibuffer.
+\begin_layout Standard
+The other significant defect is that cross-referenced information is printed
+ with every entry with which it is associated.
+ So you can see things like this:
 \end_layout
 
-\begin_layout Description
-argument is an optional argument which is meaningful only to some functions
- (for instance, the 
+\begin_layout Quote
+Jason Stanley, 
 \begin_inset Quotes eld
 \end_inset
 
-self-insert
+Context and Logical Form
 \begin_inset Quotes erd
 \end_inset
 
- LFUN will insert the argument as text at the cursor position).
-\end_layout
-
-\begin_layout Standard
-The answer from LyX will arrive in the output pipe and be of the form
+, in 
+\emph on
+Language in Context: Selected Essays
+\emph default
+ (Oxford: Oxford University Press, 2007), pp.
+ 30--68.
 \end_layout
 
 \begin_layout Quote
-INFO:
-\emph on
-clientname
-\emph default
-:
+Jason Stanley, 
+\begin_inset Quotes eld
+\end_inset
+
+Semantics in Context
+\begin_inset Quotes erd
+\end_inset
+
+, in 
 \emph on
-function
+Language in Context: Selected Essays
 \emph default
-:
-\emph on
-data
+ (Oxford: Oxford University Press, 2007), pp.
+ 201--30.
 \end_layout
 
 \begin_layout Standard
-where 
-\emph on
-clientname
-\emph default
- and 
-\emph on
-function
-\emph default
- are just echoed from the command request, while 
-\emph on
-data
-\emph default
- is more or less useful information filled according to how the command
- execution worked out.
- Some commands, such as 
-\begin_inset Quotes eld
-\end_inset
-
-font-state
-\begin_inset Quotes erd
-\end_inset
-
-, will return information about the internal state of LyX, while other will
- return an empty data-response.
- This means that the command execution went fine.
+Again, this should be fixed before long.
 \end_layout
 
 \begin_layout Standard
-In case of errors, the response from LyX will have this form
+There is no support at present for sectioned bibliographies.
+ If you have multiple bibliographies, then LyX will print the same bibliography
+ over and over.
 \end_layout
 
-\begin_layout Quote
-ERROR:
-\emph on
-clientname
-\emph default
-:
-\emph on
-function
-\emph default
-:
-\emph on
-error message
+\begin_layout Section
+Indexes
 \end_layout
 
 \begin_layout Standard
-where the 
-\emph on
-error message
-\emph default
- should contain an explanation of why the command failed.
+LyX will happily export indexes as XHTML, but with certain limitations at
+ the moment.
 \end_layout
 
 \begin_layout Standard
-Examples:
+Index export will be most reliable when you do not attempt to use the fancy
+ constructs that are described in the section on indexes in the 
+\emph on
+User's Guide
+\emph default
+.
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+The main issue here is that LyX itself does not really handle these.
+ It just lets you enter what you would have to enter in raw LaTeX.
 \end_layout
 
-\begin_layout LyX-Code
-echo "LYXCMD:test:beginning-of-buffer:" >~/.lyxpipe.in
-\begin_inset Newline newline
 \end_inset
 
-echo "LYXCMD:test:get-xy:" >~/.lyxpipe.in
-\begin_inset Newline newline
+ We'll describe how they are handled using the subsection headings from
+ that section.
+\end_layout
+
+\begin_layout Itemize
+Grouping Index Entries (aka, sub-entries): LyX makes an effort to support
+ these, but the entries must be separated by 
+\begin_inset Quotes eld
 \end_inset
 
-read a <~/.lyxpipe.out
-\begin_inset Newline newline
+ ! 
+\begin_inset Quotes erd
 \end_inset
 
-echo $a
+, that is, there must be spaces around the exclamation point.
+ This is because it is otherwise too difficult to check for escaped exclamation
+ points, ones in math, and so forth.
 \end_layout
 
-\begin_layout Section
-Notification
+\begin_layout Itemize
+Page Ranges: There is no support at all for page ranges, since these make
+ no sense with XHMTL.
+ Instead, you will just get two index entries, one at either end.
 \end_layout
 
-\begin_layout Standard
-LyX can notify clients of events going on asynchronously.
- Currently it will only do this if the user binds a key sequence with the
- function 
+\begin_layout Itemize
+Cross-referencing: There is no support for cross-referencing.
+ If LyX finds an entry containing the 
 \begin_inset Quotes eld
 \end_inset
 
-notify
+|see\SpecialChar \ldots{}
+
 \begin_inset Quotes erd
 \end_inset
 
-.
- The format of the string LyX sends is as follows:
+ construct, it is just dropped, and the rest is treated as an ordinary index
+ entry.
 \end_layout
 
-\begin_layout Quote
-\begin_inset Flex CharStyle:Code
-status collapsed
-
-\begin_layout Plain Layout
-NOTIFY:
+\begin_layout Itemize
+Index Entry Order: LyX does support attempts to fix the sorting order.
+ It will take what is before the first `@' it finds and use that for sorting,
+ taking what follows the first `@' to be the actual entry.
+ At present, LyX does not check for escaped `@', so do not try to index
+ email addresses.
 \end_layout
 
+\begin_layout Itemize
+Index Entry Layout: You can format entries by using the text style dialog,
+ or by using any other method available within LyX itself.
+ There is no support for constructs like: 
+\begin_inset Quotes eld
+\end_inset
+
+entry|textbf
+\begin_inset Quotes erd
 \end_inset
 
+.
+ Indeed, if LyX finds a pipe symbol, `|', in an entry, it will delete it
+ and everything that follows it.
+\end_layout
 
-\emph on
-key-sequence
+\begin_layout Itemize
+Multiple Indexes: There is no support for multiple indexes.
+ Rather, all index entries will be printed as one large index.
+ To avoid our printing several versions of the index, we print only the
+ main index, so make sure you have one.
+\end_layout
+
+\begin_layout Section
+Nomenclature and Glossary
 \end_layout
 
 \begin_layout Standard
-where 
-\emph on
-key-sequence
-\emph default
- is the printed representation of the key sequence that was actually typed
- by the user.
+There is at present no support for glossaries.
+\end_layout
+
+\begin_layout Chapter
+The LyX Server
+\end_layout
+
+\begin_layout Section
+Introduction
 \end_layout
 
 \begin_layout Standard
-This mechanism can be used to extend LyX's command set and implement macros.
- Bind some key sequence to 
+The `LyX server' allows other programs to talk to LyX, invoke LyX commands,
+ and retrieve information about the LyX internal state.
+ This is only intended for advanced users, but they should find it useful.
+ It is by writing to the LyX server, for example, that bibliography managers,
+ such as JabRef, are able to 
 \begin_inset Quotes eld
 \end_inset
 
-notify
+push
 \begin_inset Quotes erd
 \end_inset
 
-.
- Then start a client that listens on the output pipe, dispatches the command
- according to the sequence, and starts a function that may use LyX calls
- and LyX requests to issue a command or a series of commands to LyX.
+ citations to LyX.
 \end_layout
 
 \begin_layout Section
-The simple LyX Server Protocol
+Starting the LyX Server
 \end_layout
 
 \begin_layout Standard
-LyX implements a simple protocol that can be used for session management.
- All messages are of the form
+The LyX server works through the use of a pair of named pipes.
+ These are usually located in 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+UserDir
 \end_layout
 
-\begin_layout Quote
-LYXSRV:
+\end_inset
+
+, (except on Windows, where 
 \emph on
-clientname
+local
 \emph default
-:
-\emph on
-protocol message
+ named pipes are special objects located in 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+
+\backslash
+.
+\backslash
+pipe
 \end_layout
 
-\begin_layout Standard
-where 
-\emph on
-protocol message
-\emph default
- can be 
-\begin_inset Quotes eld
 \end_inset
 
-hello
-\begin_inset Quotes erd
+) and have the names 
+\begin_inset Quotes eld
 \end_inset
 
- or 
-\begin_inset Quotes eld
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+lyxpipe.in
+\end_layout
+
 \end_inset
 
-bye
+
 \begin_inset Quotes erd
 \end_inset
 
-.
- If 
+ and 
 \begin_inset Quotes eld
 \end_inset
 
-hello
-\begin_inset Quotes erd
-\end_inset
 
- is received from a client, LyX will report back to inform the client that
- it's listening to it's messages, while 
-\begin_inset Quotes eld
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+lyxpipe.out
+\end_layout
+
 \end_inset
 
-bye
+
 \begin_inset Quotes erd
 \end_inset
 
- sent from LyX will inform clients that LyX is closing.
+.
+ External programs write into 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+lyxpipe.in
 \end_layout
 
-\begin_layout Section
-Reverse DVI/PDF search
+\end_inset
+
+ and read back data from 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+lyxpipe.out
 \end_layout
 
-\begin_layout Standard
-Some DVI/PDF viewers
-\begin_inset Foot
+\end_inset
+
+.
+ The stem of the pipe names can be defined in the 
+\begin_inset Flex CharStyle:MenuItem
 status collapsed
 
 \begin_layout Plain Layout
-The following viewers offer the reverse PDF search feature: Okular on KDE/Linux,
- Skim on Mac OSX and SumatraPDF on Windows.
+Tools\SpecialChar \menuseparator
+Preferences
 \end_layout
 
 \end_inset
 
- provide 
-\emph on
-reverse search
-\emph default
- facility (also called 
-\emph on
-inverse search
-\emph default
-).
- This means that you can tell LyX to put the cursor to a specific line in
- the document by clicking at the respective position in the DVI/PDF output.
- To achieve this, the viewer must be able to communicate with LyX.
- This is done via the LyX server either by using the named pipe (
-\emph on
-lyxpipe
-\emph default
-), or the UNIX domain socket (
-\emph on
-lyxsocket
-\emph default
-) that LyX creates in its temporary directory (this is the way the 
+ dialog, for example 
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-lyxclient
+"/home/myhome/lyxpipe"
 \end_layout
 
 \end_inset
 
- program communicates with LyX).
+, or 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+"
+\backslash
+
+\backslash
+.
+\backslash
+pipe
+\backslash
+lyxpipe"
+\end_layout
+
+\end_inset
+
+ on Windows.
+ You 
+\emph on
+must
+\emph default
+ configure this manually in order for the server to start.
+\end_layout
+
+\begin_layout Standard
+LyX will add the '
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.in
+\end_layout
+
+\end_inset
+
+' and '
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.out
+\end_layout
+
+\end_inset
+
+' to create the pipes.
+ If one of the pipes already exists, LyX will assume that another LyX process
+ is already running and will not start the server.
+ On POSIX (Unix like) systems, if for some other reason, an unused 
+\begin_inset Quotes eld
+\end_inset
+
+stale
+\begin_inset Quotes erd
+\end_inset
+
+ pipe is left in existence when LyX closes, then LyX will try to delete
+ it.
+ If this fails for some reason, you will need to delete the pipes manually
+ and then restart LyX.
+ On Windows, pipes are deleted by the OS on program termination or crash,
+ so 
+\begin_inset Quotes eld
+\end_inset
+
+stale
+\begin_inset Quotes erd
+\end_inset
+
+ pipes should not be possible.
+\end_layout
+
+\begin_layout Standard
+To have several LyX processes with servers at the same time, you have to
+ use different configurations, perhaps by using separate user directories,
+ each with its own 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+preferences
+\end_layout
+
+\end_inset
+
+ file, for each process.
+\end_layout
+
+\begin_layout Standard
+If you are developing a client program, you might find it useful to enable
+ debugging information from the LyX server.
+ Do this by starting LyX as 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+lyx -dbg lyxserver
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+You can find a complete example client written in C in the source distribution
+ as 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+development/lyxserver/server_monitor.c
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Another useful tool is command-line based client you will find in 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+src/client/lyxclient
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Normal communication
+\end_layout
+
+\begin_layout Standard
+To issue a LyX call, the client writes a line of ASCII text into the input
+ pipe.
+ This line has the following format:
+\end_layout
+
+\begin_layout Quote
+LYXCMD:
+\emph on
+clientname
+\emph default
+:
+\emph on
+function
+\emph default
+:
+\emph on
+argument
+\end_layout
+
+\begin_layout Description
+clientname is a name that the client can choose arbitrarily.
+ Its only use is that LyX will echo it if it sends an answer—so a client
+ can dispatch results from different requesters.
+\end_layout
+
+\begin_layout Description
+function is the function you want LyX to perform.
+ It is the same as the commands you'd use in the minibuffer.
+\end_layout
+
+\begin_layout Description
+argument is an optional argument which is meaningful only to some functions
+ (for instance, the 
+\begin_inset Quotes eld
+\end_inset
+
+self-insert
+\begin_inset Quotes erd
+\end_inset
+
+ LFUN will insert the argument as text at the cursor position).
+\end_layout
+
+\begin_layout Standard
+The answer from LyX will arrive in the output pipe and be of the form
+\end_layout
+
+\begin_layout Quote
+INFO:
+\emph on
+clientname
+\emph default
+:
+\emph on
+function
+\emph default
+:
+\emph on
+data
+\end_layout
+
+\begin_layout Standard
+where 
+\emph on
+clientname
+\emph default
+ and 
+\emph on
+function
+\emph default
+ are just echoed from the command request, while 
+\emph on
+data
+\emph default
+ is more or less useful information filled according to how the command
+ execution worked out.
+ Some commands, such as 
+\begin_inset Quotes eld
+\end_inset
+
+font-state
+\begin_inset Quotes erd
+\end_inset
+
+, will return information about the internal state of LyX, while other will
+ return an empty data-response.
+ This means that the command execution went fine.
+\end_layout
+
+\begin_layout Standard
+In case of errors, the response from LyX will have this form
+\end_layout
+
+\begin_layout Quote
+ERROR:
+\emph on
+clientname
+\emph default
+:
+\emph on
+function
+\emph default
+:
+\emph on
+error message
+\end_layout
+
+\begin_layout Standard
+where the 
+\emph on
+error message
+\emph default
+ should contain an explanation of why the command failed.
+\end_layout
+
+\begin_layout Standard
+Examples:
+\end_layout
+
+\begin_layout LyX-Code
+echo "LYXCMD:test:beginning-of-buffer:" >~/.lyxpipe.in
+\begin_inset Newline newline
+\end_inset
+
+echo "LYXCMD:test:get-xy:" >~/.lyxpipe.in
+\begin_inset Newline newline
+\end_inset
+
+read a <~/.lyxpipe.out
+\begin_inset Newline newline
+\end_inset
+
+echo $a
+\end_layout
+
+\begin_layout Section
+Notification
+\end_layout
+
+\begin_layout Standard
+LyX can notify clients of events going on asynchronously.
+ Currently it will only do this if the user binds a key sequence with the
+ function 
+\begin_inset Quotes eld
+\end_inset
+
+notify
+\begin_inset Quotes erd
+\end_inset
+
+.
+ The format of the string LyX sends is as follows:
+\end_layout
+
+\begin_layout Quote
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+NOTIFY:
+\end_layout
+
+\end_inset
+
+
+\emph on
+key-sequence
+\end_layout
+
+\begin_layout Standard
+where 
+\emph on
+key-sequence
+\emph default
+ is the printed representation of the key sequence that was actually typed
+ by the user.
+\end_layout
+
+\begin_layout Standard
+This mechanism can be used to extend LyX's command set and implement macros.
+ Bind some key sequence to 
+\begin_inset Quotes eld
+\end_inset
+
+notify
+\begin_inset Quotes erd
+\end_inset
+
+.
+ Then start a client that listens on the output pipe, dispatches the command
+ according to the sequence, and starts a function that may use LyX calls
+ and LyX requests to issue a command or a series of commands to LyX.
+\end_layout
+
+\begin_layout Section
+The simple LyX Server Protocol
+\end_layout
+
+\begin_layout Standard
+LyX implements a simple protocol that can be used for session management.
+ All messages are of the form
+\end_layout
+
+\begin_layout Quote
+LYXSRV:
+\emph on
+clientname
+\emph default
+:
+\emph on
+protocol message
+\end_layout
+
+\begin_layout Standard
+where 
+\emph on
+protocol message
+\emph default
+ can be 
+\begin_inset Quotes eld
+\end_inset
+
+hello
+\begin_inset Quotes erd
+\end_inset
+
+ or 
+\begin_inset Quotes eld
+\end_inset
+
+bye
+\begin_inset Quotes erd
+\end_inset
+
+.
+ If 
+\begin_inset Quotes eld
+\end_inset
+
+hello
+\begin_inset Quotes erd
+\end_inset
+
+ is received from a client, LyX will report back to inform the client that
+ it's listening to it's messages, while 
+\begin_inset Quotes eld
+\end_inset
+
+bye
+\begin_inset Quotes erd
+\end_inset
+
+ sent from LyX will inform clients that LyX is closing.
+\end_layout
+
+\begin_layout Section
+Reverse DVI/PDF search
+\end_layout
+
+\begin_layout Standard
+Some DVI/PDF viewers
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+The following viewers offer the reverse PDF search feature: Okular on KDE/Linux,
+ Skim on Mac OSX and SumatraPDF on Windows.
+\end_layout
+
+\end_inset
+
+ provide 
+\emph on
+reverse search
+\emph default
+ facility (also called 
+\emph on
+inverse search
+\emph default
+).
+ This means that you can tell LyX to put the cursor to a specific line in
+ the document by clicking at the respective position in the DVI/PDF output.
+ To achieve this, the viewer must be able to communicate with LyX.
+ This is done via the LyX server either by using the named pipe (
+\emph on
+lyxpipe
+\emph default
+), or the UNIX domain socket (
+\emph on
+lyxsocket
+\emph default
+) that LyX creates in its temporary directory (this is the way the 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+lyxclient
+\end_layout
+
+\end_inset
+
+ program communicates with LyX).
  In some cases, you need a helper script that mediates between the viewer
  and LyX, in others, the viewer can communicate with LyX directly.
  This depends on the selected viewer and on your operating system.
@@ -17914,9 +18479,9 @@ Version Control in LyX
 \begin_layout Standard
 by
 \noun on
- Lars Gullik Bjønnes, 
+ Lars Gullik Bjønnes 
 \noun default
-updated by 
+and 
 \noun on
 Pavel Sanda
 \end_layout
@@ -17934,7 +18499,7 @@ A friend of mine wanted to try LyX for a group project.
  This has now been done.
  LyX now supports some of the most basic RCS commands.
  If you need to something a bit more sophisticated you will have to do that
- manually in an xterm.
+ manually in a terminal.
 \end_layout
 
 \begin_layout Standard
@@ -17965,7 +18530,7 @@ man rcsintro
 Later basic CVS/SVN support was added.
  You should be familiar with CVS/SVN usage before start using it under LyX.
  Most of the log messages are not currently displayed after operations -
- you can check them in terminal window if unsure.
+ you can check them in Messages pane if unsure.
 \end_layout
 
 \begin_layout Standard
@@ -18161,6 +18726,21 @@ man rlog
  for more info.
 \end_layout
 
+\begin_layout Subsubsection
+Revision info
+\end_layout
+
+\begin_layout Standard
+LyX supports RCS version number information (only), see 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:VCS-Revision-Information"
+
+\end_inset
+
+ for details.
+\end_layout
+
 \begin_layout Subsection
 CVS commands in LyX
 \end_layout
@@ -18177,6 +18757,8 @@ Version
 Control
 \family default
  submenu.
+ Focus of the development moved to SVN support, so please use it instead
+ of CVS if possible.
 \end_layout
 
 \begin_layout Subsubsection
@@ -18431,430 +19013,713 @@ In case locking is not enabled.
  See Section 
 \begin_inset CommandInset ref
 LatexCommand ref
-reference "subsec:SVN-File-Locking"
+reference "subsec:SVN-File-Locking"
+
+\end_inset
+
+.
+\end_layout
+
+\end_inset
+
+\family typewriter
+svn commit -q -m"<description>" <file-name>
+\end_layout
+
+\begin_layout Subsubsection
+
+\family sans
+Check Out For Edit
+\end_layout
+
+\begin_layout Standard
+Updates the changes of this file from the repository.
+ Be sure you understand SVN merging and conflicts resolving before using
+ this function, because all conflicts has to be resolved manually by you!
+\end_layout
+
+\begin_layout Standard
+SVN command:
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+Ditto.
+\end_layout
+
+\end_inset
+
+\family typewriter
+svn update --non-interactive 
+\begin_inset Quotes eld
+\end_inset
+
+<file-name>
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+
+\family sans
+Revert To Repository Version
+\end_layout
+
+\begin_layout Standard
+This will discard all changes made to the document since the last check
+ in.
+ You get a warning before changes are discarded.
+\end_layout
+
+\begin_layout Standard
+SVN command: 
+\family typewriter
+svn revert -q 
+\begin_inset Quotes eld
+\end_inset
+
+<file-name>
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:SVN-Repo-Update"
+
+\end_inset
+
+Update of the local directory checkout from repository
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+Note that this command will work only with subversion 
+\begin_inset Formula $\geqq1.5$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+All the commands above have one shortcomming - they deal with the current
+ document only.
+ Once your document contains pictures, includes external 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.tex
+\end_layout
+
+\end_inset
+
+ files and so on administration becomes more complicated.
+ LyX now supports updating the whole tree in which resides the document
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+One need to organize the files structure so that all external files are
+ in the same directory or subdirectories of the document.
+\end_layout
+
+\end_inset
+
+.
+ This become especially useful once you cooperate with people which neither
+ know about subversion management nor they have ambition to commit additional
+ material to the repository.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+Update local directory from repository
+\end_layout
+
+\end_inset
+
+ command updates the whole directory and in case of merge conflicts local
+ version of the files are left, so no unintended data loss occurs.
+ If local changes are detected user is warned before update starts.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+SVN
+\begin_inset space ~
+\end_inset
+
+commands: 
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+svn diff $path
+\end_layout
+
+\end_inset
+
+ (Ask if changes are detected.)
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+svn update --accept mine-full $path
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+where 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+$path
+\end_layout
+
+\end_inset
+
+ stands for the path to the document.
+\end_layout
+
+\begin_layout Subsubsection
+
+\family sans
+Show History
+\end_layout
+
+\begin_layout Standard
+This show the complete history of the SVN document.
+ The output of 
+\family typewriter
+svn log 
+\begin_inset Quotes eld
+\end_inset
+
+<file-name>
+\begin_inset Quotes erd
+\end_inset
+
+
+\family default
+ is shown in a browser.
+\end_layout
+
+\begin_layout Subsubsection
+File Locking
+\begin_inset CommandInset label
+LatexCommand label
+name "subsec:SVN-File-Locking"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The file exchange through various revision control systems brings the problem
+ of merge conflicts in case two different users try to edit the same (parts
+ of) document.
+ When such conflict happens it needs manual resolving and one reasonable
+ alternative is to provide some kind of locking mechanism, which guarantees
+ that only one user is allowed to edit file at the given time.
+\end_layout
+
+\begin_layout Standard
+SVN has two mechanisms to provide such kind of mutual exclusivity for file
+ access - locks and automatical setting of write permissions (see sec.
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "subsec:Automatical-Locking-Property"
 
 \end_inset
 
-.
+) based on 
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+svn:needs-lock
 \end_layout
 
 \end_inset
 
-\family typewriter
-svn commit -q -m"<description>" <file-name>
+ file svn property
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+http://svnbook.red-bean.com/en/1.2/svn.advanced.locking.html
 \end_layout
 
-\begin_layout Subsubsection
+\end_inset
 
-\family sans
-Check Out For Edit
+.
+ In a case this property is detected for a given document LyX starts to
+ use SVN locks for document editing automatically and the whole check-in/out
+ mechanism switches to the same regimen as for RCS.
+ This in particular means there are two different modes how file is used
+ in LyX:
 \end_layout
 
-\begin_layout Standard
-Updates the changes of this file from the repository.
- Be sure you understand SVN merging and conflicts resolving before using
- this function, because all conflicts has to be resolved manually by you!
+\begin_layout Itemize
+Unlocked state.
+ The loaded file is in the read-only mode.
+ For editation on needs to check-out.
+\emph on
+Check-out
+\emph default
+ consists of update from repository and gaining write lock.
+ If the lock is not possible to obtain, we remain in unlocked state.
 \end_layout
 
-\begin_layout Standard
-SVN command:
+\begin_layout Itemize
+Locked state.
+ The loaded file is in the 'normal' edit mode.
+ No other user is allowed to edit the file.
+\emph on
+Check-in
+\emph default
+ consists of commiting changes and releasing write-lock.
+ If no changes have been made to the document, no commit will be produced
 \begin_inset Foot
 status collapsed
 
 \begin_layout Plain Layout
-Ditto.
+Don't be puzzled by the fact that you will be asked for commit message anyway.
 \end_layout
 
 \end_inset
 
+ and only the write-lock will be released.
+\end_layout
+
+\begin_layout Standard
+SVN commands:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Check-in:
 \family typewriter
-svn update 
-\begin_inset Quotes eld
+ svn commit -q -m"<description>" "<file-name>"
+\begin_inset Newline newline
 \end_inset
 
-<file-name>
-\begin_inset Quotes erd
-\end_inset
+svn unlock "<file-name>"
+\end_layout
 
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Check-out: 
+\family typewriter
+svn update "<file-name>"
+\begin_inset Newline newline
+\end_inset
 
+svn lock "<file-name>"
 \end_layout
 
 \begin_layout Subsubsection
 
-\family sans
-Revert To Repository Version
-\end_layout
+\family typewriter
+\begin_inset CommandInset label
+LatexCommand label
+name "subsec:Automatical-Locking-Property"
 
-\begin_layout Standard
-This will discard all changes made to the document since the last check
- in.
- You get a warning before changes are discarded.
+\end_inset
+
+
+\family default
+Automatical Locking Property
 \end_layout
 
 \begin_layout Standard
-SVN command: 
-\family typewriter
-svn revert -q 
-\begin_inset Quotes eld
+The above mentioned automatical setting of write permissions of the .lyx
+ file can be set through
+\family sans
+\bar under
+ F
+\bar default
+ile\SpecialChar \menuseparator
+
+\bar under
+V
+\bar default
+ersion
+\begin_inset space ~
 \end_inset
 
-<file-name>
-\begin_inset Quotes erd
+Control\SpecialChar \menuseparator
+
+\bar under
+T
+\bar default
+oggle locking property
+\family default
+.
+ This command is active only when the file is not locked on the svn server
+ (i.e.
+ you need to check-out before proceeding).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+SVN
+\begin_inset space ~
 \end_inset
 
+commands:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Set:
+\family typewriter
+ svn propset svn:needs-lock ON "<file-name>"
+\end_layout
 
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Unset: 
+\family typewriter
+svn propdel svn:needs-lock "<file-name>"
 \end_layout
 
 \begin_layout Subsubsection
 \begin_inset CommandInset label
 LatexCommand label
-name "sub:SVN-Repo-Update"
-
-\end_inset
-
-Update of the local directory checkout from repository
-\begin_inset Foot
-status collapsed
+name "sub:VCS-Revision-Information"
 
-\begin_layout Plain Layout
-Note that this command will work only with subversion 
-\begin_inset Formula $\geqq1.5$
 \end_inset
 
-
+Revision Information in Documents
 \end_layout
 
-\end_inset
-
+\begin_layout Standard
+There are more possibilities how to activate revision information in our
+ document.
+\end_layout
 
+\begin_layout Itemize
+LyX supports directly:
 \end_layout
 
-\begin_layout Standard
-All the commands above have one shortcomming - they deal with the current
- document only.
- Once your document contains pictures, includes external 
+\begin_deeper
+\begin_layout Itemize
+tree revision information (
 \begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-.tex
+vcs-tree-revision
 \end_layout
 
 \end_inset
 
- files and so on administration becomes more complicated.
- LyX now supports updating the whole tree in which resides the document
-\begin_inset Foot
+).
+ The result is the output of the 
+\begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-One need to organize the files structure so that all external files are
- in the same directory or subdirectories of the document.
+svnversion
 \end_layout
 
 \end_inset
 
-.
- This become especially useful once you cooperate with people which neither
- know about subversion management nor they have ambition to commit additional
- material to the repository.
+ command, the following table gives you an idea, how to read the results.
 \end_layout
 
 \begin_layout Standard
-\begin_inset Flex CharStyle:Code
-status collapsed
+\align center
+\begin_inset Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 \begin_layout Plain Layout
-Update local directory from repository
+Output
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
 
- command updates the whole directory and in case of merge conflicts local
- version of the files are left, so no unintended data loss occurs.
- If local changes are detected user is warned before update starts.
+\begin_layout Plain Layout
+Meaning
 \end_layout
 
-\begin_layout Labeling
-\labelwidthstring 00.00.0000
-SVN
-\begin_inset space ~
-\end_inset
-
-commands: 
-\begin_inset space ~
 \end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
+\begin_layout Plain Layout
+4123:4168
+\end_layout
 
-\begin_inset Newline newline
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
 
+\begin_layout Plain Layout
+mixed revision working copy
+\end_layout
 
-\begin_inset Flex CharStyle:Code
-status collapsed
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 \begin_layout Plain Layout
-svn diff $path
+4168M
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+modified working copy
+\end_layout
 
- (Ask if changes are detected.)
-\begin_inset Newline newline
 \end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
+\begin_layout Plain Layout
+4123S
+\end_layout
 
-\begin_inset Flex CharStyle:Code
-status collapsed
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
 
 \begin_layout Plain Layout
-svn update --accept mine-full $path
+switched working copy
 \end_layout
 
 \end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
-
+\begin_layout Plain Layout
+4123P
 \end_layout
 
-\begin_layout Standard
-where 
-\begin_inset Flex CharStyle:Code
-status collapsed
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
 
 \begin_layout Plain Layout
-$path
+partial working copy, from a sparse checkout
 \end_layout
 
 \end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
- stands for the path to the document.
+\begin_layout Plain Layout
+4123:4168MS
 \end_layout
 
-\begin_layout Subsubsection
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
 
-\family sans
-Show History
+\begin_layout Plain Layout
+mixed revision, modified, switched working copy
 \end_layout
 
-\begin_layout Standard
-This show the complete history of the SVN document.
- The output of 
-\family typewriter
-svn log 
-\begin_inset Quotes eld
 \end_inset
+</cell>
+</row>
+</lyxtabular>
 
-<file-name>
-\begin_inset Quotes erd
 \end_inset
 
 
-\family default
- is shown in a browser.
 \end_layout
 
-\begin_layout Subsubsection
-File Locking
-\begin_inset CommandInset label
-LatexCommand label
-name "subsec:SVN-File-Locking"
+\begin_layout Itemize
+file revision information.
+ The result comes from parsing the output of 
+\begin_inset Flex CharStyle:Code
+status collapsed
 
+\begin_layout Plain Layout
+svn
+\begin_inset space ~
 \end_inset
 
+info
+\begin_inset space ~
+\end_inset
 
-\end_layout
+--xml
+\begin_inset space ~
+\end_inset
 
-\begin_layout Standard
-The file exchange through various revision control systems brings the problem
- of merge conflicts in case two different users try to edit the same (parts
- of) document.
- When such conflict happens it needs manual resolving and one reasonable
- alternative is to provide some kind of locking mechanism, which guarantees
- that only one user is allowed to edit file at the given time.
+file.lyx
 \end_layout
 
-\begin_layout Standard
-SVN has two mechanisms to provide such kind of mutual exclusivity for file
- access - locks and automatical setting of write permissions (see sec.
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "subsec:Automatical-Locking-Property"
-
 \end_inset
 
-) based on 
-\begin_inset Flex CharStyle:Code
-status collapsed
-
-\begin_layout Plain Layout
-svn:needs-lock
+.
+ Supported flags are:
 \end_layout
 
-\end_inset
-
- file svn property
-\begin_inset Foot
-status open
+\begin_deeper
+\begin_layout Itemize
+version number of the last commit (
+\begin_inset Flex CharStyle:Code
+status collapsed
 
 \begin_layout Plain Layout
-http://svnbook.red-bean.com/en/1.2/svn.advanced.locking.html
+vcs-revision
 \end_layout
 
 \end_inset
 
-.
- In a case this property is detected for a given document LyX starts to
- use SVN locks for document editing automatically and the whole check-in/out
- mechanism switches to the same regimen as for RCS.
- This in particular means there are two different modes how file is used
- in LyX:
-\end_layout
-
-\begin_layout Itemize
-Unlocked state.
- The loaded file is in the read-only mode.
- For editation on needs to check-out.
-\emph on
-Check-out
-\emph default
- consists of update from repository and gaining write lock.
- If the lock is not possible to obtain, we remain in unlocked state.
+)
 \end_layout
 
 \begin_layout Itemize
-Locked state.
- The loaded file is in the 'normal' edit mode.
- No other user is allowed to edit the file.
-\emph on
-Check-in
-\emph default
- consists of commiting changes and releasing write-lock.
- If no changes have been made to the document, no commit will be produced
-\begin_inset Foot
+author of the last commit (
+\begin_inset Flex CharStyle:Code
 status collapsed
 
 \begin_layout Plain Layout
-Don't be puzzled by the fact that you will be asked for commit message anyway.
+vcs-author
 \end_layout
 
 \end_inset
 
- and only the write-lock will be released.
-\end_layout
-
-\begin_layout Standard
-SVN commands:
+)
 \end_layout
 
-\begin_layout Labeling
-\labelwidthstring 00.00.0000
-Check-in:
-\family typewriter
- svn commit -q -m"<description>" "<file-name>"
-\begin_inset Newline newline
-\end_inset
+\begin_layout Itemize
+date of the last commit (
+\begin_inset Flex CharStyle:Code
+status collapsed
 
-svn unlock "<file-name>"
+\begin_layout Plain Layout
+vcs-date
 \end_layout
 
-\begin_layout Labeling
-\labelwidthstring 00.00.0000
-Check-out: 
-\family typewriter
-svn update "<file-name>"
-\begin_inset Newline newline
 \end_inset
 
-svn lock "<file-name>"
+)
 \end_layout
 
-\begin_layout Subsubsection
+\begin_layout Itemize
+time of the last commit (
+\begin_inset Flex CharStyle:Code
+status collapsed
 
-\family typewriter
-\begin_inset CommandInset label
-LatexCommand label
-name "subsec:Automatical-Locking-Property"
+\begin_layout Plain Layout
+vcs-time
+\end_layout
 
 \end_inset
 
-
-\family default
-Automatical Locking Property
+)
 \end_layout
 
+\end_deeper
 \begin_layout Standard
-The above mentioned automatical setting of write permissions of the .lyx
- file can be set through
-\family sans
-\bar under
- F
-\bar default
-ile\SpecialChar \menuseparator
-
-\bar under
-V
-\bar default
-ersion
-\begin_inset space ~
-\end_inset
-
-Control\SpecialChar \menuseparator
+You can obtain this info via InsetInfo (e.g.
+\begin_inset Flex CharStyle:Code
+status collapsed
 
-\bar under
-T
-\bar default
-oggle locking property
-\family default
-.
- This command is active only when the file is not locked on the svn server
- (i.e.
- you need to check-out before proceeding).
+\begin_layout Plain Layout
+info-insert buffer vcs-date
 \end_layout
 
-\begin_layout Labeling
-\labelwidthstring 00.00.0000
-SVN
-\begin_inset space ~
 \end_inset
 
-commands:
-\end_layout
-
-\begin_layout Labeling
-\labelwidthstring 00.00.0000
-Set:
-\family typewriter
- svn propset svn:needs-lock ON "<file-name>"
-\end_layout
+).
+ The information will be available only when you have the file stored under
+ svn managment (i.e.
+ the 
+\begin_inset Flex CharStyle:Code
+status collapsed
 
-\begin_layout Labeling
-\labelwidthstring 00.00.0000
-Unset: 
-\family typewriter
-svn propdel svn:needs-lock "<file-name>"
+\begin_layout Plain Layout
+.svn
 \end_layout
 
-\begin_layout Subsubsection
-Revision Information in Documents
-\end_layout
+\end_inset
 
-\begin_layout Standard
-Currently there is no way how to provide such kind of information directly
- from LyX.
- There are possibilities how to activate it with the help of svn features,
- but each has its own drawbacks.
+ directory is available with your document).
 \end_layout
 
-\begin_layout Standard
-One possibility is to use svn keywords
+\end_deeper
+\begin_layout Itemize
+Another---a hacking one---possibility is to use svn keywords
 \begin_inset Foot
 status collapsed
 
@@ -18924,32 +19789,7 @@ $Rev: 59 $
  Thirdly you get the whole 'Rev: 59' string in your document instead of
  the plain number.
  Until subversion implements user's custom keywords it will be hard to use
- this approach reliably or let LyX to support it directly .
-\end_layout
-
-\begin_layout Standard
-The second possibility would be to write your own external-material template
- which calls either 
-\begin_inset Flex CharStyle:Code
-status collapsed
-
-\begin_layout Plain Layout
-svnversion
-\end_layout
-
-\end_inset
-
- utility or parses the output of 
-\begin_inset Flex CharStyle:Code
-status collapsed
-
-\begin_layout Plain Layout
-svn info file.lyx
-\end_layout
-
-\end_inset
-
- command and returns the result back, when typeseting the document.
+ this approach reliably or let LyX to support it directly.
 \end_layout
 
 \begin_layout Subsection
@@ -19211,16 +20051,10 @@ puttygen
  In case the SVN server runs on linux, note that the format of the public
  key is not compatible with linux openssh and you will need to direcly copy-past
 e the key from the “
-\begin_inset Flex CharStyle:Emph
-status collapsed
-
-\begin_layout Plain Layout
-Public key for pasting into OpenSSH authorized_keys file:
-\end_layout
-
-\end_inset
-
-” edit field into the server's 
+\emph on
+Public key for pasting into OpenSSH authorized_keys file
+\emph default
+:” edit field into the server's 
 \begin_inset Flex CharStyle:Code
 status collapsed