📄 texinfo.tex
字号:
\font\seci=cmmi12 scaled \magstep1\font\secsy=cmsy10 scaled \magstep2% Subsection fonts (13.15pt).\def\ssecnominalsize{13pt}\setfont\ssecrm\rmbshape{12}{\magstephalf}\setfont\ssecit\itbshape{10}{1315}\setfont\ssecsl\slbshape{10}{1315}\setfont\ssectt\ttbshape{12}{\magstephalf}\setfont\ssecttsl\ttslshape{10}{1315}\setfont\ssecsf\sfbshape{12}{\magstephalf}\let\ssecbf\ssecrm\setfont\ssecsc\scbshape{10}{1315}\font\sseci=cmmi12 scaled \magstephalf\font\ssecsy=cmsy10 scaled 1315% Reduced fonts for @acro in text (10pt).\def\reducednominalsize{10pt}\setfont\reducedrm\rmshape{10}{1000}\setfont\reducedtt\ttshape{10}{1000}\setfont\reducedbf\bfshape{10}{1000}\setfont\reducedit\itshape{10}{1000}\setfont\reducedsl\slshape{10}{1000}\setfont\reducedsf\sfshape{10}{1000}\setfont\reducedsc\scshape{10}{1000}\setfont\reducedttsl\ttslshape{10}{1000}\font\reducedi=cmmi10\font\reducedsy=cmsy10% In order for the font changes to affect most math symbols and letters,% we have to define the \textfont of the standard families. Since% texinfo doesn't allow for producing subscripts and superscripts except% in the main text, we don't bother to reset \scriptfont and% \scriptscriptfont (which would also require loading a lot more fonts).%\def\resetmathfonts{% \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf \textfont\ttfam=\tentt \textfont\sffam=\tensf}% The font-changing commands redefine the meanings of \tenSTYLE, instead% of just \STYLE. We do this because \STYLE needs to also set the% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire% \tenSTYLE to set the current font.%% Each font-changing command also sets the names \lsize (one size lower)% and \lllsize (three sizes lower). These relative commands are used in% the LaTeX logo and acronyms.%% This all needs generalizing, badly.%\def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \def\curfontsize{text}% \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}}\def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{25pt}}\def\titlefont#1{{\titlefonts\rm #1}}\def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl \def\curfontsize{chap}% \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}}\def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}}\def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl \def\curfontsize{ssec}% \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}}\let\subsubsecfonts = \subsecfonts\def\reducedfonts{% \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy \let\tenttsl=\reducedttsl \def\curfontsize{reduced}% \def\lsize{small}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}}\def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl \def\curfontsize{small}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}}\def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \def\curfontsize{smaller}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}}% Set the fonts to use with the @small... environments.\let\smallexamplefonts = \smallfonts% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample% can fit this many characters:% 8.5x11=86 smallbook=72 a4=90 a5=69% If we use \scriptfonts (8pt), then we can fit this many characters:% 8.5x11=90+ smallbook=80 a4=90+ a5=77% For me, subjectively, the few extra characters that fit aren't worth% the additional smallness of 8pt. So I'm making the default 9pt.%% By the way, for comparison, here's what fits with @example (10pt):% 8.5x11=71 smallbook=60 a4=75 a5=58%% I wish the USA used A4 paper.% --karl, 24jan03.% Set up the default fonts, so we can use them for creating boxes.%\textfonts \rm% Define these so they can be easily changed for other fonts.\def\angleleft{$\langle$}\def\angleright{$\rangle$}% Count depth in font-changes, for error checks\newcount\fontdepth \fontdepth=0% Fonts for short table of contents.\setfont\shortcontrm\rmshape{12}{1000}\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12\setfont\shortcontsl\slshape{12}{1000}\setfont\shortconttt\ttshape{12}{1000}%% Add scribe-like font environments, plus @l for inline lisp (usually sans%% serif) and @ii for TeX italic% \smartitalic{ARG} outputs arg in italics, followed by an italic correction% unless the following character is such as not to need one.\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else \ptexslash\fi\fi\fi}\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}% like \smartslanted except unconditionally uses \ttsl.% @var is set to this for defun arguments.\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}% like \smartslanted except unconditionally use \sl. We never want% ttsl for book titles, do we?\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}\let\i=\smartitalic\let\slanted=\smartslanted\let\var=\smartslanted\let\dfn=\smartslanted\let\emph=\smartitalic% @b, explicit bold.\def\b#1{{\bf #1}}\let\strong=\b% @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 = `- }% Set sfcode to normal for the chars that usually have another value.% Can't use plain's \frenchspacing because it uses the `\x notation, and% sometimes \x has an active definition that messes things up.%\catcode`@=11 \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 \def\endofsentencespacefactor{3000}% for @. and friends }\catcode`@=\other\def\endofsentencespacefactor{3000}% default\def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null}\def\samp#1{`\tclose{#1}'\null}\setfont\keyrm\rmshape{8}{1000}\font\keysy=cmsy9\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% \vbox{\hrule\kern-0.4pt \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% \kern-0.4pt\hrule}% \kern-.06em\raise0.4pt\hbox{\angleright}}}}% The old definition, with no lozenge:%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}\def\ctrl #1{{\tt \rawbackslash \hat}#1}% @file, @option are the same as @samp.\let\file=\samp\let\option=\samp% @code is a modification of @t,% which makes spaces the same size as normal in the surrounding text.\def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \rawbackslash \plainfrenchspacing #1% }% \null}% 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.% 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.{ \catcode`\-=\active \catcode`\_=\active % \global\def\code{\begingroup \catcode`\-=\active \catcode`\_=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\realdash \let_\realunder \fi \codex }}\def\realdash{-}\def\codedash{-\discretionary{}{}{}}\def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) % will therefore expand the active definition of _, which is us % (inside @code that is), therefore an endless loop. \ifusingtt{\ifmmode \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. \else\normalunderscore \fi \discretionary{}{}{}}% {\_}%}\def\codex #1{\tclose{#1}\endgroup}% An additional complication: the above will allow breaks after, e.g.,% each of the four underscores in __typeof__. This is undesirable in% some manuals, especially if they don't have long identifiers in% general. @allowcodebreaks provides a way to control this.% \newif\ifallowcodebreaks \allowcodebreakstrue\def\keywordtrue{true}\def\keywordfalse{false}\parseargdef\allowcodebreaks{% \def\txiarg{#1}% \ifx\txiarg\keywordtrue \allowcodebreakstrue \else\ifx\txiarg\keywordfalse \allowcodebreaksfalse \else \errhelp = \EMsimple \errmessage{Unknown @allowcodebreaks option `\txiarg'}% \fi\fi}% @kbd is like @code, except that if the argument is just one @key command,% then @kbd has no effect.% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),% `example' (@kbd uses ttsl only inside of @example and friends),% or `code' (@kbd uses normal tty font always).\parseargdef\kbdinputstyle{% \def\txiarg{#1}% \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple \errmessage{Unknown @kbdinputstyle option `\txiarg'}% \fi\fi\fi}\def\worddistinct{distinct}\def\wordexample{example}\def\wordcode{code}% Default is `distinct.'\kbdinputstyle distinct\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{\kbdfont\look}}\fi\else{\tclose{\kbdfont\look}}\fi}% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.\let\indicateurl=\code\let\env=\code\let\command=\code% @uref (abbreviation for `urlref') takes an optional (comma-separated)% second argument specifying the text to display and an optional third% arg as text to display instead of (rather than in addition to) the url% itself. First (mandatory) arg is the url. Perhaps eventually put in% a hypertex \special here.%\def\uref#1{\douref #1,,,\finish}\def\douref#1,#2,#3,#4\finish{\begingroup \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url \fi \else \code{#1}% only url given, so show it \fi \fi \endlink\endgroup}% @url synonym for @uref, since that's how everyone uses it.%\let\url=\uref% rms does not like angle brackets --karl, 17may97.% So now @email is just like @uref, unless we are pdf.%%\def\email#1{\angleleft{\tt #1}\angleright}\ifpdf \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -