Update texi file
[xboard.git] / xboard.texi
index c6862d8..577b9d8 100644 (file)
@@ -154,6 +154,14 @@ Right-clicking off dots will refresh the graph.
 
 Most other XBoard commands are available from the menu bar. The most
 frequently used commands also have shortcut keys or on-screen buttons.
+These shortcut keystrokes are mostly non-printable characters.
+Typing a letter or digit while the board window has focus
+will bring up a type-in box with the typed letter already in it.
+You can use that to type a move in siuations where it is your
+turn to enter a move,
+type a move number to call up the position after that move
+in the display,
+or, in Edit Position mode, type a FEN.
 Some rarely used parameters can only be set through options on the
 command line used to invoke XBoard.
 
@@ -345,6 +353,13 @@ to another application (such as a text editor or another copy of
 XBoard) using that application's paste command.  In many X
 applications, such as xterm and emacs, the middle mouse button can be
 used for pasting; in XBoard, you must use the Paste Position command.
+@item Copy Game List
+@cindex Copy Game List, Menu Item
+Copies the current game list to the clipboard,
+and sets the X selection to this text.
+A format of comma-separated double-quoted strings is used,
+including all tags,
+so it can be easily imported into spread-sheet programs.
 @item Paste Game
 @cindex Paste Game, Menu Item
 Interprets the current X selection as a game record and loads it, as
@@ -376,10 +391,21 @@ The shifted @kbd{Ctrl-E} key is a keyboard equivalent.
 Use mouse button 1 to drag pieces to new squares, or to delete a piece
 by dragging it off the board or dragging an empty square on top of it.
 To drop a new piece on a square, press mouse button 2 or 3 over the
-square. This brings up a menu of white pieces (button 2) or
-black pieces (button 3). Additional menu choices let you empty the
-square or clear the board. You can set the side to play next by
-clicking on the word White or Black at the top of the screen.
+square.
+This puts a white or black pawn in the square, respectively,
+but you can change that to any other piece type by dragging the
+mouse down before you release the button.
+You will then see the piece on the originally clicked square
+cycle through the available pieces
+(including those of opposite color),
+and can release the button when you see the piece you want.
+To alter the side to move, you can click the clock 
+(the words White and Black above the board)
+of the side you want to give the move to.
+To clear the board you can click the clock of the side that
+alread has the move (which is highlighted in black).
+The old behavior with a piece menu can still be configured
+with the aid of the @code{pieceMenu} option.
 Selecting @samp{Edit Position} causes XBoard to discard
 all remembered moves in the current game.
 
@@ -424,6 +450,16 @@ with @samp{?} (unknown value), or @samp{-} (inapplicable value).
 Adds or modifies a comment on the current position. Comments are
 saved by @samp{Save Game} and are displayed by @samp{Load Game},
 @samp{Forward}, and @samp{Backward}.
+@item Edit Book
+@cindex Edit Book, Menu Item
+Pops up a window listing the moves available in the GUI book 
+(specified in the @samp{Common Engine Settings} dialog) 
+from the currently displayed position, 
+together with their weights and (optionally in braces) learn info. 
+You can then edit this list, and the new list will be stored
+back into the book when you press OK.
+Note that the listed percentages are neither used, nor updated when 
+you change the weights; they are just there as an optical aid.
 @item Revert
 @itemx Annotate
 @cindex Revert, Menu Item
@@ -802,6 +838,35 @@ by the comment "user adjudication".
 @cindex Engine Menu
 @cindex Menu, Engine
 @table @asis
+@item Load Engine
+@cindex Load Engine, Menu Item
+Pops up a dialog where you can select or specify an engine to be loaded.
+You will always have to indicate whether you want to load the engine 
+as first or second engine, through the ‘Load menitioned engine as’ 
+combobox at the bottom of the dialog. 
+You can even replace engines during a game, without disturbing that game.
+(Beware that after loading an engine, XBoard will always be in Edit Game mode, 
+so you will have to tell the new engine what to do before it does anything!)
+When you select an already installed engine from the ‘Select Engine from List’ combobox, 
+all other fields of the dialog will be ignored. 
+In other cases, you have to specify the engine executable, 
+possible arguments on the engine command line 
+(if the engine docs say the engine needs any), 
+and the directory where the engine should look for its files
+(if this cannot be deduced automatically from the specification of the engine executable). 
+You will also have specify (with the aid of checkboxes) if the engine is UCI. 
+If ‘Add this engine to the list’ is ticked (which it is by default), 
+the engine will be added to the list of installed engines in your settings file, 
+so that next time you can select it from the combobox. 
+You can also specify a ‘nickname’, 
+under which the engine will then appear in that combobox, 
+and even choose to use that nickname for it in PGN files for engine-engine games. 
+The info you supply with the checkboxes whether the engine should use GUI book, 
+or (for variant engines) automatically switch to the current variant when loaded, 
+will also be included in the list. 
+For obsolete XBoard engines, which would normally take a long delay to load 
+because XBoard is waiting for a response they will not give, 
+you can tick ‘WB protocol v1’ to speed up the loading process. 
 @item Engine #N Settings
 @cindex Engine Settings, Menu Item
 @cindex Engine #1 Settings, Menu Item
