Fix Seirawan gating at Rook square in PGN castling moves
[xboard.git] / xboard.texi
index 8179a2f..81c46ae 100644 (file)
@@ -243,16 +243,16 @@ appropriate command from the Action menu, not @samp{New Game}.
 Similar to @samp{New Game}, but allows you to specify a particular initial position 
 (according to a standardized numbering system)
 in chess variants which use randomized opening positions (e.g. Chess960).
-@itemx shuffle
+@item shuffle
 @cindex shuffle, Menu Item
 Ticking @samp{shuffle} will cause the current variant to be played
 with shuffled initial position.
 Shuffling will preserve the possibility to castle in the way allowed by the variant.
-@itemx Fischer castling
+@item Fischer castling
 @cindex Fischer castling, menu item
 Ticking @samp{Fischer castling} will allow castling with Kings and Rooks
 that did not start in their normal place, as in Chess960.
-@itemx Start-position number
+@item Start-position number
 @itemx randomize
 @itemx pick fixed
 @cindex randomize, Menu Item
@@ -738,45 +738,67 @@ creates an extra window that you can use for typing in ICS commands.
 The input box is especially useful if you want to type in something long or do
 some editing on your input, because output from ICS doesn't get mixed
 in with your typing as it would in the main terminal window.
-@item ICS Chat/Console
+@item ICS/Chat Console
 @cindex ICS Chat/Console, Menu Item
 This menu item opens a window in which you can interact with the ICS,
-and conduct upto 5 chats with other ICS users (or channels),
 so you don't have to use the messy xterm from which you launched XBoard
 for that.
 The window has a text entry at the bottom where you can type your
 commands and messages unhindered by the stream of ICS output.
 The latter will be displayed in a large pane above the input field,
 the ICS Console.
-This pane can be vertically split into two, however, where half of it
-is then used to display selected ICS output, belonging to a chat with
-another user, or output from an ICS channel.
-Such output will then not appear in the Console pane.
-
-To use the window, write the name of your chat partner, the channel number,
-or the words 'shouts', 'whispers', 'cshouts' in the upper field
-(ending with <Enter>).
-Everything you type in the lowest field will then automatically be sent to
-the mentioned party, while everything that party sends to you will
-appear in the central text pane, rather than appear in the ICS console.
-The row of buttons allow you to choose between chat;
-to start a new chat, just select an empty button,
-and complete the @samp{Chat partner} field.
-There are several keyboard accelerators to control this window:
-Ctrl-H will hide the private chat, and dedicates the input field to
-giving ICS commands.
-Ctrl-E will erase the current chat and chat partner.
-Ctrl-N will open a new chat with a yet unspecified partner.
-Ctrl-O will open a new chat with the last person from which you received
-a tell in the ICS console pane.
-<Esc> will transfer keyboard focus to the board window,
-allowing you to invoke menu items through accelerator keys;
-typing a printable character there transfers focus back to the input field
-of the chat window.
-<Tab> will switch to another busy chat,
-giving priority to those with content you have not seen yet.
-(The buttons for selecting such chats turn orange.)
 Up and down arrow keys can be used to recall previous input lines.
