Mercurial > cpython-lru_cache-weakref
comparison Doc/texinputs/python.sty @ 15360:74e1d79520fd legacy-trunk
Avoid using \withsubitem and \ttindex internally; they have not proven
to be very robust. Using \index directly fixes a lot of entries in the
index that had to be specifically read to determine that they had the
wrong parenthesized description.
| author | Fred Drake <fdrake@acm.org> |
|---|---|
| date | Sun, 29 Oct 2000 05:19:16 +0000 |
| parents | 5d2a2185c651 |
| children | 9a17cdcd3320 |
comparison
equal
deleted
inserted
replaced
| 15359:12b92a35641b | 15360:74e1d79520fd |
|---|---|
| 218 \newcommand{\kwindex}[1]{\indexii{keyword}{#1@{\py@idxcode{#1}}}} | 218 \newcommand{\kwindex}[1]{\indexii{keyword}{#1@{\py@idxcode{#1}}}} |
| 219 \newcommand{\stindex}[1]{\indexii{statement}{#1@{\py@idxcode{#1}}}} | 219 \newcommand{\stindex}[1]{\indexii{statement}{#1@{\py@idxcode{#1}}}} |
| 220 \newcommand{\opindex}[1]{\indexii{operator}{#1@{\py@idxcode{#1}}}} | 220 \newcommand{\opindex}[1]{\indexii{operator}{#1@{\py@idxcode{#1}}}} |
| 221 \newcommand{\exindex}[1]{\indexii{exception}{#1@{\py@idxcode{#1}}}} | 221 \newcommand{\exindex}[1]{\indexii{exception}{#1@{\py@idxcode{#1}}}} |
| 222 \newcommand{\obindex}[1]{\indexii{object}{#1}} | 222 \newcommand{\obindex}[1]{\indexii{object}{#1}} |
| 223 \newcommand{\bifuncindex}[1]{\withsubitem{(built-in function)}{\ttindex{#1()}}} | 223 \newcommand{\bifuncindex}[1]{% |
| 224 \index{#1@{\py@idxcode{#1()}} (built-in function)}} | |
| 224 | 225 |
| 225 % Add an index entry for a module | 226 % Add an index entry for a module |
| 226 \newcommand{\py@refmodule}[2]{\index{#1@{\py@idxcode{#1}} (#2module)}} | 227 \newcommand{\py@refmodule}[2]{\index{#1@{\py@idxcode{#1}} (#2module)}} |
| 227 \newcommand{\refmodindex}[1]{\py@refmodule{#1}{}} | 228 \newcommand{\refmodindex}[1]{\py@refmodule{#1}{}} |
| 228 \newcommand{\refbimodindex}[1]{\py@refmodule{#1}{built-in }} | 229 \newcommand{\refbimodindex}[1]{\py@refmodule{#1}{built-in }} |
| 290 \index{#1@{\py@idxcode{#1}}}% | 291 \index{#1@{\py@idxcode{#1}}}% |
| 291 \fi% | 292 \fi% |
| 292 } | 293 } |
| 293 \newcommand{\withsubitem}[2]{% | 294 \newcommand{\withsubitem}[2]{% |
| 294 \begingroup% | 295 \begingroup% |
| 296 \def\index@subitem{#1}% | |
| 295 \ifpy@usingsubitem% | 297 \ifpy@usingsubitem% |
| 296 \def\index@subitem{#1}#2% | 298 #2% |
| 297 \else% | 299 \else% |
| 298 \def\index@subitem{#1}#2% | 300 \py@usingsubitemtrue% |
| 301 #2% | |
| 299 \py@usingsubitemfalse% | 302 \py@usingsubitemfalse% |
| 300 \fi | 303 \fi |
| 301 \endgroup% | 304 \endgroup% |
| 302 } | 305 } |
| 303 | 306 |
| 562 % \begin{ctypedesc}[index name]{typedef name} | 565 % \begin{ctypedesc}[index name]{typedef name} |
| 563 \newenvironment{ctypedesc}[2][\py@badkey]{ | 566 \newenvironment{ctypedesc}[2][\py@badkey]{ |
| 564 \begin{fulllineitems} | 567 \begin{fulllineitems} |
| 565 \item[\bfcode{#2}% | 568 \item[\bfcode{#2}% |
| 566 \ifx#1\@undefined% | 569 \ifx#1\@undefined% |
| 567 \withsubitem{(C type)}{\ttindex{#2}}% | 570 \index{#2@{\py@idxcode{#2}} (C type)} |
| 568 \else% | 571 \else% |
| 569 \withsubitem{(C type)}{\ttindex{#1}}% | 572 \index{#2@{\py@idxcode{#1}} (C type)} |
| 570 \fi] | 573 \fi] |
| 571 }{\end{fulllineitems}} | 574 }{\end{fulllineitems}} |
| 572 | 575 |
| 573 % Funky macros ----------------------------------------------------------- | 576 % Funky macros ----------------------------------------------------------- |
| 574 % \begin{csimplemacro}{name} | 577 % \begin{csimplemacro}{name} |
| 575 % -- "simple" because it has no args; NOT for constant definitions! | 578 % -- "simple" because it has no args; NOT for constant definitions! |
| 576 \newenvironment{csimplemacrodesc}[1]{ | 579 \newenvironment{csimplemacrodesc}[1]{ |
| 577 \begin{fulllineitems} | 580 \begin{fulllineitems} |
| 578 \item[\bfcode{#1}\withsubitem{(macro)}{\ttindex{#1}}] | 581 \item[\bfcode{#1}\index{#1@{\py@idxcode{#1}} (macro)}] |
| 579 }{\end{fulllineitems}} | 582 }{\end{fulllineitems}} |
| 580 | 583 |
| 581 % simple functions (not methods) ----------------------------------------- | 584 % simple functions (not methods) ----------------------------------------- |
| 582 % \begin{funcdesc}{name}{args} | 585 % \begin{funcdesc}{name}{args} |
| 583 \newcommand{\funcline}[2]{\funclineni{#1}{#2}\ttindex{#1()}} | 586 \newcommand{\funcline}[2]{\funclineni{#1}{#2}% |
| 587 \index{#1@{\py@idxcode{#1()}} (in \py@thismodule)}} | |
| 584 \newenvironment{funcdesc}[2]{ | 588 \newenvironment{funcdesc}[2]{ |
| 585 \begin{fulllineitems} | 589 \begin{fulllineitems} |
| 586 \funcline{#1}{#2} | 590 \funcline{#1}{#2} |
| 587 }{\end{fulllineitems}} | 591 }{\end{fulllineitems}} |
| 588 | 592 |
| 598 \newenvironment{classdesc}[2]{ | 602 \newenvironment{classdesc}[2]{ |
| 599 % Using \renewcommand doesn't work for this, for unknown reasons: | 603 % Using \renewcommand doesn't work for this, for unknown reasons: |
| 600 \global\def\py@thisclass{#1} | 604 \global\def\py@thisclass{#1} |
| 601 \begin{fulllineitems} | 605 \begin{fulllineitems} |
| 602 \item[\code{\bfcode{#1}(\py@varvars{#2})}% | 606 \item[\code{\bfcode{#1}(\py@varvars{#2})}% |
| 603 \withsubitem{(class in \py@thismodule)}{\ttindex{#1}}] | 607 \index{#1@{\py@idxcode{#1}} (class in \py@thismodule)}] |
| 604 }{\end{fulllineitems}} | 608 }{\end{fulllineitems}} |
| 605 | 609 |
| 606 % \begin{excclassdesc}{name}{constructor args} | 610 % \begin{excclassdesc}{name}{constructor args} |
| 607 % but indexes as an exception | 611 % but indexes as an exception |
| 608 \newenvironment{excclassdesc}[2]{ | 612 \newenvironment{excclassdesc}[2]{ |
| 609 % Using \renewcommand doesn't work for this, for unknown reasons: | 613 % Using \renewcommand doesn't work for this, for unknown reasons: |
| 610 \global\def\py@thisclass{#1} | 614 \global\def\py@thisclass{#1} |
| 611 \begin{fulllineitems} | 615 \begin{fulllineitems} |
| 612 \item[\code{\bfcode{#1}(\py@varvars{#2})}% | 616 \item[\code{\bfcode{#1}(\py@varvars{#2})}% |
| 613 \withsubitem{(exception in \py@thismodule)}{\ttindex{#1}}] | 617 \index{#1@{\py@idxcode{#1}} (exception in \py@thismodule)}] |
| 614 }{\end{fulllineitems}} | 618 }{\end{fulllineitems}} |
| 615 | 619 |
| 616 | 620 |
| 617 \let\py@classbadkey=\@undefined | 621 \let\py@classbadkey=\@undefined |
| 618 | 622 |
| 619 % object method ---------------------------------------------------------- | 623 % object method ---------------------------------------------------------- |
| 620 % \begin{methoddesc}[classname]{methodname}{args} | 624 % \begin{methoddesc}[classname]{methodname}{args} |
| 621 \newcommand{\methodline}[3][\py@classbadkey]{ | 625 \newcommand{\methodline}[3][\@undefined]{ |
| 622 \methodlineni{#2}{#3} | 626 \methodlineni{#2}{#3} |
| 623 \ifx#1\@undefined | 627 \ifx#1\@undefined |
| 624 \withsubitem{(\py@thisclass\ method)}{\ttindex{#2()}} | 628 \index{#2@{\py@idxcode{#2()}} (\py@thisclass\ method)} |
| 625 \else | 629 \else |
| 626 \withsubitem{(#1 method)}{\ttindex{#2()}} | 630 \index{#2@{\py@idxcode{#2()}} (#1 method)} |
| 627 \fi | 631 \fi |
| 628 } | 632 } |
| 629 \newenvironment{methoddesc}[3][\py@classbadkey]{ | 633 \newenvironment{methoddesc}[3][\@undefined]{ |
| 630 \begin{fulllineitems} | 634 \begin{fulllineitems} |
| 631 \ifx#1\@undefined | 635 \ifx#1\@undefined |
| 632 \methodline{#2}{#3} | 636 \methodline{#2}{#3} |
| 633 \else | 637 \else |
| 634 \def\py@thisclass{#1} | 638 \def\py@thisclass{#1} |
| 635 \methodline[#1]{#2}{#3} | 639 \methodline{#2}{#3} |
| 636 \fi | 640 \fi |
| 637 }{\end{fulllineitems}} | 641 }{\end{fulllineitems}} |
| 638 | 642 |
| 639 % similar to {methoddesc}, but doesn't add to the index | 643 % similar to {methoddesc}, but doesn't add to the index |
| 640 % (never actually uses the optional argument) | 644 % (never actually uses the optional argument) |
| 648 % object data attribute -------------------------------------------------- | 652 % object data attribute -------------------------------------------------- |
| 649 % \begin{memberdesc}[classname]{membername} | 653 % \begin{memberdesc}[classname]{membername} |
| 650 \newcommand{\memberline}[2][\py@classbadkey]{% | 654 \newcommand{\memberline}[2][\py@classbadkey]{% |
| 651 \ifx#1\@undefined | 655 \ifx#1\@undefined |
| 652 \memberlineni{#2} | 656 \memberlineni{#2} |
| 653 \withsubitem{(\py@thisclass\ attribute)}{\ttindex{#2}} | 657 \index{#2@{\py@idxcode{#2}} (\py@thisclass\ attribute)} |
| 654 \else | 658 \else |
| 655 \memberlineni{#2} | 659 \memberlineni{#2} |
| 656 \withsubitem{(#1 attribute)}{\ttindex{#2}} | 660 \index{#2@{\py@idxcode{#2}} (#1 attribute)} |
| 657 \fi | 661 \fi |
| 658 } | 662 } |
| 659 \newenvironment{memberdesc}[2][\py@classbadkey]{ | 663 \newenvironment{memberdesc}[2][\py@classbadkey]{ |
| 660 \begin{fulllineitems} | 664 \begin{fulllineitems} |
| 661 \ifx#1\@undefined | 665 \ifx#1\@undefined |
| 662 \memberline{#2} | 666 \memberline{#2} |
| 663 \else | 667 \else |
| 664 \def\py@thisclass{#1} | 668 \def\py@thisclass{#1} |
| 665 \memberline[#1]{#2} | 669 \memberline{#2} |
| 666 \fi | 670 \fi |
| 667 }{\end{fulllineitems}} | 671 }{\end{fulllineitems}} |
| 668 | 672 |
| 669 % similar to {memberdesc}, but doesn't add to the index | 673 % similar to {memberdesc}, but doesn't add to the index |
| 670 % (never actually uses the optional argument) | 674 % (never actually uses the optional argument) |
| 674 \memberlineni{#2} | 678 \memberlineni{#2} |
| 675 }{\end{fulllineitems}} | 679 }{\end{fulllineitems}} |
| 676 | 680 |
| 677 % For exceptions: -------------------------------------------------------- | 681 % For exceptions: -------------------------------------------------------- |
| 678 % \begin{excdesc}{name} | 682 % \begin{excdesc}{name} |
| 679 % -- need support for constructor; maybe use optional parameter? | 683 % -- for constructor information, use excclassdesc instead |
| 680 \newenvironment{excdesc}[1]{ | 684 \newenvironment{excdesc}[1]{ |
| 681 \begin{fulllineitems} | 685 \begin{fulllineitems} |
| 682 \item[\bfcode{#1}\ttindex{#1}] | 686 \item[\bfcode{#1}% |
| 687 \index{#1@{\py@idxcode{#1}} (exception in \py@thismodule)}] | |
| 683 }{\end{fulllineitems}} | 688 }{\end{fulllineitems}} |
| 684 | 689 |
| 685 % Module data or constants: ---------------------------------------------- | 690 % Module data or constants: ---------------------------------------------- |
| 686 % \begin{datadesc}{name} | 691 % \begin{datadesc}{name} |
| 687 \newcommand{\dataline}[1]{\datalineni{#1}\ttindex{#1}} | 692 \newcommand{\dataline}[1]{% |
| 693 \datalineni{#1}\index{#1@{\py@idxcode{#1}} (data in \py@thismodule)}} | |
| 688 \newenvironment{datadesc}[1]{ | 694 \newenvironment{datadesc}[1]{ |
| 689 \begin{fulllineitems} | 695 \begin{fulllineitems} |
| 690 \dataline{#1} | 696 \dataline{#1} |
| 691 }{\end{fulllineitems}} | 697 }{\end{fulllineitems}} |
| 692 | 698 |
