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

📄 texinfo.tex

📁 cfd求解器使用与gmsh网格的求解
💻 TEX
📖 第 1 页 / 共 5 页
字号:
% This loses if there are any *other* active characters besides spaces% in the argument -- _ ^ +, for example -- since they get expanded.% Fortunately, Texinfo does not define any such commands.  (If it ever% does, the catcode of the characters in questionwill have to be changed% here.)  But this means we cannot call \removeactivespaces as part of% \argremovec{,omment}, since @c uses \parsearg, and thus the argument% that \parsearg gets might well have any character at all in it.%\def\removeactivespaces#1{%  \begingroup    \ignoreactivespaces    \edef\temp{#1}%    \global\toks0 = \expandafter{\temp}%  \endgroup}% Change the active space to expand to nothing.%\begingroup  \obeyspaces  \gdef\ignoreactivespaces{\obeyspaces\let =\empty}\endgroup\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}%% These are used to keep @begin/@end levels from running away%% Call \inENV within environments (after a \begingroup)\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}\def\ENVcheck{%\ifENV\errmessage{Still within an environment; press RETURN to continue}\endgroup\fi} % This is not perfect, but it should reduce lossage% @begin foo  is the same as @foo, for now.\newhelp\EMsimple{Press RETURN to continue.}\outer\def\begin{\parsearg\beginxxx}\def\beginxxx #1{%\expandafter\ifx\csname #1\endcsname\relax{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else\csname #1\endcsname\fi}% @end foo executes the definition of \Efoo.%\def\end{\parsearg\endxxx}\def\endxxx #1{%  \removeactivespaces{#1}%  \edef\endthing{\the\toks0}%  %  \expandafter\ifx\csname E\endthing\endcsname\relax    \expandafter\ifx\csname \endthing\endcsname\relax      % There's no \foo, i.e., no ``environment'' foo.      \errhelp = \EMsimple      \errmessage{Undefined command `@end \endthing'}%    \else      \unmatchedenderror\endthing    \fi  \else    % Everything's ok; the right environment has been started.    \csname E\endthing\endcsname  \fi}% There is an environment #1, but it hasn't been started.  Give an error.%\def\unmatchedenderror#1{%  \errhelp = \EMsimple  \errmessage{This `@end #1' doesn't have a matching `@#1'}%}% Define the control sequence \E#1 to give an unmatched @end error.%\def\defineunmatchedend#1{%  \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%}%% Simple single-character @ commands% @@ prints an @% Kludge this until the fonts are right (grr).\def\@{{\tt\char64}}% 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\char123}}\def\myrbrace {{\tt\char125}}\let\{=\mylbrace\let\}=\myrbrace\begingroup  % Definitions to produce \{ and \} commands for indices,  % and @{ and @} for the aux file.  \catcode`\{ = \other \catcode`\} = \other  \catcode`\[ = 1 \catcode`\] = 2  \catcode`\! = 0 \catcode`\\ = \other  !gdef!lbracecmd[\{]%  !gdef!rbracecmd[\}]%  !gdef!lbraceatcmd[@{]%  !gdef!rbraceatcmd[@}]%!endgroup% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @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 (plus 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}% Be sure we're in horizontal mode when doing a tie, since we make space% equivalent to this in @example-like environments. Otherwise, a space% at the beginning of a line will start with \penalty -- and% since \penalty is valid in vertical mode, we'd end up putting the% penalty on the vertical list instead of in the new paragraph.{\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ }}% @: forces normal size whitespace following.\def\:{\spacefactor=1000 }% @* forces a line break.\def\*{\hfil\break\hbox{}\ignorespaces}% @/ allows a line break.\let\/=\allowbreak% @. is an end-of-sentence period.\def\.{.\spacefactor=3000 }% @! is an end-of-sentence bang.\def\!{!\spacefactor=3000 }% @? is an end-of-sentence query.\def\?{?\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.%% Another complication is that the group might be very large.  This can% cause the glue on the previous page to be unduly stretched, because it% does not have much material.  In this case, it's better to add an% explicit \vfill so that the extra space is at the bottom.  The% threshold for doing this is if the group is more than \vfilllimit% percent of a page (\vfilllimit can be changed inside of @tex).% \newbox\groupbox\def\vfilllimit{0.7}%\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.    % \dimen0 is the vertical size of the group's box.    \dimen0 = \ht\groupbox  \advance\dimen0 by \dp\groupbox    % \dimen2 is how much space is left on the page (more or less).    \dimen2 = \pageheight   \advance\dimen2 by -\pagetotal    % if the group doesn't fit on the current page, and it's a big big    % group, force a page break.    \ifdim \dimen0 > \dimen2      \ifdim \pagetotal < \vfilllimit\pageheight        \page      \fi    \fi    \copy\groupbox    \endgroup         % End the \group.  }%  %  \setbox\groupbox = \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\nobreak%\prevdepth=-1000pt%}}\def\needx#1{%  % Ensure vertical mode, so we don't make a big box in the middle of a  % paragraph.  \par  %  % If the @need value is less than one line space, it's useless.  \dimen0 = #1\mil  \dimen2 = \ht\strutbox  \advance\dimen2 by \dp\strutbox  \ifdim\dimen0 > \dimen2    %    % Do a \strut just to make the height of this box be normal, so the    % normal leading is inserted relative to the preceding line.    % And a page break here is fine.    \vtop to #1\mil{\strut\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  \fi}% @br   forces paragraph break\let\br = \par% @dots{} output an ellipsis using the current font.% We do .5em per period so that it has the same spacing in a typewriter% font as three actual period characters.%\def\dots{%  \leavevmode  \hbox to 1.5em{%    \hskip 0pt plus 0.25fil minus 0.25fil    .\hss.\hss.%    \hskip 0pt plus 0.5fil minus 0.5fil  }%}% @enddots{} is an end-of-sentence ellipsis.%\def\enddots{%  \leavevmode  \hbox to 2em{%    \hskip 0pt plus 0.25fil minus 0.25fil    .\hss.\hss.\hss.%    \hskip 0pt plus 0.5fil minus 0.5fil  }%  \spacefactor=3000}% @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{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current% paragraph.  For more general purposes, use the \margin insertion% class.  WHICH is `l' or `r'.%\newskip\inmarginspacing \inmarginspacing=1cm\def\strutdepth{\dp\strutbox}%\def\doinmargin#1#2{\strut\vadjust{%  \nobreak  \kern-\strutdepth  \vtop to \strutdepth{%    \baselineskip=\strutdepth    \vss    % if you have multiple lines of stuff to put here, you'll need to    % make the vbox yourself of the appropriate size.    \ifx#1l%      \llap{\ignorespaces #2\hskip\inmarginspacing}%    \else      \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%    \fi    \null  }%}}\def\inleftmargin{\doinmargin l}\def\inrightmargin{\doinmargin r}%% @inmargin{TEXT [, RIGHT-TEXT]}% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;% else use TEXT for both).% \def\inmargin#1{\parseinmargin #1,,\finish}\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.

⌨️ 快捷键说明

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