@@ -929,6 +994,99 @@ to the next one.
 You can have XBoard automatically rewind to the first line or position
 in the file after the index reaches a certain vaue,
 which you can also specify here.
+
+
+@item Match
+@cindex Match, Menu Item
+@itemx Tournament file
+@cindex Tournament file, Menu item
+To run a tournament, XBoard needs a file to record its progress, 
+to resume the tourney when it is interrupted.
+When you want to conduct anything more complex than a simple 
+two-player match with the currently loaded engines, 
+(i.e. when you select a list of participants), 
+you must not leave this field blank. 
+When you enter the name of an existing tournament file, 
+XBoard will ignore all other input specified in the dialog, 
+and will take them from that tournament file.
+This resumes an interrupted tournament, or adds another XBoard
+agent playing games for it to those that are already doing so.
+Specifying a not-yet-existing file will cause XBoard to create it, 
+according to the tournament parameters specified in the rest of the dialog, 
+before it starts the tournament on ‘OK’. 
+Provided that you specify participants; 
+without participants no tournament file will be made, but other entered values 
+(e.g. for the file with opening positions) will take effect. 
+Default: configured by the @code{defaultTourneyName} option.
+@itemx Sync after round
+@itemx Sync after cycle
+@cindex Sync after round, Menu Item
+@cindex Sync after cycle, Menu Item
+The sync options, when on, will cause WinBoard to refrain from starting games 
+of the next round or cycle before all games of the previous round or cycle are finished.
+This guarantees correct ordering in the games file,
+even when multiple XBoard instances are concurrently playing games for the same tourney.
+Default: sync after cycle, but not after round.
+@itemx Select Engine
+@itemx Tourney participants
+@cindex Select Engine, Menu Item
+@cindex Tourney participants, Menu Item
+With the Select Engine combobox you can pick an engine from your list 
+of installed engines in the settings file, to be added to the tournament. 
+The engines selected so far will be listed in the ‘Tourney participants’ memo. 
+The latter is a normal text edit, so you can use normal text-editing functions 
+to delete engines you selected by accident, or change their order. 
+Do not type names yourself there, because names that do not exactly match 
+one of the names from the combobox will lead to undefined behavior.
+@itemx Tourney type
+@cindex Tourney type, Menu Item
+Here you can specify the type of tournament you want. 
+XBoard’s intrinsic tournament manager support round-robins (type = 0), 
+where each participant plays every other participant, and (multi-)gauntlets, 
+where one (or a few) so-called ‘gauntlet engines’ play an independent set of opponents. 
+In the latter case, you specify the number of gauntlet engines. 
+E.g. if you specified 10 engine, and tourney type = 2, 
+the first 2 engines each play the remaining 8. 
+A value of -1 instructs XBoard to play Swiss; for this to work an external
+pairing engine must be specified through the @code{pairingEngine} option.
+Each Swiss round will be concidered a tourney cycle in that case.
+Default:0
+@itemx Number of tourney cycles
+@itemx Default number of Games
+@cindex Number of tourney cycles, Menu Item
+@cindex Default number of Games, 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’, 
+or by repeating the entire tournament schedule a number of times 
+(specified by the ‘number of tourney cycles’). 
+The total number of times two engine 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.
+@itemx Save Tourney Games
+@cindex Save Tourney Games, Menu Item
+File where the tournament games are saved
+(duplicate of the item in the @samp{Save Game Options}).
+@itemx Game File with Opening Lines
+@itemx File with Start Positions
+@itemx Game Number
+@itemx Position Number
+@itemx Rewind Index after
+@cindex Game File with Opening Lines, Menu Item
+@cindex File with Start Positions, Menu Item
+@itemx Game Number, Menu Item
+@itemx Position Number, Menu Item
+@itemx Rewind Index after, Menu Item
+These items optionally specify the file with move sequences or board positions the tourney 
+games should start from.
+The corresponding numbers specify the number of the game or position in the file.
+Here a value -1 means automatical stepping through all games on the file,
+-2 automatic stepping every two games.
+The Rewind-Index parameter causes a stepping index to reset to one after reaching
+a specified value.
+Default: No game or position file will be used. The default index if such a file is used is 1.
+
 @item Load Game Options
 @cindex Load Game Options, Menu Item
 Summons a dialog where you can set the @code{autoDisplayComment} and 
@@ -988,13 +1146,23 @@ is a good place for this; see @ref{ICS options}.)
 @cindex General Options, Menu Item
 The following items to set option values appear in the dialog
 summoned by the general Options menu item.
-@itemx Always Queen
-@cindex Always Queen, Menu Item
-If this option is off, XBoard brings up a dialog
+@itemx Almost Always Queen
+@cindex Almost Always Queen, Menu Item
+If this option is on, 7th-rank pawns automatically change into
+Queens when you pick them up,
+and when you drag them to the promotion square and release them there,
+they will promote to that.
+But when you drag such a pawn backwards first,
+its identity will start to cycle through the other available pieces.
+This will continue ntil you start to move it forward;
+this will then fix the identity of the piece,
+so that you can safely put it down on the promotion square.
+If this option is off, what happens depends on the
+option @code{alwaysPromoteToQueen},
+which would force promotion to Queen when true.
+Otherwise XBoard would bring up a dialog
 box whenever you move a pawn to the last rank, asking what piece
-you want to promote it to. If the option is true, your pawns are
-always promoted to queens. Your opponent can still under-promote.
-The shifted @kbd{Ctrl-Q} key is a keyboard equivalent.
+you want to promote to.
 @itemx Animate Dragging
 @cindex Animate Dragging, Menu Item
 If Animate Dragging is on, while you are dragging a piece with the
@@ -1077,7 +1245,8 @@ can move (or capture) to.
 Furthermore, a double-click on a piece that can only make a single capture
 will cause that capture to be made.
 Promoting a Pawn by clicking its to-square will suppress the promotion
