From b38d9d2ae93cc6e8c86ffa376666dc85079c8df1 Mon Sep 17 00:00:00 2001
From: "Richard M. Stallman" <rms@gnu.org>
Date: Fri, 4 Jul 1997 00:07:28 +0000
Subject: [PATCH] (\kbdfont, \kbdexamplefont): New macros, parms that tell @kbd
 what to do. (\setkbdinputdistinct, \setkbdinputexample): New commands set
 them. (\kbd): Use those parms.

---
 texinfo.tex | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/texinfo.tex b/texinfo.tex
index b785bfc0..2b1b1d27 100644
--- a/texinfo.tex
+++ b/texinfo.tex
@@ -1356,12 +1356,25 @@ where each line of input produces a line of output.}
 
 % @kbd is like @code, except that if the argument is just one @key command,
 % then @kbd has no effect.
-%
+
+% Font to use for @kbd, ordinarily.
+\let\kbdfont\t
+% Font to use for @kbd, when inside @example.
+\let\kbdexamplefont\t
+
+% If you use @setkbdinputdistinct, then @kbd produces slanted tty font.
+\def\setkbdinputdistinct{\let\kbdfont\ttsl
+\let\kbdexamplefont\ttsl}
+
+% If you use @setkbdinputexample, then @kbd produces slanted tty font
+% only inside of @example and friends.
+\def\setkbdinputexample{\gdef\kbdexamplefont\ttsl}
+
 \def\xkey{\key}
 \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
 \ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\ttsl\look}}\fi
-\else{\tclose{\ttsl\look}}\fi}
+\else{\tclose{\kbdfont\look}}\fi
+\else{\tclose{\kbdfont\look}}\fi}
 
 % @url, @email.  Quotes do not seem necessary.
 \let\url=\code % perhaps include a hypertex \special eventually
@@ -3614,11 +3627,12 @@ width0pt\relax} \fi
 %
 \def\nonfillfinish{\afterenvbreak\endgroup}%
 
-% This macro is
 \def\lisp{\begingroup
   \nonfillstart
   \let\Elisp = \nonfillfinish
   \tt
+  % Make @kbd do something special, if requested.
+  \let\kbdfont\kbdexamplefont
   \rawbackslash % have \ input char produce \ char from current font
   \gobble
 }
@@ -4365,7 +4379,7 @@ width0pt\relax} \fi
   \catcode`\=\other
   \catcode`\^^L=\other
   \catcode`\=\other
-  \catcode`\=\other
+  \catcode`\=\other
   \catcode`\=\other
   \catcode`\=\other
   \catcode`\=\other