⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 texinfo.tex

📁 一个类似windows
💻 TEX
📖 第 1 页 / 共 5 页
字号:
  \setleading \singlespaceskip
}

%% Simple single-character @ commands

% @@ prints an @
% Kludge this until the fonts are right (grr).
\def\@{{\tt \char '100}}

% This is turned off because it was never documented
% and you can use @w{...} around a quote to suppress ligatures.
%% Define @` and @' to be the same as ` and '
%% but suppressing ligatures.
%\def\`{{`}}
%\def\'{{'}}

% Used to generate quoted braces.
\def\mylbrace {{\tt \char '173}}
\def\myrbrace {{\tt \char '175}}
\let\{=\mylbrace
\let\}=\myrbrace
\begingroup
  % Definitions to produce actual \{ & \} command in an index.
  \catcode`\{ = 12 \catcode`\} = 12
  \catcode`\[ = 1 \catcode`\] = 2
  \catcode`\@ = 0 \catcode`\\ = 12
  @gdef@lbracecmd[\{]%
  @gdef@rbracecmd[\}]%
@endgroup

% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
\let\, = \c
\let\dotaccent = \.
\def\ringaccent#1{{\accent23 #1}}
\let\tieaccent = \t
\let\ubaraccent = \b
\let\udotaccent = \d

% Other special characters: @questiondown @exclamdown
% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
\def\questiondown{?`}
\def\exclamdown{!`}

% Dotless i and dotless j, used for accents.
\def\imacro{i}
\def\jmacro{j}
\def\dotless#1{%
  \def\temp{#1}%
  \ifx\temp\imacro \ptexi
  \else\ifx\temp\jmacro \j
  \else \errmessage{@dotless can be used only with i or j}%
  \fi\fi
}

% @: forces normal size whitespace following.
\def\:{\spacefactor=1000 }

% @* forces a line break.
\def\*{\hfil\break\hbox{}\ignorespaces}

% @. is an end-of-sentence period.
\def\.{.\spacefactor=3000 }

% @enddots{} is an end-of-sentence ellipsis.
\gdef\enddots{$\mathinner{\ldotp\ldotp\ldotp\ldotp}$\spacefactor=3000}

% @! is an end-of-sentence bang.
\gdef\!{!\spacefactor=3000 }

% @? is an end-of-sentence query.
\gdef\?{?\spacefactor=3000 }

% @w prevents a word break.  Without the \leavevmode, @w at the
% beginning of a paragraph, when TeX is still in vertical mode, would
% produce a whole line of output instead of starting the paragraph.
\def\w#1{\leavevmode\hbox{#1}}

% @group ... @end group forces ... to be all on one page, by enclosing
% it in a TeX vbox.  We use \vtop instead of \vbox to construct the box
% to keep its height that of a normal line.  According to the rules for
% \topskip (p.114 of the TeXbook), the glue inserted is
% max (\topskip - \ht (first item), 0).  If that height is large,
% therefore, no glue is inserted, and the space between the headline and
% the text is small, which looks bad.
%
\def\group{\begingroup
  \ifnum\catcode13=\active \else
    \errhelp = \groupinvalidhelp
    \errmessage{@group invalid in context where filling is enabled}%
  \fi
  %
  % The \vtop we start below produces a box with normal height and large
  % depth; thus, TeX puts \baselineskip glue before it, and (when the
  % next line of text is done) \lineskip glue after it.  (See p.82 of
  % the TeXbook.)  Thus, space below is not quite equal to space
  % above.  But it's pretty close.
  \def\Egroup{%
    \egroup           % End the \vtop.
    \endgroup         % End the \group.
  }%
  %
  \vtop\bgroup
    % We have to put a strut on the last line in case the @group is in
    % the midst of an example, rather than completely enclosing it.
    % Otherwise, the interline space between the last line of the group
    % and the first line afterwards is too small.  But we can't put the
    % strut in \Egroup, since there it would be on a line by itself.
    % Hence this just inserts a strut at the beginning of each line.
    \everypar = {\strut}%
    %
    % Since we have a strut on every line, we don't need any of TeX's
    % normal interline spacing.
    \offinterlineskip
    %
    % OK, but now we have to do something about blank
    % lines in the input in @example-like environments, which normally
    % just turn into \lisppar, which will insert no space now that we've
    % turned off the interline space.  Simplest is to make them be an
    % empty paragraph.
    \ifx\par\lisppar
      \edef\par{\leavevmode \par}%
      %
      % Reset ^^M's definition to new definition of \par.
      \obeylines
    \fi
    %
    % Do @comment since we are called inside an environment such as
    % @example, where each end-of-line in the input causes an
    % end-of-line in the output.  We don't want the end-of-line after
    % the `@group' to put extra space in the output.  Since @group
    % should appear on a line by itself (according to the Texinfo
    % manual), we don't worry about eating any user text.
    \comment
}
%
% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
% message, so this ends up printing `@group can only ...'.
%
\newhelp\groupinvalidhelp{%
group can only be used in environments such as @example,^^J%
where each line of input produces a line of output.}

% @need space-in-mils
% forces a page break if there is not space-in-mils remaining.

\newdimen\mil  \mil=0.001in

\def\need{\parsearg\needx}

% Old definition--didn't work.
%\def\needx #1{\par %
%% This method tries to make TeX break the page naturally
%% if the depth of the box does not fit.
%{\baselineskip=0pt%
%\vtop to #1\mil{\vfil}\kern -#1\mil\penalty 10000
%\prevdepth=-1000pt
%}}

\def\needx#1{%
  % Go into vertical mode, so we don't make a big box in the middle of a
  % paragraph.
  \par
  %
  % Don't add any leading before our big empty box, but allow a page
  % break, since the best break might be right here.
  \allowbreak
  \nointerlineskip
  \vtop to #1\mil{\vfil}%
  %
  % TeX does not even consider page breaks if a penalty added to the
  % main vertical list is 10000 or more.  But in order to see if the
  % empty box we just added fits on the page, we must make it consider
  % page breaks.  On the other hand, we don't want to actually break the
  % page after the empty box.  So we use a penalty of 9999.
  %
  % There is an extremely small chance that TeX will actually break the
  % page at this \penalty, if there are no other feasible breakpoints in
  % sight.  (If the user is using lots of big @group commands, which
  % almost-but-not-quite fill up a page, TeX will have a hard time doing
  % good page breaking, for example.)  However, I could not construct an
  % example where a page broke at this \penalty; if it happens in a real
  % document, then we can reconsider our strategy.
  \penalty9999
  %
  % Back up by the size of the box, whether we did a page break or not.
  \kern -#1\mil
  %
  % Do not allow a page break right after this kern.
  \nobreak
}

% @br   forces paragraph break

\let\br = \par

% @dots{}  output some dots

\def\dots{$\ldots$}

% @page    forces the start of a new page

\def\page{\par\vfill\supereject}

% @exdent text....
% outputs text on separate line in roman font, starting at standard page margin

% This records the amount of indent in the innermost environment.
% That's how much \exdent should take out.
\newskip\exdentamount

% This defn is used inside fill environments such as @defun.
\def\exdent{\parsearg\exdentyyy}
\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}