+Typing an <Esc> character in the input field transfers focus back
+to the board window (so you could operate the menus there
+through accelerator keys).
+Typing a printable character in the board window transfers focus
+back to the input field of the @samp{ICS Chat/Console} window.
+@item Chats
+@cindex Chats
+There is a row of buttons at the top of the @samp{ICS Chat/Console} dialog,
+which can be used to navigate between upto 5 'chats'
+with other ICS users (or channels).
+These will switch the window to 'chat mode',
+where the ICS output pane is vertically split to divert messages from
+a specific user or ICS channel to the lower half.
+Lines typed in the input field will then be interpreted as messages
+to be sent to that user or channel,
+(automatically prefixed with the apporpriate ICS command and user name)
+rather than as commands to the ICS.
+Chats will keep collecting ICS output intended for them even when not displayed,
+and their buttons will turn orange to alert the user there has been activity.
+Typing <Tab> in the input field will switch to another active chat,
+giving priority to those with content you have not seen yet.
+@item New Chat
+@cindex New Chat, Menu Item
+Buttons for chats currently not assigned to a user or channel
+will carry the text @samp{New Chat}, and pressing them will
+switch to chat mode, enabling you to enter the user name or channel number
+you want to use it for.
+Typing Ctrl-N in the input field is a keyboard equivalent.
+@item Chat partner
+@cindex Chat partner, Menu Item
+To (re-)assign a chat, write the name of your chat partner, the channel number,
+or the words 'shouts', 'whispers', 'cshouts' in the @samp{Chat partner} text entry
+(ending with <Enter>!).
+Typing Ctrl-O in the input field at the bottom of the window will
+open a chat with the person that last sent you a 'tell' that was printed
+in the ICS Console output pane.
+The @samp{ICS text menu} can contain a button @samp{Open Chat (name)}
+that can be used to open a chat with as partner the word/number you
+right-clicked in the output pane to pop up this menu. 
+@item End Chat
+@cindex End Chat, Menu Item
+This button, only visible when the chat pane is open,
+will clear the @samp{Chat partner} field, so that the chat can be
+assigned to a new user or channel.
+Typing Ctrl-E in the input field is a keyboard equivalent.
+@item Hide
+@cindex Hide, Menu Item
+This button, only visible when the chat pane is open,
+will close the latter, so you can use the input field
+to give commands to the ICS again.
+Typing Ctrl-H in the input field is a keyboard equivalent.
 @item ICS text menu
 @cindex ICS text menu, Menu Item
 Brings up a menu that is user-configurable through the @code{icsMenu} option.
@@ -789,6 +811,23 @@ of the ICS Chat/Console window.
 In that case the word that was clicked can be incorporated in the message
 sent to the ICS. E.g. to challenge a player whose name you click for a game,
 or prepare for sending him a message through a 'tell' commands.
+@item Edit ICS menu
+@cindex Edit ICS menu, Menu Item
+Brings up an edit box with the definition of the @samp{ICS text menu},
+so you can adapt its appearance to your needs.
+The menu is defined by a semi-colon-separated list,
+each button through a pair of items in it.
+The first item of each pair is the text on the button,
+the second the text to be sent when the button is pressed.
+The word '$input' in the text will put that text in the input field
+of the @samp{ICS Chat/Console} with the cursor in that place,
+the word '$name' will be replaced by the word right-clicked
+to pop up the text menu.
+@item Edit Theme List
+@cindex Edit Theme List
+Brings up an edit box with the definitions of the themes
+shown in the listbox of the @samp{Board} dialog,
+so you can delete, re-order or alter themes defined previously.
 @item Board
 @cindex Board, Menu Item
 Summons a dialog where you can customize the look of the chess board.
@@ -892,6 +931,12 @@ by typing one in the text entry in the lower-left of the dialog,
 and closing the latter with OK.
 It will then appear in the themes listbox next time you open the dialog,
 where you can recall the complete settings combination with a double-click.
+@item Fonts
+@cindex Fonts, Menu Item
+Pops up a dialog where you can set the fonts used in the main elements of various windows.
+Pango font names can be typed for each window type,
+and behind each text entry there are buttons to adjust the point size,
+and toggle the 'bold' or 'italic' attributes of the font.
 @item Game List Tags
 @cindex Game List Tags, Menu Item
 a duplicate of the Game List dialog in the Options menu.
@@ -1280,25 +1325,72 @@ that SMP engines can use.
 The shifted @kbd{Alt+U} key is a keyboard equivalent.
 Older XBoard/WinBoard engines might not respond to these settings,
 but UCI engines always should.
-The @samp{EGT path} field corresponds to the setting of the
-@code{egtFormats} option to specify where to find tablebases
-of various flavors. See the description of this option for the required syntax.
-
-It is also possible to specify a GUI opening book here, i.e. an opening
-book that XBoard consults for any position a playing engine gets in.
-It then forces the engine to play the book move, rather than to think up its own,
-if that position is found in the book.
-The book can switched on and off independently for either engine.
-The way book moves are chosen can be influenced through the settings of
-book depth and variety.
-After both sides have played more moves than the specified depth,
-the book will no longer be consulted.
+@item Maximum Number of CPUs per Engine
+@cindex Max. Number of CPUs, Menu Item
+Specifies the number of search threads any engine can maximally use.
+Do not set it to a number larger than the number of cores your computer has.
+(Or half of it when you want two engines to run simultaneously,
+as in a Two-Machines game with @samp{Ponder Next Move} on.)
+@item Polyglot Directory
+@item Hash-Table Size
+@cindex Hash-Table Size
+Specifies the maximum amount of memory (RAM) each engine is allowed to use
+for storing info on positions it already searched,
+so it would not have to search them again.
+Do not set it so that it is more than half
+(or if you use two engines, more than a quarter)
+of the memory your computer has,
+or it would slow the engines down by an extreme amount.
+@item EGTB Path
+@cindex EGTB Path, Menu Item
+Sets the value of the @code{egtFormats} option, which specifies
+where on your computer the files for End-Game Tables are stored.
+It must be a comma-separated list of path names,
+the path for each EGT flavor prefixed with the name of the latter
+and a colon. E.g. "nalimov:/home/egt/dtm,syzygy:/home/egt/dtz50".
+The path names after the colon will be sent to the engines
+that say they can use the corresponding EGT flavor.
+@item EGTB Cache Size
+@cindex EGTB Cache Size, Menu Item
+Specifies the amount of memory the engine should use to
+buffer end-game information.
+Together with the @samp{Hash-Table Size} this determines how
+much memory the engine is allowed to use in total.
+@item Use GUI Book
+@itemx Opening-Book Filename
+@cindex Use GUI Book, Menu Item
+@cindex Opening-Book Filename, Menu Item
+The @samp{Opening-Book Filename} specifies an opening book
+in Polyglot format (usually a .bin file),
+from which XBoard can play moves on behalf of the engine.
+This is also the book file on which the @samp{Edit Book}
+and @samp{Save Games as Book} menu items operate.
+A checkbox @samp{Use GUI Book} can be used to temporarily
+disable the book without losing the setting.
+(This does not prevent editing or saving games on it!)
+@item Book Depth
+@itemx Book Variety
+@cindex Book Depth, Menu Item
+@cindex Book Variety, Menu Item
+The way moves are selected from the book can be controlled by two options.
+@samp{Book Depth} controls for how deep into the game the book
+will be consulted (measured in full moves).
+@samp{Book Variety} controls the likelihood of playing weaker moves.
 When the variety is set to 50, moves will be played with the probability
 specified in the book.
 When set to 0, only the move(s) with the highest probability will be played.
 When set to 100, all listed moves will be played with equal pobability.
 Other settings interpolate between that.
-
+@item Engine #1 Has Own Book
+@itemx Engine #2 Has Own Book
+@cindex Engine Has Own Book
+These checkboxes control on a per-engine basis
+whether XBoard will consult the opening book for them.
+If ticked, XBoard will never play moves from its GUI book,
+giving the engine the opportunity to use its own.
+These options are automatically set whenever you load an engine,
+based on the setting of @samp{Must not use GUI book}
+when you installed that through the @samp{Load Engine} menu dialog.
 @item Hint
 @cindex Hint, Menu Item
 Displays a move hint from the chess engine.
@@ -1340,6 +1432,10 @@ The maximum number of displayed engine names is set by the
 @section Options Menu
 @cindex Menu, Options
 @cindex Options Menu
+@section Mute all Sounds
+@cindex Mute sounds, Menu Item
+Ticking this menu item toggles all sounds XBoard can make on or off,
+without losing their definitions.
 @section General Options
 @cindex General Options, Menu Item
 The following items to set option values appear in the dialog
@@ -1936,9 +2032,9 @@ pairing engine must be specified through the @code{pairingEngine} option.
 Each Swiss round will be considered a tourney cycle in that case.
 Default:0
 @item Number of tourney cycles
-@itemx Default number of Games
+@itemx Default Number of Games in Match
 @cindex Number of tourney cycles, Menu Item
-@cindex Default number of Games, Menu Item
+@cindex Number of Games in Match, Menu Item
 You can specify tourneys where every two opponents play each other multiple times. 
 Such multiple games can be played in a row, 
 as specified by the ‘number of games per pairing’, 
@@ -1948,7 +2044,15 @@ The total number of times two engines meet will be the product of these two.
 Default is 1 cycle;
 the number of games per pairing is the same as the default number of match games, 
 stored in your settings file through the @code{defaultMatchGames} option.
-@item Save Tourney Games
+@item Pause between Match Games
+@cindex Pause between Match Games, Menu Item
+Time (in milliseconds) XBoard waits before starting a new game after
+a previous match or tournament game finishes.
+Such a waiting period is important for engines that do not support 'ping',
+as these sometimes still produce a move long after the game finished because
+of the opponent resigning, which would be mistaken for a move in the next
+game if that had already started.
+@item Save Tourney Games on
 @cindex Save Tourney Games, Menu Item
 File where the tournament games are saved
 (duplicate of the item in the @samp{Save Game Options}).
@@ -1956,7 +2060,7 @@ File where the tournament games are saved
 @itemx File with Start Positions
 @itemx Game Number
 @itemx Position Number
-@itemx Rewind Index after
+@itemx Rewind Index after this many Games
 @cindex Game File with Opening Lines, Menu Item
 @cindex File with Start Positions, Menu Item
 @cindex Game Number, Menu Item
@@ -1975,8 +2079,8 @@ In this case the first (odd) games will randomly select from the book,
 but the second (even) games will select the same moves from the book as the previous game.
 (Note this leads to the same opening only if both engines use the GUI book!)
 Default: No game or position file will be used. The default index if such a file is used is 1.
-@item Disable own engine books be default
-@cindex Disable own engine books be default, Menu Item
+@item Disable own engine books by default
+@cindex Disable own engine books by default, Menu Item
 Setting this option reverses the default situation for use of the GUI opening book
 in tournaments from what it normally is, namely not using it.
 So unless the engine is installed with an option to explicitly specify it should
@@ -2400,6 +2504,11 @@ false, the clocks are not shown, but the side that is to play next
 is still highlighted. Also, unless @code{searchTime}
 is set, the chess engine still keeps track of the clock time and uses it to
 determine how fast to make its moves.
+@item -shoMoveTime true/false
+@cindex showMoveTime, option
+When this option is set the time that has been thought about the current move
+will be displayed behind the remaining time in parentheses (in seconds).
+Default: false.
 @item -st or -searchTime minutes[:seconds]
 @cindex st, option
 @cindex searchTime, option
@@ -3372,7 +3481,14 @@ the @samp{Load Position} menu item.
 If this option is set, XBoard saves depth, score and time used for each 
 move that the engine found as a comment in the PGN file.
 Default: false.
+@item -pgnTimeLeft true/false
+@cindex pgnTimeLeft, option
+If this option is set, XBoard will save the remaining clock time for
+the player that has just moved as part of the @samp{pgnExtendedInfo},
+rather than the time that player thought about his latest move.
+Default: false.
 @item -pgnEventHeader string
+Default: false.
 @cindex pgnEventHeader, option
 Sets the name used in the PGN event tag to string. 
 Default: "Computer Chess Game".