-popup, and make it promote to Queen.
+popup or other methods for selecting an under-promotion, 
+and make it promote to Queen.
 @itemx Periodic Updates
 @cindex Periodic Updates, Menu Item
 If this option is off (or if
@@ -1783,6 +1952,80 @@ xboard will relay the path name for this format to the engine through an egtpath
 One egtpath command for each matching format will be sent. 
 Popular formats are "nalimov" DTM tablebases and "scorpio" bitbases.
 Default: "".
+@inem -firstChessProgramNames={names}
+This option lets you customize the drop-down list of chess engine names 
+that appears in the @samp{Load Engine} and @{Match Options} dialog. 
+It consists of a list of strings, one per line. 
+When an engine is loaded, the corresponding line is prefixed with "-fcp ",
+and processed like it appeared on the command line.
+That means that apart from the engine command,
+it can contain any list of XBoard options you want to use with this engine.
+(Commonly used options here are -fd, -firstXBook, -fUCI, -variant.)
+
+The value of this option is gradually built as you load new engines
+through the @samp{Load Engine} menu dialog, with @{Add to list} ticked. 
+To change it, edit your settings file with a plain text editor.
+@end table
+
+@node Tournament Options
+@section Tournament Options
+@cindex Tournament Options
+@cindex Options, Tournament
+@table @asis
+@item -tf filename or -tourneyFile filename
+@cindex tf, option
+@cindex tourneyFile, option
+Specifies the name of the tournament file used in match mode 
+to conduct a multi-player tournament. 
+This file is a special settings file, 
+which stores the description of the tournament (including progress info), 
+through normal options (e.g. for time control, load and save files), 
+and through some special-purpose options listed below.
+@item -tt number or -tourneyType number
+@cindex tt, option
+@cindex tourneyType, option
+Specifies the type of tourney: 0 = round-robin, 
+N>0 = (multi-)gauntlet with N gauntlet engines, 
+-1 = Swiss through external pairing engine. 
+Volatile option, but stored in tourney file.
+@item -cy number or -tourneyCycles number
+@cindex cy, option
+@cindex tourneyCycles, option
+Specifies the number of cycles in a tourney. 
+Volatile option, but stored in tourney file.
+@item -participants list
+@cindex participants, option
+The list is a multi-line text string that specifies engines 
+occurring in the @code{firstChesProgramNames} list 
+in the settings file by their (implied or explicitly given) nicknames, 
+one engine per line. 
+The mentioned engines will play in the tourney. 
+Volatile option, but stored in tourney file.
+@item -results string
+@cindex results, option
+The string of +=- characters lists the result of all played games in a toruney. 
+Games currently playing are listed as *, 
+while a space indicates a game that is not yet played or playing . 
+Volatile option, but stored in tourney file.
+@item -defaultTourneyName string
+@cindex defaultTourneyName, option
+Specifies the name of the tournament file XBoard should propose 
+when the @samp{Match Options} dialog is opened. 
+Any %y, %M, %d, %h, %m, %s in the string are replaced by the current 
+year, month, day of the month, hours, minutes, seconds of the current time, 
+respectively, as two-digit number. 
+A %Y would be replaced by the year as 4-digit number. Default: empty string.
+@item -pairingEngine filename
+@cindex pairingEngine, option
+Specifies the external program to be used to pair the participants in Swiss tourneys. 
+XBoard communicates with this engine in the same way as it communicates with Chess engines. 
+The only commands sent to the pairing engine are “results N string”, 
+(where N is the number of participants, 
+and string the results so far in the format of the results option), 
+and “pairing N”, (where N is the number of the tourney game). 
+To the latter the pairing engine should answer with “A-B”, 
+where A and B are participant numbers (in the range 1-N). 
+(There should be no reply to the results command.) Default: empty string.
 @end table
 
 @node ICS options
@@ -2156,6 +2399,17 @@ This option allows you to emulate old behavior,
 where the right mouse button brings up the (now deprecated) drop menu 
 rather than displaying the position at the end of the principal variation. 
 Default: False.
+@item -pieceMenu true|false
+@cindex pieceMenu, option
+This option allows you to emulate old behavior, 
+where the right mouse button brings up the (now deprecated) piece menu
+in Edit Position mode.
+From this menu you can select the piece to put on the square you
+clicked to bring up the menu,
+or select items such as @kbd{clear board}.
+You can also @kbd{promote} or @kbd{demote} a clicked piece to convert
+it into an unorthodox piece that is not directly in the menu,
+or give the move to @kbd{black} or @kbd{white}.
 @item -variations true|false
 @cindex variations, option
 When this option is on, you can start new variations in Edit Game or
@@ -2309,7 +2563,7 @@ These and most other standard Xt options are accepted.
 @item -noGUI
 @cindex noGUI, option
 Suppresses all GUI functions of XBoard 
-(to speed up automated ultra-fast engine-engine games, which you don’t want to watch). 
+(to speed up automated ultra-fast engine-engine games, which you don\92t want to watch). 
 There will be no board or clock updates, no printing of moves, 
 and no update of the icon on the task bar in this mode.
 @item -movesound/-xmovesound or -ringBellAfterMoves true/false
@@ -2331,6 +2585,10 @@ Sets the Popup Move Errors menu option.  @xref{Options Menu}. Default: false.
 @cindex queen, option
 @cindex alwaysPromoteToQueen, option
 Sets the Always Queen menu option.  @xref{Options Menu}.  Default: false.
+@item -sweepPromotions true/false
+@cindex sweepPromotion, option
+Sets the Almost Always Promote to Queen menu option.  
+@xref{Options Menu}.  Default: false.
 @item -legal/-xlegal or -testLegality true/false
 @cindex legal, option
 @cindex testLegality, option
@@ -2366,7 +2624,7 @@ The value @code{n1} gives the piece size, @code{n2} the width of the
 black border
 between squares, @code{n3} the desired size for the 
 clockFont, @code{n4} the desired size for the coordFont,
-@code{n5} the desired size for the default font,
+@code{n5} the desired size for the messageFont,
 @code{n6} the smallLayout flag (0 or 1), 
 and @code{n7} the tinyLayout flag (0 or 1).  
 All dimensions are in pixels.
@@ -2460,6 +2718,15 @@ Sets the Highlight with Arrow menu option. @xref{Options Menu}. Default: false.
 @cindex blind, option
 @cindex blindfold, option
 Sets the Blindfold menu option.  @xref{Options Menu}.  Default: false.
+@item fSAN
+@itemx sSAN
+@cindex fSAN, option
+@cindex sSAN, option
+Causes the PV in thinking output of the mentioned engine to be converted 
+to SAN before it is further processed.
+Warning: this might lose engine output not understood by the parser,
+and uses a lot of CPU power.
+Default: the PV is displayed exactly as the engine produced it.
 @item -clockFont font
 @cindex clockFont, option
 @cindex Font, clock
@@ -2475,9 +2742,9 @@ is true. If the option value is a pattern that does not specify
 the font size, XBoard tries to choose an appropriate font for
 the board size being used.
 Default: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*.
-@item -font font
-@cindex font, option
-@cindex Font
+@item -messageFont font
+@cindex messageFont, option
+@cindex Font, message
 The font used for popup dialogs, menus, comments, etc.
 If the option value is a pattern that does not specify
 the font size, XBoard tries to choose an appropriate font for