% This defn is used inside nofill environments such as @example.
\def\nofillexdent{\parsearg\nofillexdentyyy}
\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
\leftline{\hskip\leftskip{\rm#1}}}}

% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.

\def\inmargin#1{%
\strut\vadjust{\nobreak\kern-\strutdepth
  \vtop to \strutdepth{\baselineskip\strutdepth\vss
  \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
\newskip\inmarginspacing \inmarginspacing=1cm
\def\strutdepth{\dp\strutbox}

%\hbox{{\rm#1}}\hfil\break}}

% @include file    insert text of that file as input.
% Allow normal characters that  we make active in the argument (a file name).
\def\include{\begingroup
  \catcode`\\=12
  \catcode`~=12
  \catcode`^=12
  \catcode`_=12
  \catcode`|=12
  \catcode`<=12
  \catcode`>=12
  \catcode`+=12
  \parsearg\includezzz}
% Restore active chars for included file.
\def\includezzz#1{\endgroup\begingroup
  % Read the included file in a group so nested @include's work.
  \def\thisfile{#1}%
  \input\thisfile
\endgroup}

\def\thisfile{}

% @center line   outputs that line, centered

\def\center{\parsearg\centerzzz}
\def\centerzzz #1{{\advance\hsize by -\leftskip
\advance\hsize by -\rightskip
\centerline{#1}}}

% @sp n   outputs n lines of vertical space

\def\sp{\parsearg\spxxx}
\def\spxxx #1{\vskip #1\baselineskip}

% @comment ...line which is ignored...
% @c is the same as @comment
% @ignore ... @end ignore  is another way to write a comment

\def\comment{\catcode 64=\other \catcode 123=\other \catcode 125=\other%
\parsearg \commentxxx}

\def\commentxxx #1{\catcode 64=0 \catcode 123=1 \catcode 125=2 }

\let\c=\comment

% @paragraphindent  is defined for the Info formatting commands only.
\let\paragraphindent=\comment

% Prevent errors for section commands.
% Used in @ignore and in failing conditionals.
\def\ignoresections{%
\let\chapter=\relax
\let\unnumbered=\relax
\let\top=\relax
\let\unnumberedsec=\relax
\let\unnumberedsection=\relax
\let\unnumberedsubsec=\relax
\let\unnumberedsubsection=\relax
\let\unnumberedsubsubsec=\relax
\let\unnumberedsubsubsection=\relax
\let\section=\relax
\let\subsec=\relax
\let\subsubsec=\relax
\let\subsection=\relax
\let\subsubsection=\relax
\let\appendix=\relax
\let\appendixsec=\relax
\let\appendixsection=\relax
\let\appendixsubsec=\relax
\let\appendixsubsection=\relax
\let\appendixsubsubsec=\relax
\let\appendixsubsubsection=\relax
\let\contents=\relax
\let\smallbook=\relax
\let\titlepage=\relax
}

% Used in nested conditionals, where we have to parse the Texinfo source
% and so want to turn off most commands, in case they are used
% incorrectly.
%
\def\ignoremorecommands{%
  \let\defcodeindex = \relax
  \let\defcv = \relax
  \let\deffn = \relax
  \let\deffnx = \relax
  \let\defindex = \relax
  \let\defivar = \relax
  \let\defmac = \relax
  \let\defmethod = \relax
  \let\defop = \relax
  \let\defopt = \relax
  \let\defspec = \relax
  \let\deftp = \relax
  \let\deftypefn = \relax
  \let\deftypefun = \relax
  \let\deftypevar = \relax
  \let\deftypevr = \relax
  \let\defun = \relax
  \let\defvar = \relax
  \let\defvr = \relax
  \let\ref = \relax
  \let\xref = \relax
  \let\printindex = \relax
  \let\pxref = \relax
  \let\settitle = \relax
  \let\setchapternewpage = \relax
  \let\setchapterstyle = \relax
  \let\everyheading = \relax
  \let\evenheading = \relax
  \let\oddheading = \relax
  \let\everyfooting = \relax
  \let\evenfooting = \relax
  \let\oddfooting = \relax
  \let\headings = \relax
  \let\include = \relax
  \let\lowersections = \relax
  \let\down = \relax
  \let\raisesections = \relax
  \let\up = \relax
  \let\set = \relax
  \let\clear = \relax
  \let\item = \relax
}

% Ignore @ignore ... @end ignore.
%
\def\ignore{\doignore{ignore}}

% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
%
\def\ifinfo{\doignore{ifinfo}}
\def\ifhtml{\doignore{ifhtml}}
\def\ifnottex{\doignore{ifnottex}}
\def\html{\doignore{html}}
\def\menu{\doignore{menu}}
\def\direntry{\doignore{direntry}}

% Also ignore @macro ... @end macro.  The user must run texi2dvi,
% which runs makeinfo to do macro expansion.  Ignore @unmacro, too.
\def\macro{\doignore{macro}}
\let\unmacro = \comment


% @dircategory CATEGORY  -- specify a category of the dir file
% which this file should belong to.  Ignore this in TeX.
\let\dircategory = \comment

% Ignore text until a line `@end #1'.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -