diff options
author | Gerd Möllmann <gerd@gnu.org> | 2022-12-31 09:04:56 +0100 |
---|---|---|
committer | Gerd Möllmann <gerd@gnu.org> | 2022-12-31 09:04:56 +0100 |
commit | 716d676747119f9950861f9a64a8e7871b0082d4 (patch) | |
tree | b71f94b50896736a007d6977c97679e1abd895a6 /doc | |
parent | 54ec3973e298c3d2b3d81484f80053d881694f88 (diff) | |
parent | 7493b4026fc74a51c76c5b614bc83b864af9bc31 (diff) | |
download | emacs-scratch/pkg.tar.gz |
Merge remote-tracking branch 'origin/master' into scratch/pkgscratch/pkg
Diffstat (limited to 'doc')
-rw-r--r-- | doc/emacs/custom.texi | 6 | ||||
-rw-r--r-- | doc/emacs/display.texi | 12 | ||||
-rw-r--r-- | doc/emacs/maintaining.texi | 2 | ||||
-rw-r--r-- | doc/lispref/ChangeLog.1 | 2 | ||||
-rw-r--r-- | doc/lispref/compile.texi | 2 | ||||
-rw-r--r-- | doc/lispref/display.texi | 44 | ||||
-rw-r--r-- | doc/lispref/edebug.texi | 23 | ||||
-rw-r--r-- | doc/lispref/eval.texi | 3 | ||||
-rw-r--r-- | doc/lispref/modes.texi | 43 | ||||
-rw-r--r-- | doc/lispref/parsing.texi | 127 | ||||
-rw-r--r-- | doc/lispref/text.texi | 2 | ||||
-rw-r--r-- | doc/lispref/tips.texi | 2 | ||||
-rw-r--r-- | doc/misc/ChangeLog.1 | 2 | ||||
-rw-r--r-- | doc/misc/calc.texi | 13 | ||||
-rw-r--r-- | doc/misc/cc-mode.texi | 2 | ||||
-rw-r--r-- | doc/misc/erc.texi | 12 | ||||
-rw-r--r-- | doc/misc/eshell.texi | 5 | ||||
-rw-r--r-- | doc/misc/info.texi | 5 | ||||
-rw-r--r-- | doc/misc/mh-e.texi | 2 | ||||
-rw-r--r-- | doc/misc/sc.texi | 4 | ||||
-rw-r--r-- | doc/misc/texinfo.tex | 177 |
21 files changed, 326 insertions, 164 deletions
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index aaf41d2aef1..f75512a00e9 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1990,13 +1990,17 @@ to assign meanings to key bindings that use these modifiers. The modifier bits are labeled as @samp{s-}, @samp{H-} and @samp{A-} respectively. +@cindex modifier keys unsupported by keyboard Even if your keyboard lacks these additional modifier keys, you can -enter it using @kbd{C-x @@}: @kbd{C-x @@ h} adds the Hyper flag to +enter them using @kbd{C-x @@}: @kbd{C-x @@ h} adds the Hyper flag to the next character, @kbd{C-x @@ s} adds the Super flag, and @kbd{C-x @@ a} adds the Alt flag. For instance, @kbd{C-x @@ h C-a} is a way to enter @kbd{Hyper-Control-a}. (Unfortunately, there is no way to add two modifiers by using @kbd{C-x @@} twice for the same character, because the first one goes to work on the @kbd{C-x}.) +You can similarly enter the Shift, Control, and Meta modifiers by +using @kbd{C-x @ S}, @kbd{C-x @ c}, and @kbd{C-x @ m}, respectively, +although this is rarely needed. @node Function Keys @subsection Rebinding Function Keys diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index cf4f0414523..ce2dd0a78bc 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -920,12 +920,12 @@ decrease the font size of the affected faces, depending on the direction of the scrolling. The final key of these commands may be repeated without the leading -@kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face -height by three steps. Each step scales the text height by a factor -of 1.2; to change this factor, customize the variable -@code{text-scale-mode-step}. A numeric argument of 0 -to the @code{text-scale-adjust} command restores the default height, -the same as typing @kbd{C-x C-0}. +@kbd{C-x} and without the modifiers. For instance, @w{@kbd{C-x C-= C-= C-=}} +and @w{@kbd{C-x C-= = =}} increase the face height by three steps. Each +step scales the text height by a factor of 1.2; to change this factor, +customize the variable @code{text-scale-mode-step}. A numeric +argument of 0 to the @code{text-scale-adjust} command restores the +default height, the same as typing @kbd{C-x C-0}. @cindex adjust global font size @findex global-text-scale-adjust diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 9ebb044652c..cd3244a9122 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -3166,7 +3166,7 @@ Most projects with a certain amount of users track bug reports in some issue tracking software which assigns each report a unique and short number or identifier. Those are used to reference a given bug, e.g., in a source code comment above the code fixing some bug, in -documentation files, or in discussions on some mailinglist or IRC +documentation files, or in discussions on some mailing list or IRC channel. @findex bug-reference-mode diff --git a/doc/lispref/ChangeLog.1 b/doc/lispref/ChangeLog.1 index 82840aed1d6..361e816bc37 100644 --- a/doc/lispref/ChangeLog.1 +++ b/doc/lispref/ChangeLog.1 @@ -5150,7 +5150,7 @@ * backups.texi (Making Backups): * modes.texi (Example Major Modes): Use recommended coding style. - (Major Mode Basics, Derived Modes): Encourge more strongly use of + (Major Mode Basics, Derived Modes): Encourage more strongly use of define-derived-mode. Mention completion-at-point-functions. 2010-12-13 Chong Yidong <cyd@stupidchicken.com> diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index 3e397349995..ae4905bb1f9 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -930,7 +930,7 @@ used by Emacs to natively-compile any Lisp file or byte-compiled Lisp file that is loaded into Emacs, when no natively-compiled file for it is available. Note that because of this use of a subprocess, native compilation may produce warning and errors which byte-compilation does -not, and lisp code may thus need to be modified to work correctly. See +not, and Lisp code may thus need to be modified to work correctly. See @code{native-comp-async-report-warnings-errors} in @pxref{Native-Compilation Variables} for more details. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 4111a86aa7e..5397489e44f 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -346,6 +346,20 @@ The default value is the function that clears the message displayed in an active minibuffer. @end defvar +@defopt set-message-functions +The value of this user option is a list of functions to be called for +handling display of echo-area messages. Each function is called with +one argument, the text of the message to display. If the function +returns a string, that string replaces the original message, and the +next function in the list is called with the new message text. If the +function returns @code{nil}, the next function in the list is called +with the same text; if the last function in the list returns +@code{nil}, the message text is displayed in the echo area. If the +function returns a non-@code{nil} value that is not a string, the +message is considered to be handled, and no further functions in the +list are called. +@end defopt + @defvar inhibit-message When this variable is non-@code{nil}, @code{message} and related functions will not use the Echo Area to display messages. @@ -3043,17 +3057,23 @@ If @var{frame} is @code{t}, this function sets the default attributes for newly created frames; they will effectively override the attribute values specified by @code{defface}. If @var{frame} is @code{nil}, this function sets the attributes for all existing frames, as well as -for newly created frames. However, if you want to @emph{reset} the -value of an attribute to @code{unspecified} in a way that also affects -newly created frames, you @emph{must} explicitly call this function -with @var{frame} set to @code{t} and the value of the attribute set to -@code{unspecified} (@emph{not} @code{nil}!@:), in addition to the call -with @var{frame} set to @code{nil}. This is because the default -attributes for newly created frames are merged with the face's spec in -@code{defface} when a new frame is created, and so having -@code{unspecified} in the default attributes for new frames will be -unable to override @code{defface}; the special call to this function -as described above will arrange for @code{defface} to be overridden. +for newly created frames. + +To @emph{unset} the value of an attribute, that is, to indicate that +the face doesn't by itself specify a value for the attribute, the +special value @code{unspecified} (@emph{not} @code{nil}!@:) must be +used. + +Note that the attribute-value pairs are evaluated in the order they +are specified, except the @code{:family} and @code{:foundry} +attributes, which are evaluated first. This means both that only the +last value of a given attribute will be used, and that in some cases a +different order will give different results. For example, when +@code{:weight} is placed before @code{:font}, the weight value is +applied to the current font of the face, and might be rounded to the +closest available weight of that font, whereas when @code{:font} is +placed before @code{:weight} the weight value is applied to the +specified font. @end defun The following commands and functions mostly provide compatibility @@ -6280,7 +6300,7 @@ embedding large images, comparing to @code{svg-embed}, because all the work is done directly by librsvg. @lisp -;; Embeding /tmp/subdir/rms.jpg and /tmp/another/rms.jpg +;; Embedding /tmp/subdir/rms.jpg and /tmp/another/rms.jpg (svg-embed-base-uri-image svg "subdir/rms.jpg" :width "100px" :height "100px" :x "50px" :y "75px") diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 1562a378421..93bafce1f38 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi @@ -171,14 +171,13 @@ of the variable @code{edebug-all-defs}. @findex eval-region @r{(Edebug)} @findex eval-buffer @r{(Edebug)} -@findex eval-current-buffer @r{(Edebug)} If @code{edebug-all-defs} is non-@code{nil}, then the commands -@code{eval-region}, @code{eval-current-buffer}, and @code{eval-buffer} -also instrument any definitions they evaluate. Similarly, -@code{edebug-all-forms} controls whether @code{eval-region} should -instrument @emph{any} form, even non-defining forms. This doesn't apply -to loading or evaluations in the minibuffer. The command @kbd{M-x -edebug-all-forms} toggles this option. +@code{eval-region}, and @code{eval-buffer} also instrument any +definitions they evaluate. Similarly, @code{edebug-all-forms} +controls whether @code{eval-region} should instrument @emph{any} form, +even non-defining forms. This doesn't apply to loading or evaluations +in the minibuffer. The command @kbd{M-x edebug-all-forms} toggles +this option. @findex edebug-eval-top-level-form @findex edebug-defun @@ -1635,8 +1634,8 @@ but only when you also use Edebug. @defopt edebug-all-defs If this is non-@code{nil}, normal evaluation of defining forms such as @code{defun} and @code{defmacro} instruments them for Edebug. This -applies to @code{eval-defun}, @code{eval-region}, @code{eval-buffer}, -and @code{eval-current-buffer}. +applies to @code{eval-defun}, @code{eval-region} and +@code{eval-buffer}. Use the command @kbd{M-x edebug-all-defs} to toggle the value of this option. @xref{Instrumenting}. @@ -1644,9 +1643,9 @@ option. @xref{Instrumenting}. @defopt edebug-all-forms If this is non-@code{nil}, the commands @code{eval-defun}, -@code{eval-region}, @code{eval-buffer}, and @code{eval-current-buffer} -instrument all forms, even those that don't define anything. -This doesn't apply to loading or evaluations in the minibuffer. +@code{eval-region} and @code{eval-buffer} instrument all forms, even +those that don't define anything. This doesn't apply to loading or +evaluations in the minibuffer. Use the command @kbd{M-x edebug-all-forms} to toggle the value of this option. @xref{Instrumenting}. diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index 11c321b32ed..159e440a989 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi @@ -819,9 +819,6 @@ output of the output functions is printed in the echo area. (@pxref{Unloading}), and defaults to @code{buffer-file-name} (@pxref{Buffer File Name}). If @var{unibyte} is non-@code{nil}, @code{read} converts strings to unibyte whenever possible. - -@findex eval-current-buffer -@code{eval-current-buffer} is an alias for this command. @end deffn @defopt max-lisp-eval-depth diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index c44938f3929..de17969566d 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -2841,6 +2841,35 @@ function uses @code{imenu-generic-expression} instead. Setting this variable makes it buffer-local in the current buffer. @end defvar +If built with tree-sitter, Emacs can automatically generate an Imenu +index if the major mode sets relevant variables. + +@defvar treesit-simple-imenu-settings +This variable instructs Emacs how to generate Imenu indexes. It +should be a list of @w{(@var{category} @var{regexp} @var{pred} +@var{name-fn})}. + +@var{category} should be the name of a category, like "Function", +"Class", etc. @var{regexp} should be a regexp matching the type of +nodes that belong to @var{category}. @var{pred} should be either +@code{nil} or a function that takes a node as the argument. It should +return non-@code{nil} if the node is a valid node for @var{category}, +or @code{nil} if not. + +@var{category} could also be @code{nil}. In which case the entries +matched by @var{regexp} and @var{pred} are not grouped under +@var{category}. + +@var{name-fn} should be either @var{nil} or a function that takes a +defun node and returns the name of that defun, e.g., the function name +for a function definition. If @var{name-fn} is @var{nil}, +@code{treesit-defun-name} (@pxref{Tree-sitter major modes}) is used +instead. + +@code{treesit-major-mode-setup} (@pxref{Tree-sitter major modes}) +automatically sets up Imenu if this variable is non-@code{nil}. +@end defvar + @node Font Lock Mode @section Font Lock Mode @cindex Font Lock mode @@ -4023,11 +4052,12 @@ This function takes a series of @var{query-spec}s, where each @var{:keyword}/@var{value} pairs. Each @var{query} is a tree-sitter query in either the string, s-expression or compiled form. +@c FIXME: Cross-ref treesit-font-lock-level to user manual. For each @var{query}, the @var{:keyword}/@var{value} pairs that precede it add meta information to it. The @code{:lang} keyword declares @var{query}'s language. The @code{:feature} keyword sets the feature name of @var{query}. Users can control which features are -enabled with @code{font-lock-maximum-decoration} and +enabled with @code{treesit-font-lock-level} and @code{treesit-font-lock-feature-list} (described below). These two keywords are mandatory. @@ -4067,10 +4097,11 @@ priority. If a capture name is neither a face nor a function, it is ignored. @end defun +@c FIXME: Cross-ref treesit-font-lock-level to user manual. @defvar treesit-font-lock-feature-list This is a list of lists of feature symbols. Each element of the list is a list that represents a decoration level. -@code{font-lock-maximum-decoration} controls which levels are +@code{treesit-font-lock-level} controls which levels are activated. Each element of the list is a list of the form @w{@code{(@var{feature} @@ -5024,6 +5055,14 @@ comment-start token. Comment-start tokens are defined by regular expression @code{comment-start-skip}. This function assumes @var{parent} is the comment node. +@item prev-adaptive-prefix +This anchor is a function that is called with 3 arguments: @var{node}, +@var{parent}, and @var{bol}. It tries to go to the beginning of the +previous non-empty line, and matches @code{adaptive-fill-regexp}. If +there is a match, this function returns the end of the match, +otherwise it returns nil. This anchor is useful for a +@code{indent-relative}-like indent behavior for block comments. + @end ftable @end defvar diff --git a/doc/lispref/parsing.texi b/doc/lispref/parsing.texi index adb4c5e6e0c..86b3bd54e7c 100644 --- a/doc/lispref/parsing.texi +++ b/doc/lispref/parsing.texi @@ -393,12 +393,6 @@ tree-sitter can be activated. Major modes should check this value when deciding whether to enable tree-sitter features. @end defvar -@defun treesit-can-enable-p -This function checks whether the current buffer is suitable for -activating tree-sitter features. It basically checks -@code{treesit-available-p} and @code{treesit-max-buffer-size}. -@end defun - @cindex creating tree-sitter parsers @cindex tree-sitter parser, creating @defun treesit-parser-create language &optional buffer no-reuse @@ -511,7 +505,9 @@ notification. Every time a parser reparses a buffer, it compares the old and new parse-tree, computes the ranges in which nodes have changed, and -passes the ranges to notifier functions. +passes the ranges to notifier functions. Note that the initial parse +is also considered a ``change'', so notifier functions are called on +the initial parse, with range being the whole buffer. @defun treesit-parser-add-notifier parser function This function adds @var{function} to @var{parser}'s list of @@ -576,12 +572,12 @@ leaf node after @var{pos}. Finally, if there is no leaf node after @var{pos}, return the first leaf node before @var{pos}. -When @var{parser-or-lang} is @code{nil} or omitted, this function uses -the first parser in @code{(treesit-parser-list)} of the current -buffer. If @var{parser-or-lang} is a parser object, it uses that -parser; if @var{parser-or-lang} is a language, it finds the first -parser using that language in @code{(treesit-parser-list)}, and uses -that. +If @var{parser-or-lang} is a parser object, this function uses that +parser; if @var{parser-or-lang} is a language, this function uses the +first parser for that language in the current buffer, or creates one +if none exists; if @var{parser-or-lang} is @code{nil}, this function +tries to guess the language at @var{pos} by calling +@code{treesit-language-at} (@pxref{Multiple Languages}). If this function cannot find a suitable node to return, it returns @code{nil}. @@ -610,13 +606,14 @@ is at or after @var{end}. inside any top-level construct (function definition, etc.) most probably will give you the root node, because the root node is the smallest node that covers that empty line. Most of the time, you want -to use @code{treesit-node-at}, described above, instead. +to use @code{treesit-node-at} instead. -When @var{parser-or-lang} is @code{nil}, this function uses the first -parser in @code{(treesit-parser-list)} of the current buffer. If -@var{parser-or-lang} is a parser object, it uses that parser; if -@var{parser-or-lang} is a language, it finds the first parser using -that language in @code{(treesit-parser-list)}, and uses that. +If @var{parser-or-lang} is a parser object, this function uses that +parser; if @var{parser-or-lang} is a language, this function uses the +first parser for that language in the current buffer, or creates one +if none exists; if @var{parser-or-lang} is @code{nil}, this function +tries to guess the language at @var{beg} by calling +@code{treesit-language-at}. If @var{named} is non-@code{nil}, this function looks for a named node only (@pxref{tree-sitter named node, named node}). @@ -628,9 +625,10 @@ This function returns the root node of the syntax tree generated by @end defun @defun treesit-buffer-root-node &optional language -This function finds the first parser that uses @var{language} in -@code{(treesit-parser-list)} of the current buffer, and returns the -root node generated by that parser. If it cannot find an appropriate +This function finds the first parser for @var{language} in the current +buffer, or creates one if none exists, and returns the root node +generated by that parser. If @var{language} is omitted, it uses the +first parser in the parser list. If it cannot find an appropriate parser, it returns @code{nil}. @end defun @@ -647,6 +645,10 @@ it, or query for information about this node. @defun treesit-node-parent node This function returns the immediate parent of @var{node}. + +If @var{node} is more than 1000 levels deep in a parse tree, the +return value is undefined. Currently it returns @var{nil}, but that +could change in the future. @end defun @defun treesit-node-child node n &optional named @@ -1266,10 +1268,11 @@ example, with the following pattern: @end example @noindent -tree-sitter only matches arrays where the first element equals to -the last element. To attach a predicate to a pattern, we need to -group them together. A predicate always starts with a @samp{#}. -Currently there are two predicates, @code{#equal} and @code{#match}. +tree-sitter only matches arrays where the first element equals to the +last element. To attach a predicate to a pattern, we need to group +them together. A predicate always starts with a @samp{#}. Currently +there are three predicates, @code{#equal}, @code{#match}, and +@code{#pred}. @deffn Predicate equal arg1 arg2 Matches if @var{arg1} equals to @var{arg2}. Arguments can be either @@ -1282,6 +1285,11 @@ Matches if the text that @var{capture-name}'s node spans in the buffer matches regular expression @var{regexp}. Matching is case-sensitive. @end deffn +@deffn Predicate pred fn &rest nodes +Matches if function @var{fn} returns non-@code{nil} when passed each +node in @var{nodes} as arguments. +@end deffn + Note that a predicate can only refer to capture names that appear in the same pattern. Indeed, it makes little sense to refer to capture names in other patterns. @@ -1716,15 +1724,25 @@ This function activates some tree-sitter features for a major mode. Currently, it sets up the following features: @itemize @item -If @code{treesit-font-lock-settings} is non-@code{nil}, it sets up -fontification. +If @code{treesit-font-lock-settings} (@pxref{Parser-based Font Lock}) +is non-@code{nil}, it sets up fontification. + @item -If @code{treesit-simple-indent-rules} is non-@code{nil}, it sets up -indentation. +If @code{treesit-simple-indent-rules} (@pxref{Parser-based Font Lock}) +is non-@code{nil}, it sets up indentation. + @item If @code{treesit-defun-type-regexp} is non-@code{nil}, it sets up navigation functions for @code{beginning-of-defun} and @code{end-of-defun}. + +@item +If @code{treesit-defun-name-function} is non-@code{nil}, it sets up +add-log functions used by @code{add-log-current-defun}. + +@item +If @code{treesit-simple-imenu-settings} (@pxref{Imenu}) is +non-@code{nil}, it sets up Imenu. @end itemize @end defun @@ -1735,6 +1753,55 @@ For more information of these built-in tree-sitter features, For supporting mixing of multiple languages in a major mode, @pxref{Multiple Languages}. +Besides @code{beginning-of-defun} and @code{end-of-defun}, Emacs +provides some additional functions for working with defuns: +@code{treesit-defun-at-point} returns the defun node at point, and +@code{treesit-defun-name} returns the name of a defun node. + +@c FIXME: Cross-reference to treesit-defun-tactic once we have it in +@c the user manual. +@defun treesit-defun-at-point +This function returns the defun node at point, or @code{nil} if none +is found. It respects @code{treesit-defun-tactic}: if its value is +@code{top-level}, this function returns the top-level defun, and if +its value is @code{nested}, it returns the immediate enclosing defun. + +This function requires @code{treesit-defun-type-regexp} to work. If +it is @code{nil}, this function simply returns @code{nil}. +@end defun + +@defun treesit-defun-name node +This function returns the defun name of @var{node}. It returns +@code{nil} if there is no defun name for @var{node}, or if @var{node} +is not a defun node, or if @var{node} is @code{nil}. + +Depending on the language and major mode, the defun names are names +like function name, class name, struct name, etc. + +If @code{treesit-defun-name-function} is @code{nil}, this function +always returns @code{nil}. +@end defun + +@defvar treesit-defun-name-function +If non-@code{nil}, this variable's value should be a function that is +called with a node as its argument, and returns the defun name of the +node. The function should have the same semantic as +@code{treesit-defun-name}: if the node is not a defun node, or the +node is a defun node but doesn't have a name, or the node is +@code{nil}, it should return @code{nil}. +@end defvar + +@defvar treesit-defun-type-regexp +This variable determines which nodes are considered defuns by Emacs. +It can be a regexp that matches the type of defun nodes. + +Sometimes not all nodes matched by the regexp are valid defuns. +Therefore, this variable can also be a cons cell of the form +@w{(@var{regexp} . @var{pred})}, where @var{pred} should be a function +that takes a node as its argument, and returns @code{t} if the node is +valid defun, or @code{nil} if it is not valid. +@end defvar + @node Tree-sitter C API @section Tree-sitter C API Correspondence diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index ef938e88ecf..98349099930 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -5351,7 +5351,7 @@ called @var{gif}, you have to mark it specially to let @end defun -@defun sqlite-select db query &optional values result-type +@defun sqlite-select db query &optional values return-type Select some data from @var{db} and return them. For instance: @lisp diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index 3a1f6de12b2..3216a353958 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -804,7 +804,7 @@ Finally, to create a hyperlink to URLs, write the single-quoted URL, preceded by @samp{URL}. For example, @smallexample -The GNU project wesite has more information (see URL +The GNU project website has more information (see URL `https://www.gnu.org/'). @end smallexample diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1 index 1c5e7c1e2fd..cd3f599b934 100644 --- a/doc/misc/ChangeLog.1 +++ b/doc/misc/ChangeLog.1 @@ -6012,7 +6012,7 @@ (Built-in table editor): Document M-e and M-a navigate inside table field. (Stuck projects): Docment that projects identified as - un-stuck will still be searchd for stuck sub-projects. + un-stuck will still be searched for stuck sub-projects. (Paragraphs): Document centering. (Creating timestamps, Agenda commands): Document new behavior when changing time stamps. diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index 89a340e7343..e5bac25cac8 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -11040,7 +11040,8 @@ the year even for older dates. The customizable variable have Calc's date forms switch from the Julian to Gregorian calendar at any specified date. -Today's timekeepers introduce an occasional ``leap second''. +A few platforms support leap seconds, such as the time stamp +1972-06-30 23:59:60 UTC, an extra second appended to June 1972. These do not occur regularly and Calc does not take these minor effects into account. (If it did, it would have to report a non-integer number of days between, say, @@ -17340,8 +17341,12 @@ it can be a variable which is a time zone name in upper- or lower-case. For example @samp{tzone(PST) = tzone(8)} and @samp{tzone(pdt) = tzone(7)} (for Pacific standard and daylight saving times, respectively). -North American and European time zone names are defined as follows; -note that for each time zone there is one name for standard time, +North American and European time zone names are defined as follows. +These names are obsolescent and new code should not rely on them: +the @samp{YST}-related names have disagreed with time in Yukon since 1973, +and other names could well become confusing or wrong in the future +as countries change their time zone rules. +For each time zone there is one name for standard time, another for daylight saving time, and a third for ``generalized'' time in which the daylight saving adjustment is computed from context. @@ -17363,7 +17368,7 @@ To define time zone names that do not appear in the above table, you must modify the Lisp variable @code{math-tzone-names}. This is a list of lists describing the different time zone names; its structure is best explained by an example. The three entries for -Pacific Time look like this: +circa-2022 US Pacific Time look like this: @smallexample @group diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index a8f5248c4c8..eee8463a0fa 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -7149,7 +7149,7 @@ If you add more directives to this variable, or remove directives from it, whilst ``indent to body'' is active, you need to re-enable the feature by calling @code{c-toggle-cpp-indent-to-body} for these changes to take effect@footnote{Note that the removal of directives -doesn't work satisfactorally on XEmacs or on very old versions of +doesn't work satisfactorily on XEmacs or on very old versions of Emacs}. @end defopt diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index 2ab2e908940..249b58c73d8 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -529,6 +529,16 @@ Translate morse code in messages @end table +@anchor{Required Modules} +@subheading Required Modules +@cindex required modules + +Note that some modules are essential to core IRC operations and thus +not listed above. You can nevertheless still remove these, but doing +so demands special precautions to avoid degrading the user experience. +At present, the only such module is @code{networks}, whose library ERC +always loads anyway. + @subheading Local Modules @cindex local modules @@ -1290,7 +1300,7 @@ When preparing entries for your backend, it may help to get a feel for how ERC and its modules conduct searches, especially when exploring a new context, such as channel keys. (Hint: in such situations, try temporarily setting the variable @code{auth-source-debug} to @code{t} -and checking @samp{*Messages*} periodically for insights into how +and checking @file{*Messages*} periodically for insights into how auth-source is operating.) Overall, though, ERC tries to be consistent in performing queries across various authentication contexts. Here's what to expect with respect to the @samp{host} diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index f9796d69a9a..118ee80acb9 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -2162,11 +2162,6 @@ So that @kbd{M-@key{DEL}} acts in a predictable manner, etc. @item Allow all Eshell buffers to share the same history and list-dir -@item There is a problem with script commands that output to @file{/dev/null} - -If a script file, somewhere in the middle, uses @samp{> /dev/null}, -output from all subsequent commands is swallowed. - @item Split up parsing of text after @samp{$} in @file{esh-var.el} Make it similar to the way that @file{esh-arg.el} is structured. diff --git a/doc/misc/info.texi b/doc/misc/info.texi index 4db35ebf0fc..84c4eeba4b5 100644 --- a/doc/misc/info.texi +++ b/doc/misc/info.texi @@ -1098,9 +1098,8 @@ name, and @key{RET}. Thus, @kbd{gTop@key{RET}} would go to the node called @samp{Top} in this file. (This is equivalent to @kbd{t}, see @ref{Help-Int}.) @kbd{gGo to node@key{RET}} would come back here. - Unlike @kbd{m}, @kbd{g} does not allow the use of abbreviations. -But it does allow completion, so you can type @key{TAB} to complete a -partial node name. + Like @kbd{m}, @kbd{g} allows the use of abbreviations. It also allows +completion, so you can type @key{TAB} to complete a partial node name. @cindex go to another Info file To go to a node in another file, you can include the file name in the diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi index 1a80c62edba..0650ad69a8d 100644 --- a/doc/misc/mh-e.texi +++ b/doc/misc/mh-e.texi @@ -793,7 +793,7 @@ You should see the scan line for your message, and perhaps others. Use @cartouche @smallexample - 3 t08/24 root received fax files on Wed Aug 24 11:00:13 PDT 1 + 3 t08/24 root received fax files on Wed Aug 24 11:00:13 -0700 1 # 4+t08/24 To:wohler Test<<This is a test message to get the wheels -:%% @{+inbox/select@} 4 msgs (1-4) Bot L4 (MH-Folder Show)--------- diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi index 3f6dcd022a5..49c86f68127 100644 --- a/doc/misc/sc.texi +++ b/doc/misc/sc.texi @@ -404,7 +404,7 @@ from the alist with the @code{sc-mail-field} function. Thus, if the following fields were present in the original article: @example -Date:@: 08 April 1991, 17:32:09 EST +Date:@: 08 Apr 1991 17:32:09 -0500 Subject:@: Better get out your asbestos suit @end example @@ -415,7 +415,7 @@ then, the following lisp constructs return: @example (sc-mail-field "date") -==> "08 April 1991, 17:32:09 EST" +==> "08 Apr 1991 17:32:09 -0500" (sc-mail-field "subject") ==> "Better get out your asbestos suit" diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index cfc77a84ea8..cfe83359f65 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2022-11-12.22} +\def\texinfoversion{2022-12-19.22} % % Copyright 1985, 1986, 1988, 1990-2022 Free Software Foundation, Inc. % @@ -591,6 +591,9 @@ % @/ allows a line break. \let\/=\allowbreak +% @- allows explicit insertion of hyphenation points +\def\-{\discretionary{\normaldash}{}{}}% + % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} @@ -1537,9 +1540,10 @@ output) for that.)} \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} - \def\pdflink#1{% + \def\pdflink#1{\pdflinkpage{#1}{#1}}% + \def\pdflinkpage#1#2{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \setcolor{\linkcolor}#1\endlink} + \setcolor{\linkcolor}#2\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode @@ -1786,10 +1790,11 @@ output) for that.)} \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} - \def\pdflink#1{% + \def\pdflink#1{\pdflinkpage{#1}{#1}}% + \def\pdflinkpage#1#2{% \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}% - \setcolor{\linkcolor}#1\endlink} + \setcolor{\linkcolor}#2\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} % % @@ -2134,6 +2139,11 @@ end \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi +% +% This is what gets called when #5 of \setfont is empty. +\let\cmap\gobble +% +% (end of cmaps) % Set the font macro #1 to the font named \fontprefix#2. @@ -2149,11 +2159,10 @@ end \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% + \ifx#2\ttshape\hyphenchar#1=-1 \fi + \ifx#2\ttbshape\hyphenchar#1=-1 \fi + \ifx#2\ttslshape\hyphenchar#1=-1 \fi } -% This is what gets called when #5 of \setfont is empty. -\let\cmap\gobble -% -% (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -2815,13 +2824,6 @@ end % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} -% We can't just use \exhyphenpenalty, because that only has effect at -% the end of a paragraph. Restore normal hyphenation at the end of the -% group within which \nohyphenation is presumably called. -% -\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} -\def\restorehyphenation{\hyphenchar\font = `- } - \newif\iffrenchspacing \frenchspacingfalse @@ -2890,27 +2892,29 @@ end % Switch to typewriter. \tt % - % But `\ ' produces the large typewriter interword space. + % `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % - % Turn off hyphenation. - \nohyphenation - % \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } -% We *must* turn on hyphenation at `-' and `_' in @code. -% (But see \codedashfinish below.) +% This is for LuaTeX: It is not sufficient to disable hyphenation at +% explicit dashes by setting `\hyphenchar` to -1. +\def\dashnobreak{% + \normaldash + \penalty 10000 } + +% We must turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. +% We explicitly allow hyphenation at these characters +% using \discretionary. % -% Unfortunately, TeX uses one parameter (\hyphenchar) to control -% both hyphenation at - and hyphenation within words. -% We must therefore turn them both off (\tclose does that) -% and arrange explicitly to hyphenate at a dash. -- rms. +% Hyphenation at - and hyphenation within words was turned off +% by default for the tt fonts using the \hyphenchar parameter of TeX. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active @@ -2923,7 +2927,7 @@ end \let-\codedash \let_\codeunder \else - \let-\normaldash + \let-\dashnobreak \let_\realunder \fi % Given -foo (with a single dash), we do not want to allow a break @@ -3200,7 +3204,7 @@ end % definition of @key with no lozenge. % -\def\key#1{{\setregularquotes \nohyphenation \tt #1}\null} +\def\key#1{{\setregularquotes \tt #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} @@ -3747,6 +3751,7 @@ $$% % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts + \headingsoff % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. @@ -3774,11 +3779,9 @@ $$% % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage + \pageone \endgroup % - % Need this before the \...aftertitlepage checks so that if they are - % in effect the toc pages will come out with page numbers. - \HEADINGSon } \def\finishtitlepage{% @@ -3947,7 +3950,6 @@ $$% } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting -\HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. \def\pageone{ @@ -3971,7 +3973,7 @@ $$% \pageone \HEADINGSsinglex } -\def\HEADINGSon{\HEADINGSdouble} +% \def\HEADINGSon{\HEADINGSdouble} % defined by \CHAPPAGon \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter @@ -5616,6 +5618,11 @@ might help (with 'rm \jobname.?? \jobname.??s')% \newdimen\entryrightmargin \entryrightmargin=0pt +% for PDF output, whether to make the text of the entry a link to the page +% number. set for @contents and @shortcontents where there is only one +% page number. +\newif\iflinkentrytext + % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. @@ -5642,7 +5649,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% - % Save the text of the entry + % Save the text of the entry in \boxA \global\setbox\boxA=\hbox\bgroup \bgroup % Instead of the swallowed brace. \noindent @@ -5652,12 +5659,21 @@ might help (with 'rm \jobname.?? \jobname.??s')% % with catcodes occurring. } {\catcode`\@=11 +% #1 is the page number \gdef\finishentry#1{% - \egroup % end box A + \egroup % end \boxA \dimen@ = \wd\boxA % Length of text of entry + % add any leaders and page number to \boxA. \global\setbox\boxA=\hbox\bgroup - \unhbox\boxA - % #1 is the page number. + \ifpdforxetex + \iflinkentrytext + \pdflinkpage{#1}{\unhbox\boxA}% + \else + \unhbox\boxA + \fi + \else + \unhbox\boxA + \fi % % Get the width of the page numbers, and only use % leaders if they are present. @@ -5676,6 +5692,8 @@ might help (with 'rm \jobname.?? \jobname.??s')% \fi \fi \egroup % end \boxA + % + % now output \ifdim\wd\boxB = 0pt \noindent\unhbox\boxA\par \nobreak @@ -6375,7 +6393,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \fi } -\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname} +\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname\HEADINGSon} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager @@ -6392,7 +6410,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \global\let\pchapsepmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} -\CHAPPAGon +\setchapternewpage on % \chapmacro - Chapter opening. % @@ -6772,6 +6790,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \def\thistitle{}% no title in double-sided headings % Record where the Roman numerals started. \ifnum\romancount=0 \global\romancount=\pagecount \fi + \linkentrytexttrue } % \raggedbottom in plain.tex hardcodes \topskip so override it @@ -6899,7 +6918,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% + \tocentry{\shortchaplabel{#2}\labelspace #1}{#4}% } % Appendices, in the main contents. @@ -6914,7 +6933,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} -\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} +\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{#4}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} @@ -6946,24 +6965,24 @@ might help (with 'rm \jobname.?? \jobname.??s')% % Move the page numbers slightly to the right \advance\entryrightmargin by -0.05em \chapentryfonts - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% + \tocentry{#1}{#2}% \endgroup} % We use the same \entry macro as for the index entries. @@ -6972,9 +6991,6 @@ might help (with 'rm \jobname.?? \jobname.??s')% % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} -\def\dopageno#1{{\rm #1}} -\def\doshortpageno#1{{\rm #1}} - \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} @@ -7410,7 +7426,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \endgroup % \def\setupverb{% - \tt % easiest (and conventionally used) font for verbatim + \tt \def\par{\leavevmode\endgraf}% \setcodequotes \tabeightspaces @@ -7587,32 +7603,28 @@ might help (with 'rm \jobname.?? \jobname.??s')% \exdentamount=\defbodyindent } -\def\dodefunx#1{% - % First, check whether we are in the right environment: - \checkenv#1% - % - % As above, allow line break if we have multiple x headers in a row. - % It's not a great place, though. - \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi - % - % And now, it's time to reuse the body of the original defun: - \expandafter\gobbledefun#1% -} -\def\gobbledefun#1\startdefun{} +\newtoks\defidx +\newtoks\deftext -% \printdefunline \deffnheader{text} +\def\useindex#1{\defidx={#1}\ignorespaces} + +% Called as \printdefunline \deffooheader{text} % \def\printdefunline#1#2{% \begingroup \plainfrenchspacing - % call \deffnheader: + % call \deffooheader: #1#2 \endheader + % create the index entry + \defcharsdefault + \edef\temp{\noexpand\doind{\the\defidx}{\the\deftext}}% + \temp % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip - \penalty\defunpenalty % signal to \startdefun and \dodefunx + \penalty\defunpenalty % signal to \startdefun and \deffoox % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts @@ -7621,7 +7633,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \def\Edefun{\endgraf\medbreak} -% \makedefun{deffoo}{ (definition of \deffooheader) } +% \makedefun{deffoo} (\deffooheader parameters) { (\deffooheader expansion) } % % Define \deffoo, \deffoox \Edeffoo and \deffooheader. \def\makedefun#1{% @@ -7636,8 +7648,18 @@ might help (with 'rm \jobname.?? \jobname.??s')% \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% - \def#2{\dodefunx#1}% - \def#3% + \def#2{% + % First, check whether we are in the right environment: + \checkenv#1% + % + % As in \startdefun, allow line break if we have multiple x headers + % in a row. It's not a great place, though. + \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi + % + \doingtypefnfalse % distinguish typed functions from all else + \parseargusing\activeparens{\printdefunline#3}% + }% + \def#3% definition of \deffooheader follows } \newif\ifdoingtypefn % doing typed function? @@ -7662,18 +7684,23 @@ might help (with 'rm \jobname.?? \jobname.??s')% \fi\fi } +\def\defind#1#2{ + \defidx={#1}% + \deftext={#2}% +} + % Untyped functions: % @deffn category name args \makedefun{deffn}#1 #2 #3\endheader{% - \doind{fn}{\code{#2}}% + \defind{fn}{\code{#2}}% \defname{#1}{}{#2}\magicamp\defunargs{#3\unskip}% } % @defop category class name args \makedefun{defop}#1 {\defopheaderx{#1\ \putwordon}} \def\defopheaderx#1#2 #3 #4\endheader{% - \doind{fn}{\code{#3}\space\putwordon\ \code{#2}}% + \defind{fn}{\code{#3}\space\putwordon\ \code{#2}}% \defname{#1\ \code{#2}}{}{#3}\magicamp\defunargs{#4\unskip}% } @@ -7681,7 +7708,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @deftypefn category type name args \makedefun{deftypefn}#1 #2 #3 #4\endheader{% - \doind{fn}{\code{#3}}% + \defind{fn}{\code{#3}}% \doingtypefntrue \defname{#1}{#2}{#3}\defunargs{#4\unskip}% } @@ -7689,7 +7716,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopheaderx{#1\ \putwordon}} \def\deftypeopheaderx#1#2 #3 #4 #5\endheader{% - \doind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}% + \defind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}% \doingtypefntrue \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% } @@ -7698,14 +7725,14 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @deftypevr category type var args \makedefun{deftypevr}#1 #2 #3 #4\endheader{% - \doind{vr}{\code{#3}}% + \defind{vr}{\code{#3}}% \defname{#1}{#2}{#3}\defunargs{#4\unskip}% } % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvheaderx{#1\ \putwordof}} \def\deftypecvheaderx#1#2 #3 #4 #5\endheader{% - \doind{vr}{\code{#4}\space\putwordof\ \code{#2}}% + \defind{vr}{\code{#4}\space\putwordof\ \code{#2}}% \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% } @@ -7722,7 +7749,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% - \doind{tp}{\code{#2}}% + \defind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } @@ -10489,7 +10516,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00AE}{\registeredsymbol{}}% \DeclareUnicodeCharacter{00AF}{\={ }}% % - \DeclareUnicodeCharacter{00B0}{\textdegree} + \DeclareUnicodeCharacter{00B0}{\textdegree}% \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}% \DeclareUnicodeCharacter{00B2}{$^2$}% \DeclareUnicodeCharacter{00B3}{$^3$}% |