From a105d37fbd235ef9e97bc383de505739fcde2712 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 19 May 2009 18:35:54 +0000 Subject: move lshort-russian out of texmf-doc git-svn-id: svn://tug.org/texlive/trunk@13247 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/lshort-russian/CHANGES | 355 +++++ .../texmf-dist/doc/latex/lshort-russian/MANIFEST | 24 + .../texmf-dist/doc/latex/lshort-russian/Makefile | 64 + Master/texmf-dist/doc/latex/lshort-russian/README | 76 + .../texmf-dist/doc/latex/lshort-russian/fixdate.pl | 6 + .../texmf-dist/doc/latex/lshort-russian/lshort.dvi | Bin 0 -> 1097504 bytes .../doc/latex/lshort-russian/lshortru.pdf | Bin 0 -> 1966469 bytes .../doc/latex/lshort-russian/src/biblio.tex | 98 ++ .../doc/latex/lshort-russian/src/contrib.tex | 140 ++ .../doc/latex/lshort-russian/src/custom.tex | 862 +++++++++++ .../doc/latex/lshort-russian/src/fancyhea.sty | 129 ++ .../doc/latex/lshort-russian/src/fancyvrb.cfg | 14 + .../doc/latex/lshort-russian/src/fancyvrb.sty | 1426 +++++++++++++++++ .../doc/latex/lshort-russian/src/graphic.tex | 654 ++++++++ .../doc/latex/lshort-russian/src/hbaw.sty | 154 ++ .../doc/latex/lshort-russian/src/hcolor.sty | 157 ++ .../doc/latex/lshort-russian/src/lshort.out | 119 ++ .../doc/latex/lshort-russian/src/lshort.sty | 273 ++++ .../doc/latex/lshort-russian/src/lshort.tex | 123 ++ .../doc/latex/lshort-russian/src/lssym.tex | 343 ++++ .../doc/latex/lshort-russian/src/math.tex | 777 ++++++++++ .../doc/latex/lshort-russian/src/mylayout.sty | 373 +++++ .../doc/latex/lshort-russian/src/overview.tex | 113 ++ .../doc/latex/lshort-russian/src/spec.tex | 1022 ++++++++++++ .../doc/latex/lshort-russian/src/t-fvrbex.tex | 213 +++ .../doc/latex/lshort-russian/src/things.tex | 809 ++++++++++ .../doc/latex/lshort-russian/src/title.tex | 75 + .../doc/latex/lshort-russian/src/typeset.tex | 1635 ++++++++++++++++++++ 28 files changed, 10034 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/CHANGES create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/MANIFEST create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/Makefile create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/README create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/fixdate.pl create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/lshort.dvi create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/lshortru.pdf create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/biblio.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/contrib.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/fancyhea.sty create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.cfg create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.sty create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/graphic.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/hbaw.sty create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/hcolor.sty create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/lshort.out create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/lshort.sty create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/lshort.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/lssym.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/math.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/mylayout.sty create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/overview.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/t-fvrbex.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/things.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/title.tex create mode 100644 Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex (limited to 'Master/texmf-dist/doc/latex/lshort-russian') diff --git a/Master/texmf-dist/doc/latex/lshort-russian/CHANGES b/Master/texmf-dist/doc/latex/lshort-russian/CHANGES new file mode 100644 index 00000000000..25bd10af217 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/CHANGES @@ -0,0 +1,355 @@ +4.12 +---- +* fixed order of hebrwe letters to be 'alphabetic' +* fixed colons in table 3.7 (Rightarrow was captured by marovsym) +* added cyrguide bibliogrphay entry back in ... +* table head in eurotable translated to english +* remove kees.fig from Makefile +* some wording fixes to the cirillic section. +* added pdfstringdefDisableCommands to the preamble to fix some broken bookmarks -- Maksym Polyakov +* reworded the paragraph on the positionargument of the newsavebox command. + +4.11 +--- +* added graphic.tex file to source distro + +4.10 +---- +* Integrated EuroSymbol table from the french translation by Daniel Flipo +* Created new chapter: graphics with description on the picture environment by Urs Oswald. +* Moved Xy pics to the graphics chapter +* compile with cm-super fonts for now +* updates to the hyperref syntax table -- Maksym Polyakov +* rewritten sectons on fontencoding, inputencoding -- Maksym Polyakov +* section on cyrillic support -- Maksym Polyakov +* turned CTAN references into URLs as suggested by Maksym Polyakov +* minor updates to pdfscreen section as suggested by Maksym Polyakov +* other little spellers +* get rid of color in ps output ... we do not need it ... tobi +* added note on p{} to tabular section +* minor fixes to pdf section --- Matthias Dreier +* added note on changeing baselineskip instead of using linespread. +* added example for using the index command. + +4.0 +--- +* many minor fixes and edits in pagebreaks +* added note on cm-super +* punctuation, wording, big patch from Baron Schwartz +* Translated and integreated the pdfTeX description from the + franch version of lshort. +* Added descrion of the .fd files +* \part is available in article too +* small backports from the french translation +* drop atop and choose. Replace by binom +* put notes on Float Placing Permissions where they belong +* added eqref +* mention landscape option of default document classes +* mathcal update +* changed section headings in first sample +* drop latex structure figure from the intro as it is way to complex for a beginner to understand. +* drop LaTeX2e story ... who care these days +* added note on swiss use of >>guillemets<< +* added note on eurosymb +* added note on dvipdf +* added article on Korean Support +* added Xy Pic intro +* more symbols aded -- alex mai + +3.21 +---- +From Tobi +* Added some notes on problems when running latex to section 1.5 +* added oddsidemargin to layout graphics +* added note on the AE package +* added extension and font indexes +* mention optional label in bibitem +* rephrase hyphenation explanation +* added \aa to index +* rearranged PageLayout section +From Alexander Mai +* mini rewrites for math explanations +* improved makefile +* improved table environment spec + +From Daniel Flipo +* section on french language support + +From Maksym Polyakov +* parbox is not an evironment +* line 248 rephrasing + +3.20 +---- +From Alexander Mai +* tabular presentation of input encodings +* description of a typical commandline latex session +* \X{\lvert}&\X{\rvert}&\X{\lVert}&\X{\rVert} +* bigskip smallskip description +* new ctan reference +* cdot for the math section + +From Tobi +* added lshort.ist to insert letters between index sections +* added comment on plus and minus in setlength +* degree symbol +* moved fragile commands section to chapter 2 +* no more bad boxes ... neither over nor underfull +* no more oscilating text + +From Many +* spelling fixes + +3.19 +---- +changed wording on \apendix \frontmatter \backmatter ... +fixed pagebreaks in math chapter + +3.18 +---- +compile fixed for environments where TEXINPUTS is set +replace the environemnt command with lscommand + it seems command is too common .. (Alex Mai) + +3.17 +---- +Added more info on the inputenc package. +Added Section on German Language support. Sections for other languages are welcome. +Better explanation of the \section[xxx]{yyy} syntax +Changed wording for Cross Ref +Changed wording on Quotation Marks +added note on fbox. +added \underline command +\cleardoublepage goes to a righthand page +added \cline +added section on package installation contributed by Joseph Hilferty + +3.16 +---- +Fixed upload procedure +Some spelling fixes +Updated old URLs + +3.15 +---- +Integrated a number of spelling and logic fixes by BjЖrn Hvittfeldt + +3.14 +---- +Even better Makefile +Update TODO + +3.13 +---- +Better Makefile +Added description of Today, TeX, LaTeX, LaTeXe +Added description of file extensions you will find when working with latex +Some CTAN references fixed +Better explanation for hyphenation command +Added paragraph on typesetting tildes ... +Added example with multicol and borders (|c|) +Added Hamster disadvantage ... +How todo a tilde + +3.12 +---- +Replaced first section (TeX) as suggested by Michael John Downes in order to +be more in sync with the real events ... + +3.11 +---- +better explanation for sloppy/fussy +\sin and frinds in index +pointer to whitespace after non argument commands information in custom.tex + +3.10 +---- +removed some exess files from tar files + + +3.9 +--- +* included a number of minor fixes from Alexander Mai ... + +3.8 +--- +* Added sections on \phantom and \protect commands, based + on a contribution from Alexander Mai +* Added section on lines in array environments ... thanks Alex +* rephrased newcommand section ... again thnaks to Alex + +3.7 +--- +* re-release to for some even spelling :-) + +3.6 +--- +* released on CTAN ... + +3.5 +--- +* even smaller factual errors corrected ... + +3.4 +--- +* minor spelling fixes + +3.3 +--- +* lots of small patches from Prof Ripley ... +* fixed compile problem on first run ... +* properly packaged the whole thing .... + +3.2 +--- + +* added better explanation of the difference between newline and linebreak +* added about 1000 spell and detail fixed contributed by Hanspeter Schmid +* added new section: The Structure of Text and Language contributed by + Hanspeter Schmid +* added more verbose explanation about babel and hyphenation + + +3.1 +--- +* Var spell and other fixes. Especially the ftp.shsu.edu reference + has been fixed. + +3.0 +--- +* Restructuring of the Chapter 4 for didactical reasons ... +* moved some bits to the new Chapter 5. +* added 15 pages of new material ... + + +2.3 +--- +* it's slides and not slide ... p8 +* pointer to foiltex added ... p8 + +2.2 non beta 13/10/97 +--------------------- +* made the thing compile with pdftex and hyperref + +David Frey: +* Sensible copyright notice +* some mathematical error in math mode +* correct Murphy ... + +Cyril Goutte: +* typos + +Martin Maechler: +* an Inch is exactly 25.4 mm! + +2.2 7/11/95 +----------- +Christian Kern: + * Spelling, and some suggestions for new stuff to inlcude + +Young U. Ryu: + * Spelling and some errors in latex + +Cyril Goutte: + * Some additions for math + +Brian Ripley: + * Spelling, LateX 95/12/1 compatibility + * Some more real english .... :-) + * AMS-LaTeX now prefers eucal to euscript, so he has altered both + lssym.tex and lshort2e.sty. + * He has corrected some examples in chapter 3 which would be regarded + as bad practice in mathematical typesetting. + * He has added a section on bold symbols, and conditionals for amsbsy. + + +2.1 17/6/1995 +------------- +Rasmus Borup Hansen: + * tonns of spelling mistakes and some suggestions for more logic ... + +Josef Tkadlec: + * some spellings + * all new hopefully even more usefull maths tables ... + +2.0 5/6/1995 +----------- +Mike Ressler: + * Fixed Loads of spelling Mistakes. +1.9.9: 16/5/95 +--------------- +Tobi: + * General Makeover + + * Added Preface. + + * Added example to math.tex + + * Introduced intro environment. I am going to add a short describtion about + what the user can expect, to each chapter. + + * Page Layout. spec.tex now contains a copy of the Geometry page layout + parameters page. Provided by the layout package from the tools bundle. + + * newcommand, newenvironament and newtheorem are described. + + * new dynamic document title + + * using fancy headings for header. + +1.2: 8/2/95 +------------ +Tobi: +Revoved all | | in an attempt to make +the document latex2html compatible ... failed :-( + +Elliot: +* Odd spelling mistakes + +David Jones: +* "Whitespace Description" ... + +Byron: +* Many Spelling fixes Some requests for examples + +Partl: +* Fixed Irene Hyna addr + +Martien: +* "Character" spelling + +Claus: +* ref to indexing without backslash ... + + +1.1: 17/11/94 +------------------ +Eric: +* Spelling. +* Removed numerical from section 1.3.3 (suggesting \3 as a valid command) +* \quad as MATH spacing +* No Pagenumber on first Page + +Mike: +* Fixed @{} Discussion (thanks) + +David: +* Letter case in \hyphenation ignored +* `|-|.'' +* shelf\mbox{}ful because TeX can `forget' {} after hyphenation attempt +* pointer to dcolumn package +* standard calsses assume [tbp] ! +* Pointer to amstex and exscale package added to \big description +* Thanks for symbols.tex +* |*| and | | as forbidden delimiters with verb +* refrence to amsfonts removed +* LaTeX \vspace works within a paragraph ... (-> normally) +* Pointer to graphguide.tex + +Tobi: +* `horizontal' and Page Style Indexentries +* Odd Spell Fix +* pagestyle index entries +* Commented out display style example, to keep total size down to 58 Pages +* Fixed eufrak problem thanks David and Martien + diff --git a/Master/texmf-dist/doc/latex/lshort-russian/MANIFEST b/Master/texmf-dist/doc/latex/lshort-russian/MANIFEST new file mode 100644 index 00000000000..22f673c1616 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/MANIFEST @@ -0,0 +1,24 @@ +00README +CHANGES +TODO +MANIFEST +Makefile +README +TRANSLATIONS +fixdate.pl +src/biblio.tex +src/contrib.tex +src/custom.tex +src/fancyhea.sty +src/lshort.sty +src/lshort.tex +src/lssym.tex +src/graphic.tex +src/math.tex +src/mylayout.sty +src/overview.tex +src/spec.tex +src/things.tex +src/title.tex +src/typeset.tex +src/lshort.ist diff --git a/Master/texmf-dist/doc/latex/lshort-russian/Makefile b/Master/texmf-dist/doc/latex/lshort-russian/Makefile new file mode 100644 index 00000000000..a3d66fe1031 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/Makefile @@ -0,0 +1,64 @@ +# pstops "4:0L@0.8(22.5cm,-0.6cm)+1L@0.8(22.5cm,13.3cm),2L@0.8(22.5cm,-0.6cm)+3L@0.8(22.5cm,13.3cm)" \ +SHELL = /bin/sh +VERS = 4.12 + +OTHER = README CHANGES +FILES = src/biblio.tex src/math.tex src/things.tex src/contrib.tex src/lshort.sty src/mylayout.sty src/title.tex \ + src/custom.tex src/lshort.tex src/overview.tex src/typeset.tex src/fancyhea.sty src/lssym.tex src/spec.tex src/graphic.tex + +# Define some variables +LATEX=latex +PDFLATEX=pdflatex +MAKEINDEX=rumakeindex + + +# The default targets +all: lshort.dvi lshort.ps lshort-book.ps lshort.pdf + + +lshort.dvi: $(FILES) + -mkdir texbuild + (TEXINPUTS=.:`pwd`/src:${TEXINPUTS:-:} && export TEXINPUTS && cd texbuild && \ + $(LATEX) lshort && $(LATEX) lshort && (cd ../src; $(MAKEINDEX) lshort ) && \ + $(LATEX) lshort && $(LATEX) lshort && mv lshort.dvi ..) + +lshort.ps: lshort.dvi + (T1FONTS=.:`pwd`/eurofont: && export T1FONTS && dvips -Pcmz -olshort.ps lshort.dvi ) + rm texbuild/* + +lshort-book.ps: lshort.ps + psbook lshort.ps out.ps + pstops "4:0L@0.8(22.76cm,-0.6cm)+1L@0.8(22.76cm,13.45cm),3R@0.8(-1.38cm,16.25cm)+2R@0.8(-1.38cm,30.3cm)" \ + out.ps lshort-book.ps + rm out.ps + +lshort.pdf: $(FILES) + -mkdir pdfbuild + (T1FONTS=.:`pwd`/eurofont: && export T1FONTS && TEXINPUTS=.:`pwd`/src:${TEXINPUTS:-:}&&export TEXINPUTS&& cd pdfbuild&& \ + $(PDFLATEX) lshort&& $(PDFLATEX) lshort&& \ + $(MAKEINDEX) -s ../src/lshort.ist lshort&&$(PDFLATEX) lshort&& \ + (thumbpdf --resolution 10 lshort.pdf && $(PDFLATEX) lshort)&& \ + mv lshort.pdf .. ) + rm pdfbuild/* + +src/title.tex: Makefile + perl fixdate.pl $(VERS) < src/title.tex > src/title.tex2 && mv src/title.tex2 src/title.tex + +quick: $(FILES) + (TEXINPUTS=`pwd`/src:$(TEXINPUTS)&& export TEXINPUTS&& cd texbuild&& \ + $(LATEX) lshort&& mv lshort.dvi ..) + + +tar: src/title.tex + ln -s . lshort-$(VERS) + gtar -zcvf lshort-$(VERS).src.tar.gz `awk -e '{print "lshort-$(VERS)/"$$1}' MANIFEST` + rm lshort-$(VERS) + +dist: tar + cp lshort-$(VERS).src.tar.gz CHANGES README lshort-book.ps lshort.dvi lshort.pdf lshort.ps $(HOME)/public_html/lshort/ + lftp -e 'cd incoming;mkdir lshort-$(VERS);cd lshort-$(VERS);mput lshort-$(VERS).src.tar.gz CHANGES README lshort-book.ps lshort.dvi lshort.pdf lshort.ps;quit' ftp.tex.ac.uk + (gecho "Robin,\n\nI have uploaded lshort-$(VERS) to ftp.tex.ac.uk:/incoming/lshort-$(VERS).\n\nIf you think it is appropriate, announce it please.\n\nThanks and cheers\ntobi\n\n\n--";fortune -s shakes goethe) | mailx -s "Lshort Upload (note the quote)" ctan@dante.de + (gecho "Folks,\n\nI have created lshort-$(VERS). It is available from http://people.ee.ethz.ch/~oetiker/lshort.\n\nCheers tobi\n\n\n--";fortune -s shakes goethe) | mailx -s "Lshort $(VERS)" `cat TRLIST` + +clean: + rm -rf texbuild pdfbuild diff --git a/Master/texmf-dist/doc/latex/lshort-russian/README b/Master/texmf-dist/doc/latex/lshort-russian/README new file mode 100644 index 00000000000..06bc77e4dfd --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/README @@ -0,0 +1,76 @@ + The not so Short Introduction to LaTeX +------------------------------------------------------------------------ + by Tobias Oetiker + + If you want to learn how to write your documents with LaTeX, + this introduction is for you. It is not about setting up a + LaTeX system. While it is not as comprehensive as Lamport's book, + it should be sufficient in most cases. + + To print the document, there are several possibilities: + + a) Copy one of the ps files to your printer: + + lshort.ps + lshort-book.ps A4/booklet/duplex + + NOTE for Abt IIIB: you can print the booklet version to + the VPP printer with + + vpp -dest=etzj61 lshort-book.ps + or + vpp -dest=etzd96 lshort-book.ps + + b) Print the lshort2e.dvi file with a dvi-driver. (You need to + have the AMS math fonts installed your system. If you don't, + your dvi-driver will complain.) + + c) Rebuild the whole document from scratch by LaTeXing + lshort2e.tex. (If you don't have the AMS classes installed, the + relevant parts of the document will be left out, but it + will format without problem. After latexing the document twice, + you should use makeindex to generate a new index file. + + (to get the adobe euro symbol right you need to install the + ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe as described in + http://www.ctan.org/tex-archive/fonts/euro/latex/europs/README.europs) + + The preformatted versions of the document are set for double sided + printing on A4 paper. If you want a single sided version, you need to + replace "twoside" by "oneside" in the parameters list of the + \documentclass command in lshort2e.tex. To produce a small booklet (A5) + you can use the pre generated ps file of you can use your dvi-driver to + shrink the output and then use pstops to paste the resulting pages + together in the right order. + + To produce a A5 Booklet from source, I recommend the following procedure, + on the twoside lshort2e.dvi: + + *) dvips -x800 -P?? -olshort.ps lshort.dvi + (?? is the name of the printer you want to print the booklet) + + *) psbook lshort2e.ps out.ps + + *) pstops "4:0L(27.8cm,-1.5cm)+1L(27.8cm,13.3cm)" out.ps p1.ps + (p1.ps now contains the front pages) + + *) pstops "4:2L(27.8cm,-1.5cm)+3L(27.8cm,13.3cm)" out.ps p2.ps + (p2.ps contains the back pages) + + If have a doublex(shoprtbind) Printer: + + *) pstops "4:0L(27.8cm,-1.5cm)+1L(27.8cm,13.3cm),2L(27.8cm,-1.5cm)+3L(27.8cm,13.3cm)" out.ps lshort-book.ps + + If you have postscript versions of the latex Fonts you can use + (make sure your printer has enough memmory for this) + + *) dvips -Pcmz -olshort.ps lshort.dvi + *) psbook lshort.ps out.ps + *) pstops "4:0L@0.8(22.76cm,-0.6cm)+1L@0.8(22.76cm,13.45cm),3R@0.8(-1.38cm,16.25cm)+2R@0.8(-1.38cm,30.3cm)" out.ps lshort-book.ps + + + Cheers + Tobias Oetiker oetiker@ee.ethz.ch + +PS: If you have any comment, or just find the book helpful, + please let me know. diff --git a/Master/texmf-dist/doc/latex/lshort-russian/fixdate.pl b/Master/texmf-dist/doc/latex/lshort-russian/fixdate.pl new file mode 100644 index 00000000000..eec297f9e71 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/fixdate.pl @@ -0,0 +1,6 @@ +chomp ($d = `date +"%d %B, %Y"`); +$v = pop @ARGV; +while (<>) { + s/^Version.+/Version~$v, $d/; + print; +} diff --git a/Master/texmf-dist/doc/latex/lshort-russian/lshort.dvi b/Master/texmf-dist/doc/latex/lshort-russian/lshort.dvi new file mode 100644 index 00000000000..907d6146aee Binary files /dev/null and b/Master/texmf-dist/doc/latex/lshort-russian/lshort.dvi differ diff --git a/Master/texmf-dist/doc/latex/lshort-russian/lshortru.pdf b/Master/texmf-dist/doc/latex/lshort-russian/lshortru.pdf new file mode 100644 index 00000000000..16376a2ec8a Binary files /dev/null and b/Master/texmf-dist/doc/latex/lshort-russian/lshortru.pdf differ diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/biblio.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/biblio.tex new file mode 100644 index 00000000000..903d5d30f8d --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/biblio.tex @@ -0,0 +1,98 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: The Bibliography +% File: biblio.tex (lshort2e.tex) +% $Id: biblio.tex,v 1.1.1.1 2002/02/26 10:04:20 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{thebibliography}{99} +\addcontentsline{toc}{chapter}{\bibname} +\bibitem{manual} Leslie Lamport. \newblock \emph{{\LaTeX:} A Document + Preparation System}. \newblock Addison-Wesley, Reading, + Massachusetts, второе издание, 1994, ISBN~0-201-52983-1. + +\bibitem{texbook} Donald~E. Knuth. \newblock \textit{The \TeX{}book,} + Volume~A of \textit{Computers and Typesetting}, Addison-Wesley, + Reading, Massachusetts, second edition, 1984, ISBN~0-201-13448-9. + +\bibitem{companion} Michel Goossens, Frank Mittelbach and Alexander + Samarin. \newblock \emph{The {\LaTeX} Companion}. \newblock + Addison-Wesley, Reading, Massachusetts, 1994, + ISBN~0-201-54199-8.\footnote{Издан русский перевод: М.Гуссенс, + Ф.Миттельбах, А.Самарин. \emph{Путеводитель по пакету \LaTeX{} и его + расширению \LaTeXe{}}. Мир, 1999, ISBN~5-03-003325-4.} + +\bibitem{graphicscompanion} Michel Goossens, Sebastian Rahtz and Frank + Mittelbach. \newblock \emph{The {\LaTeX} Graphics Companion}. \newblock + Addison-Wesley, Reading, Massachusetts, 1997, + ISBN~0-201-85469-4.\footnote{Издан русский перевод: М.Гуссенс, + С.Ратц и Ф.Миттельбах. \emph{Путеводитель по пакету \LaTeX{} и его + графическим расширениям}. Мир, 2002, ISBN~5-03-003388-2.} + +\bibitem{local} Каждая установка \LaTeX{} должна содержать так + называемый \emph{\LaTeX{} Local Guide}, объясняющий особенности + локальной системы. Он должен находиться в файле, называющемся + \texttt{local.tex}. К сожалению, некоторые ленивые администраторы + такого документа не предоставляют. В таком случае просите о помощи + местного \LaTeX{} гуру. + +\bibitem{usrguide} \LaTeX3 Project Team. \newblock \emph{\LaTeXe~for + authors}. \newblock Включен в поставку \LaTeXe{} как + \texttt{usrguide.tex}. + +\bibitem{clsguide} \LaTeX3 Project Team. \newblock \emph{\LaTeXe~for + Class and Package writers}. \newblock Включен в поставку \LaTeXe{} + как \texttt{clsguide.tex}. + +\bibitem{fntguide} \LaTeX3 Project Team. \newblock \emph{\LaTeXe~Font + selection}. \newblock Включен в поставку \LaTeXe{} как + \texttt{fntguide.tex}. + +\bibitem{graphics} D.~P.~Carlisle. \newblock \emph{Packages in the + `graphics' bundle}. \newblock Входит в состав комплекта `graphics' как + \texttt{grfguide.tex}, доступен оттуда же, откуда ваша поставка \LaTeX{}. + +\bibitem{verbatim} Rainer~Sch\"opf, Bernd~Raichle, Chris~Rowley. +\newblock \emph{A New Implementation of \LaTeX's verbatim + Environments}. + \newblock Входит в состав комплекта `tools' как + \texttt{verbatim.dtx}, доступен оттуда же, откуда ваша поставка \LaTeX{}. + +\bibitem{cyrguide} Vladimir Volovich, Werner Lemberg and \LaTeX3 Project Team. + \newblock \emph{Cyrillic languages support in \LaTeX}. \newblock Включен в + поставку \LaTeXe{} как \texttt{cyrguide.tex}. + +\bibitem{catalogue} Graham~Williams. \newblock \emph{The TeX + Catalogue} полный список множества пакетов, имеющих отношение к + \TeX{} и \LaTeX{} \newblock Доступен в Интернет по адресу + \texttt{\CTAN|help/Catalogue/catalogue.html|} + +\bibitem{eps} Keith~Reckdahl. \newblock \emph{Using EPS Graphics in + \LaTeXe{} Documents} объясняет все, что вы когда бы то ни было + хотели знать про EPS файлы и их использование в документах \LaTeX{}. + \newblock Доступен в Интернет по адресу + \texttt{\CTAN|info/epslatex.ps|} + +\bibitem{xy-pic} Kristoffer H. Rose. + \newblock \emph{\Xy-pic User's Guide}. \newblock + Доступен в Интеpнет с CTAN вместе с дистpибутивом \Xy-pic. + +\bibitem{metapost} John D. Hobby. + \newblock \emph{A User's Manual for MetaPost}. \newblock + Доступен по адресу \url{http://cm.bell-labs.com/who/hobby/} + +\bibitem{unbound} Alan Hoenig. + \newblock \emph{\TeX{} Unbound}. \newblock Oxford University Press, 1998, + ISBN 0-19-509685-1; 0-19-509686-X (pbk.) + +\bibitem{ursoswald} Urs Oswald. + \newblock \emph{Graphics in \LaTeXe{}}, содержит набор исходных текстов на + Java для генерации произвольных окружностей и эллипсов из окружения \texttt{picture}, + и \emph{MetaPost - A Tutorial}. + \newblock Оба доступны по адресу \url{http://www.ursoswald.ch} + +\end{thebibliography} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort2e" +%%% End: diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/contrib.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/contrib.tex new file mode 100644 index 00000000000..5264159f1d3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/contrib.tex @@ -0,0 +1,140 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Who contributed to this Document +% $Id: contrib.tex,v 1.1.1.1 2002/02/26 10:04:20 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Благодарности} + +\noindent Многое из включенного в это введение материала исходит из +австрийского введения в \LaTeX\ 2.09, написанного на немецком: + +\begin{verse} +\contrib{Hubert Partl}{partl@mail.boku.ac.at}% +{Zentraler Informatikdienst der Universit\"at f\"ur Bodenkultur Wien} +\contrib{Irene Hyna}{Irene.Hyna@bmwf.ac.at}% + {Bundesministerium f\"ur Wissenschaft und Forschung Wien} +\contrib{Elisabeth Schlegl}{no email}% + {in Graz} +\end{verse} + +Если вы интересуетесь немецким вариантом документа, вы можете найти +его версию, которую J\"org Knappen обновил для \LaTeXe{}, по адресу\\ +\texttt{\CTAN|info/lshort/german|}. + +\newpage +\noindent В процессе подготовки этого документа я просил о рецензиях в +\texttt{comp.text.tex}. Я получил множество откликов. Читатели помогли +улучшить эту книжку исправлениями, предложениями и материалами. Они +старались помочь мне довести документ до его нынешнего состояния. Я +хотел бы искренне их всех поблагодарить. Естественно, все ошибки, +которые вы найдете в этой книжке,~--- мои. Случайно попавшее сюда +правильно написанное слово наверняка обязано своим появлением репликой +от одного из нижеперечисленных. + + +{\flushleft\small\sloppy +Rosemary~Bailey, %r.a.bailey@qmw.ac.uk 0.2 +Marc~Bevand, % +Friedemann~Brauer, %fbrauer@is.dal.ca 3.4 +Jan~Busa, % +Markus~Br\"uhwiler,\\ % +Pietro~Braione, % +David~Carlisle, %GONE carlisle@cs.man.ac.uk 1.0 +Jos\'e~Carlos~Santos, % +Mike~Chapman, %chapman@eeh.ee.ethz.ch 3.16 +Pierre~Chardaire,\\ % +Chris~McCormack, %GONE chrismc@eecs.umich.edu 0.1 +Wim~van~Dam, %GONE wimvdam@cs.kun.nl 2.2 +Jan~Dittberner,\\ %jan@jan-dittberner.de 3.15 +Michael~John~Downes, % 14 Oct 1999 +Matthias~Dreier, %dreier@ostium.ch +David~Dureisseix, %dureisse@lmt.ens-cachan.fr 1.1 +Elliot, %GONE enh-a@minster.york.ac.uk 1.1 +Hans~Ehrbar, %ehrbar@econ.utah.edu +Daniel~Flipo, %Daniel.Flipo@univ-lille1.fr +David~Frey, %david@eos.lugs.ch 2.2 +Hans~Fugal, %hans@fugal.net +Robin~Fairbairns, %Robin.Fairbairns@cl.cam.ac.uk 0.2 1.0 +J\"org~Fischer, %j.fischer@xpoint.at 3.16 +Erik~Frisk, %frisk@isy.liu.se 3.4 +Mic~Milic~Frederickx, % +Frank, %frank@freezone.co.uk 11 Feb 2000 +Kasper~B.~Graversen, % +Arlo~Griffiths, % +Alexandre~Guimond, %guimond@IRO.UMontreal.CA 0.9 +Andy~Goth, % +Cyril~Goutte, %goutte@ei.dtu.dk 2.1 2.2 +Greg~Gamble, %gregg@maths.uwa.edu.au 2.2 +Neil~Hammond, %nfh@dmu.ac.uk 0.3 +Rasmus~Borup~Hansen, %GONE rbhfamos@math.ku.dk 0.2 0.9 0.91 0.92 1.9.9 +Joseph~Hilferty, % +Bj\"orn Hvittfeldt,\\ %bjorn@hvittfeldt.com 3.13 +Martien~Hulsen, %M.A.Hulsen@WbMt.TUDelft.NL 1.0 1.1 +Werner~Icking, % 3.1 +Jakob, %diness@get2net.dk +Eric~Jacoboni, %GONE jacoboni@enseeiht.fr 0.1 0.9 +Alan~Jeffrey, %alanje@cogs.sussex.ac.uk 0.2 +Byron~Jones, %bj@dmu.ac.uk 1.1 +David~Jones, %GONE djones@CA.McMaster.dcss.insight 1.1 +Johannes-Maria~Kaltenbach, % 3.01 +Michael~Koundouros, % +Andrzej~Kawalec, %GONE akawalec@prz.rzeszow.pl 1.9.9 +Alain~Kessi,\\ %ALAIN.KESSI@HOTMAIL.COM 2.2 +Christian~Kern, %ck@unixen.hrz.uni-oldenburg.de 2.1 +J\"org~Knappen, %knappen@vkpmzd.kph.uni-mainz.de 0.1 +Kjetil~Kjernsmo, % 3.2 +Maik~Lehradt, %greek@uni-paderborn.de 0.1 +R\'emi~Letot, % +Johan~Lundberg, %p99jlu@physto.se +Alexander~Mai, %Alexander.Mai@physik.tu-darmstadt.de 3.8 +Martin~Maechler, % 2.2 +Aleksandar~S~Milosevic, % +Henrik~Mitsch, % +Claus~Malten,\\ %GONE 1.1 +Kevin~Van~Maren, % 24 Nov 1999 +Philipp~Nagele, % Philipp.Nagele@t-systems.com +Lenimar~Nunes~de~Andrade, % Fri, 12 Nov 1999 +Urs~Oswald,\\ % osurs@bluewin.ch +Demerson~Andre~Polli, % polli@linux.ime.usp.br +Maksym~Polyakov % +Hubert~Partl, %partl@mail.boku.ac.at 0.2 1.1 +John~Refling, %refling@sierra.lbl.gov 0.1 0.9 +Mike~Ressler,\\ %ressler@cougar.jpl.nasa.gov 0.1 0.2 0.9 1.0 1.9.9 +Brian~Ripley, %ripley@stats.ox.ac.uk 2.1 +Young~U.~Ryu, %ryoung@utdallas.edu 2.1 +Bernd~Rosenlecher, %9rosenle@informatik.uni-hamburg.de 10 Feb 2000 +Chris~Rowley, %C.A.Rowley@open.ac.uk 0.91 +Risto~Saarelma,\\ %risto.saarelma@cs.helsinki.fi +Hanspeter~Schmid, %schmid@isi.ee.ethz.ch +Craig~Schlenter, %cschle@lucy.ee.und.ac.za 0.1 0.2 0.9 +Baron~Schwartz, % +Christopher~Sawtell, % 1 Sep 1999 +Geoffrey~Swindale, % +Laszlo~Szathmary, % +Boris~Tobotras, % +Josef~Tkadlec, %tkadlec@math.feld.cvut.cz 2.0 2.2 +Scott~Veirs, %scottv@ocean.washington.edu +Didier~Verna, %verna@inf.enst.fr 2.2 +Fabian~Wernli, %wernli@iap.fr 3.2 +Carl-Gustav~Werner, % 11 Oct 1999,3.16 +David~Woodhouse, % 3.16 +Chris~York, % 21 Nov 1999 +Fritz~Zaucker, %zaucker@ee.ethz.ch 3.0 +Rick~Zaccone, %zaccone@bucknell.edu 2.2 +и Mikhail~Zotov. %zotov@eas.npi.msu.su 3.1 +} + +\vspace*{\stretch{1}} + + + +\pagebreak +\endinput +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort" +%%% End: +% Local Variables: +% mode: flyspell +% End: diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex new file mode 100644 index 00000000000..0dda290f8a0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/custom.tex @@ -0,0 +1,862 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Customising LaTeX output +% $Id: custom.tex,v 1.1.1.1 2002/02/26 10:04:20 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Настройка \LaTeX} + +\begin{intro} + Произведенные с использованием изученных до сих пор команд документы + будут выглядеть вполне приемлемо для широкой аудитории. Они не + выглядят очень модно, подчиняясь зато всем правилам хорошего тона в + наборе, поэтому их легко читать и на них приятно смотреть. + + Но бывают ситуации, в которых \LaTeX{} не предоставляет команду или + окружение, удовлетворяющие вашим ожиданиям, или производимый + некоторой существующей командой вывод не отвечает вашим требованиям. + + В этой главе даются некоторые советы по обучению \LaTeX{} новым + вещам, и тому, как сделать его вывод отличающимся от того, что + производится по умолчанию. +\end{intro} + + +\section{Новые команды, окружения и пакеты} + +Как вы заметили, все вводимые в этой книге команды верстаются в рамке +и включаются в указатель в конце книги. Вместо того, чтобы напрямую +использовать необходимые для этого команды \LaTeX{}, автор создал +\wi{пакет}, в котором определил новые команды и окружения для этой +цели. Теперь можно просто писать: + +\begin{example} +\begin{lscommand} +\ci{dum} +\end{lscommand} +\end{example} + +В этом примере используются как новое окружение, называющееся +\ei{lscommand} и отвечающее за рисование рамки вокруг команды, так и +новая команда, называющаяся \ci{ci} и верстающая название команды и +заносящая соответствующий элемент в указатель. Вы можете в этом +убедиться, поискав команду \ci{dum} в указателе в конце книги, где вы +найдете запись для \ci{dum}, указывающую на эту страницу. + +Если автор когда-нибудь решит, что ему не нравятся больше команды, +сверстанные в рамке, он просто изменит определение окружения +\texttt{lscommand}. Это намного проще, чем пройти по всему документу, +выискивая все места, где использованы общие команды \LaTeX{} для +рисования рамки вокруг слов. + + +\subsection{Новые команды} + +Чтобы добавить ваши собственные команды, пользуйтесь командой + +\begin{lscommand} +\ci{newcommand}\verb|{|% + \emph{название}\verb|}[|\emph{число}\verb|]{|\emph{определение}\verb|}| +\end{lscommand} + +Обычно эта команда требует двух аргументов. \emph{Название} команды, +которую вы создаете, и \emph{определение} команды. Аргумент +\emph{число} в квадратных скобках не обязателен. Он применяется для +создания новых команды, которые, в свою очередь, принимают до 9 +аргументов. + +Следующие два примера должны вам помочь получить представление о +команде. Первый пример определяет новую команду, называющуюся +\ci{tnss}, что является сокращением от ``The Not So Short Introduction +to \LaTeXe''. Такая команда пригодится, если вам много раз приходится +писать название этой книги. + +\begin{example} +\newcommand{\tnss}{The not + so Short Introduction to + \LaTeXe} +% в теле документа: +``\tnss'' \ldots{} ``\tnss'' +\end{example} + +Следующий пример показывает, как определить новую команду, принимающую +один аргумент. Метка \verb|#1| заменяется на заданный аргумент. Если вы +хотите использовать более одного аргумента, пользуйтесь \verb|#2|, и +так далее. + +\begin{example} +\newcommand{\txsit}[1] + {\emph{#1} краткое + введение в \LaTeXe} +% в теле документа +\begin{itemize} +\item \txsit{Не очень} +\item \txsit{Очень} +\end{itemize} +\end{example} + +\LaTeX{} не позволит вам создать новую команду, которая бы изменяла +уже существующую. Но для случая, когда вы явно хотите изменить +существующую команду, есть специальная команда: \ci{renewcommand}. Она +имеет тот же синтаксис, что и команда \verb|\newcommand|. + +В некоторых случаях может пригодиться команда \ci{providecommand}. Она +работает так же, как \ci{newcommand}, но, если команда уже определена, +то \LaTeXe{} ее молча проигнорирует. + +Существуют определенные особенности, связанные с пробелами после +команд \LaTeX{}. Подробности смотрите на +странице~\pageref{whitespace}. + + +\subsection{Новые окружения} + +Аналогичная команде \verb|\newcommand|, существует команда для создания +вашего собственного окружения, \ci{newenvironment}, имеющая следующий +синтаксис: + +\begin{lscommand} +\ci{newenvironment}\verb|{|% + \emph{название}\verb|}[|\emph{номер}\verb|]{|% + \emph{начало}\verb|}{|\emph{конец}\verb|}| +\end{lscommand} + +Подобно команде \verb|\newcommand|, \ci{newenvironment} можно +использовать с необязательным аргументом, или без него. Материал, +заключенный в аргумент \emph{начало}, обрабатывается до обработки +текста внутри окружения. Материал, заключенный в аргумент +\emph{конец}, обрабатывается, когда встречается команда +\verb|\end{|\emph{название}\verb|}|. Следующий пример иллюстрирует +использование команды \ci{newenvironment}. + +\begin{example} +\newenvironment{king} + {\rule{1ex}{1ex}% + \hspace{\stretch{1}}} + {\hspace{\stretch{1}}% + \rule{1ex}{1ex}} + +\begin{king} +Мои смиренные подданные\ldots +\end{king} +\end{example} + +Аргумент \emph{номер} используют так же, как и для команды +\verb|\newcommand|. \LaTeX{} контролирует, чтобы вы не определяли уже +существующее окружение. Если вы заходите все же это сделать, +пользуйтесь командой \ci{renewenvironment}. Она имеет тот же +синтаксис, что ли \ci{newenvironment}.\sloppypar + +Команды, использованные в этом примере, будут разъяснены позже: +описание команды \ci{rule} см. на стр.~\pageref{sec:rule}, команда +\ci{stretch} описана на стр.~\pageref{cmd:stretch}, а описание команды +\ci{hspace} находится на стр.~\pageref{sec:hspace}. + +\subsection{Ваш собственный пакет} + +Когда вы определяете множество новых окружений и команд, преамбулы +ваших документов становятся очень большими. В этой ситуации +представляется разумным создать пакет \LaTeX{}, содержащий определения +всех ваших команд и окружений. Потом можно командой \ci{usepackage} +использовать пакет в ваших документах.\sloppypar + +\begin{figure}[!htbp] +\begin{lined}{\textwidth} +\begin{verbatim} +% Пакет для демонстрации. Tobias Oetiker. +\ProvidesPackage{demopack} +\newcommand{\tnss}{Не очень краткое введение в \LaTeXe} +\newcommand{\txsit}[1]{\emph{#1} краткое + введение в \LaTeXe} +\newenvironment{king}{\begin{quote}}{\end{quote}} +\end{verbatim} +\end{lined} +\caption{Пример пакета} \label{package} +\end{figure} + +Создание пакета в основном состоит из переноса содержимого вашей +преамбулы в отдельный файл с именем, заканчивающимся на +\texttt{.sty}. Есть только одна специальная команда, которую вы должны +использовать +\begin{lscommand} +\ci{ProvidesPackage}\verb|{|\emph{название пакета}\verb|}| +\end{lscommand} +\noindent в самом начале файла с вашим +пакетом. \verb|\ProvidesPackage| указывает \LaTeX{} название пакета, +что позволяет ему выдавать осмысленное сообщение об ошибке, когда вы +пытаетесь включать пакет дважды. Иллюстрация~\ref{package} показывает +маленький пример пакета, содержащего определенные в вышеприведенных +примерах команды. + + +\section{Шрифты и их размеры} + + +\subsection{Команды смены шрифта} + +\index{шрифт}\index{шрифт!размер} \LaTeX{} выбирает подходящее +начертание и размер шрифта, основываясь на логической структуре +документа (разделы, сноски,~\ldots). Иногда может быть желательно +сменить шрифт вручную. Для этого вы можете пользоваться командами, +перечисленными в таблицах~\ref{fonts} и~\ref{sizes}. Действительный +размер каждого шрифта определяется дизайном и зависит от класса и +опций документа. Таблица~\ref{tab:pointsizes} показывает абсолютные +размеры, соответствующие этим командам в стандартных классах +документов. + +% Эх, не перевести игру слов :( +%\begin{example} +%{\small The small and +%\textbf{bold} Romans ruled} +%{\Large all of great big +%\textit{Italy}.} +%\end{example} + +\begin{example} + {\small Маленький, + \textbf{полужирный}, + \Large большой, + \textit{курсив}.} +\end{example} + +Важная особенность \LaTeXe{} заключается в том, что атрибуты шрифта +независимы. Это значит, что вы можете давать команды смены размера или +даже семейства шрифта, сохраняя при этом установки атрибутов наклона +или насыщенности. + +В \emph{математическом режиме} вы можете использовать \emph{команды} +смены шрифта, чтобы временно выйти из \emph{математического режима} и +ввести нормальный текст. Если вы хотите переключиться на другой шрифт +для верстки математики, то для этого существует отдельный набор +команд. Смотрите таблицу~\ref{mathfonts}. + +\begin{table}[!bp] +\caption{Шрифты} \label{fonts} +\begin{lined}{12cm} +% +% Alan suggested not to tell about the other form of the command +% eg \verb|\sffamily| or \verb|\bfseries|. This seems a good thing to me. +% +\begin{tabular}{@{}rl@{\qquad}rl@{}} +\fni{textrm}\verb|{...}| & \textrm{\wi{прямой шрифт}}& +\fni{textsf}\verb|{...}| & \textsf{\wi{без засечек}}\\ +\fni{texttt}\verb|{...}| & \texttt{пишущая машинка}\\[6pt] +\fni{textmd}\verb|{...}| & \textmd{нормальный}& +\fni{textbf}\verb|{...}| & \textbf{\wi{полужирный}}\\[6pt] +\fni{textup}\verb|{...}| & \textup{\wi{прямой шрифт}}& +\fni{textit}\verb|{...}| & \textit{\wi{курсив}}\\ +\fni{textsl}\verb|{...}| & \textsl{\wi{наклонный шрифт}}& +\fni{textsc}\verb|{...}| & \textsc{\wi{капитель}}\\[6pt] +\ci{emph}\verb|{...}| & \emph{выделенный шрифт} & +\fni{textnormal}\verb|{...}| & \textnormal{обычный} +\end{tabular} + +\bigskip +\end{lined} +\end{table} + + +\begin{table}[!bp] +\index{шрифт!размер} +\caption{Размеры шрифта} \label{sizes} +\begin{lined}{12cm} +\begin{tabular}{@{}ll} +\fni{tiny} & \tiny крошечный \\ +\fni{scriptsize} & \scriptsize очень маленький\\ +\fni{footnotesize} & \footnotesize довольно маленький \\ +\fni{small} & \small маленький \\ +\fni{normalsize} & \normalsize нормальный \\ +\fni{large} & \large большой +\end{tabular}% +\qquad\begin{tabular}{ll@{}} +\fni{Large} & \Large еще больше \\[5pt] +\fni{LARGE} & \LARGE очень большой \\[5pt] +\fni{huge} & \huge огромный \\[5pt] +\fni{Huge} & \Huge громадный +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +\begin{table}[!tbp] +\caption{Абсолютные размеры шрифтов в стандартных классах} +\label{tab:pointsizes} +\label{tab:sizes} +\begin{lined}{12cm} +\begin{tabular}{lrrr} +\multicolumn{1}{c}{\textit{Размер}} & +\multicolumn{1}{c}{\textit{10pt (по умолчанию)}} & + \multicolumn{1}{c}{\textit{опция 11pt}} & + \multicolumn{1}{c}{\textit{опция 12pt}}\\[6pt] +\verb|\tiny| & 5pt & 6pt & 6pt\\ +\verb|\scriptsize| & 7pt & 8pt & 8pt\\ +\verb|\footnotesize| & 8pt & 9pt & 10pt \\ +\verb|\small| & 9pt & 10pt & 11pt \\ +\verb|\normalsize| & 10pt & 11pt & 12pt \\ +\verb|\large| & 12pt & 12pt & 14pt \\ +\verb|\Large| & 14pt & 14pt & 17pt \\ +\verb|\LARGE| & 17pt & 17pt & 20pt\\ +\verb|\huge| & 20pt & 20pt & 25pt\\ +\verb|\Huge| & 25pt & 25pt & 25pt\\ +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +\begin{table}[!bp] +\caption{Математические шрифты} \label{mathfonts} +\begin{lined}{\textwidth} +\begin{tabular}{@{}lll@{}} +\textit{Команда}&\textit{Пример}& \textit{Вывод}\\[6pt] +\fni{mathcal}\verb|{...}|& \verb|$\mathcal{B}=c$|& $\mathcal{B}=c$\\ +\fni{mathrm}\verb|{...}|& \verb|$\mathrm{K}_2$|& $\mathrm{K}_2$\\ +\fni{mathbf}\verb|{...}|& \verb|$\sum x=\mathbf{v}$|& $\sum x=\mathbf{v}$\\ +\fni{mathsf}\verb|{...}|& \verb|$\mathsf{G\times R}$|& $\mathsf{G\times R}$\\ +\fni{mathtt}\verb|{...}|& \verb|$\mathtt{L}(b,c)$|& $\mathtt{L}(b,c)$\\ +\fni{mathnormal}\verb|{...}|& \verb|$\mathnormal{R_{19}}\neq R_{19}$|& +$\mathnormal{R_{19}}\neq R_{19}$\\ +\fni{mathit}\verb|{...}|& \verb|$\mathit{ffi}\neq ffi$|& $\mathit{ffi}\neq ffi$ +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +В связи с командами смены размера шрифта заметную роль играют +\wi{фигурные скобки}. Они используются для построения +\emph{групп}. Группы ограничивают область действия большинства команд +\LaTeX{}.\index{группирование} + +\begin{example} + Ему нравятся {\LARGE + большие и {\small + маленькие} буквы}. +\end{example} + +Команды, влияющие на размер шрифта, влияют также на расстояние между +строками, но только если соответствующий абзац заканчивается внутри +области действия команды. Поэтому закрывающая фигурная скобка \verb|}| +не должна стоять слишком рано. Заметьте положение команды \verb|\par| +в следующих двух примерах\footnote{\texttt{\bs{}par} эквивалентен + пустой строке.}: +\begin{example} +{\Large Не читайте это! Это +неправда. Верьте мне!\par} +\end{example} + +\begin{example} +{\Large Это тоже неправда. +Но помните, что я вру.}\par +\end{example} + +Если вы хотите применить команду изменения размера к целому абзацу +текста или больше того, то для этого лучше использовать синтаксис +окружения. + +\begin{example} + \begin{Large} + Это неправда. Но + что в наши дни\ldots + \end{Large} +\end{example} + +\noindent Это избавит вас от подсчета множества фигурных скобок. + + +\subsection{Опасность!} + +Как отмечено в начале этой главы, опасно усеивать ваши документы +явными командами, вроде только что описанных, потому что это +противоречит основной идее \LaTeX{}: разделению логической и +визуальной разметки вашего документа. Это значит, что, если вы +пользуетесь одними и теми же командами смены шрифта в разных местах +для верстки специального вида информации, вы должны использовать +\verb|\newcommand| и определить команду, <<оборачивающую>> в себя +команду смены шрифта. + +\begin{example} +% в преамбуле или пакете +\newcommand{\danger}[1]{\textbf{#1}} +% в документе +Не \danger{входите} в эту комнату. +Она занята \danger{машиной} +неизвестного назначения. +\end{example} + +Этот подход имеет то преимущество, что вы позже можете решить, что +хотите использовать другое визуальное представление +опасности,\trfootnote{danger} нежели +\verb|\textbf|, без необходимости пробираться через весь документ, +отыскивая все вхождения \verb|\textbf| и определяя, отмечает ли каждое +из них опасность или что-нибудь другое. + + +\subsection{Совет} + +Для завершения нашего путешествия в мир шрифтов и их размеров, +позвольте дать вам один совет: + +\begin{quote} + \underline{\textbf{Помните\Huge!}} \textit{Чем} + \textsf{Б\textbf{\LARGE О}\texttt{ЛЬ}\textsl{ШЕ}} шрифтов \Huge вы + \tiny используете \footnotesize \textbf{в} вашем \small + \texttt{документе}, \large \textit{тем} \normalsize легче + \textsc{его читать} и тем \textsl{\textsf{красивее}} он + б\large{}у\Large{}д\LARGE{}е\huge{}т\normalsize. +\end{quote} + + +\section{Интервалы} + + +\subsection{Интервалы между строками} + +\index{интервал!междустрочный} Если вам нужны б\'ольшие интервалы между +строками, то их значение можно изменить помещением в преамбулу команды +\begin{lscommand} +\ci{linespread}\verb|{|\emph{коэффициент}\verb|}| +\end{lscommand} +\noindent Для печати <<через полтора интервала>> пользуйтесь +\verb|\linespread{1.3}|, для печати <<через два интервала>>~--- +\verb|\linespread{1.6}|. По умолчанию этот коэффициент +равен~1.\index{интервал!двойной} + +Заметим, что эффект от команды \ci{linespread} довольно радикален, и +поэтому она не подходит для публикуемых работ. Поэтому, если у вас есть +весомые соображения для изменения межстрочного интервала, лучше пользуйтесь +следующей командой: + +\begin{lscommand} +\verb|\setlength{\baselineskip}{1.5\baselineskip}| +\end{lscommand} + +\begin{example} +{\setlength{\baselineskip}% + {1.5\baselineskip} +Этот абзац набран с интервалом в +1.5 раза больше предыдущего. Заметьте +команду \par{} в конце абзаца.\par} + +Ясно, зачем набрат этот абзац: он +показывает, что за закрывающейся +фигурной скобкой все вернулось к +нормальным установкам. +\end{example} + + +\subsection{Форматирование абзацев} +\label{parsp} + +Два параметра в \LaTeX{} влияют на верстку абзацев. Поместив в +преамбулу определения вида +\begin{code} +\ci{setlength}\verb|{|\ci{parindent}\verb|}{0pt}| \\ +\verb|\setlength{|\ci{parskip}\verb|}{1ex plus 0.5ex minus 0.2ex}| +\end{code} +вы измените внешний вид абзацев. Эти две строчки увеличивают +расстояние между абзацами и устанавливают абзацный отступ равным +нулю. + +Части \texttt{plus} и \texttt{minus} говорят \TeX{}, что он может +увеличивать и уменьшать интервал между абзацами на указанные величины, +если это необходимо для правильного размещения абзацев на странице. + +В Европе абзацы часто отделяют пробелами и не делают в них +отступа. Однако, имейте в виду, что это влияет также и на оглавление: +его строки тоже становятся теперь более разреженными. Чтобы этого +избежать, эти команды можно перенести из преамбулы документа +куда-нибудь после \verb|\tableofcontents|, или не использовать их +совсем, потому что в профессиональной книжной верстке используется +выделение абзацев красной строкой, а не пробелами. + +Если вы хотите сделать абзацный отступ в не имеющем его абзаце, то +вставьте в начало абзаца команду\footnote{Для добавления отступа к + первому абзацу после каждого заголовка раздела пользуйтесь пакетом + \pai{indentfirst} из комплекта `tools'.} +\begin{lscommand} +\ci{indent} +\end{lscommand} +\noindent Понятно, что эффект от нее будет только если +\verb|\parindent| не установлен равным нулю. + +Для создания абзаца без отступа первой командой абзаца можно сделать +\begin{lscommand} +\ci{noindent} +\end{lscommand} +\noindent Это может быть удобно, когда вы начинаете документ с текста, +а не с команды секционирования. + + +\subsection{Горизонтальные интервалы} + +\label{sec:hspace} +\LaTeX{} автоматически определяет пробелы между словами и +предложениями. Чтобы добавить горизонтальный +пробел\index{пробел!горизонтальный}, пользуйтесь +\begin{lscommand} +\ci{hspace}\verb|{|\emph{длина}\verb|}| +\end{lscommand} +Если такой интервал должен быть выдержан, даже если он приходится на +начало или конец строки, используйте \verb|\hspace*|, а не +\verb|\hspace|. В простейшем случае \emph{длина}~--- это просто число +и единица измерения. Наиболее важные единицы перечислены в +таблице~\ref{units}. \index{единицы}\index{длина} + +\begin{example} +Тут\hspace{1.5cm}пробел +в 1,5см. +\end{example} + +%\suppressfloats +\begin{table}[tbp] +\caption{Единицы размерности в \TeX{}} \label{units}\index{единицы} +\begin{lined}{9.5cm} +\begin{tabular}{@{}ll@{}} +\texttt{mm} & миллиметр $\approx 1/25$~дюйма \quad \demowidth{1mm} \\ +\texttt{cm} & сантиметр $=$ 10~mm \quad \demowidth{1cm} \\ +\texttt{in} & inch $=$ 25.4~mm \quad \demowidth{1in} \\ +\texttt{pt} & пункт $\approx 1/72$~дюйма $\approx \frac{1}{3}$~mm \quad\demowidth{1pt}\\ +\texttt{em} & примерная ширина буквы `M' текущего шрифта \quad \demowidth{1em}\\ +\texttt{ex} & примерная высота буквы `x' текущего шрифта \quad \demowidth{1ex} +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +\label{cmd:stretch} +Команда +\begin{lscommand} +\ci{stretch}\verb|{|\emph{n}\verb|}| +\end{lscommand} +\noindent генерирует специальный <<резиновый>> пробел. Он +растягивается, заполняя все оставшееся места на строке. Если на одной +строке встречаются две команды +\verb|\hspace{\stretch{|\emph{n}\verb|}}|, то они растягиваются +пропорционально своим коэффициентам.\sloppypar + +\begin{example} +x\hspace{\stretch{1}} +x\hspace{\stretch{3}}x +\end{example} + +Пpи использовании гоpизонтальных интеpвалов вместе с текстом может +иметь смысл генеpиpовать интеpвал, pазмеp котоpого соотносится с +pазмеpом текущего шpифта. Этого можно добиться пpи помощи +относительных единиц pазмеpности \texttt{em} и \texttt{en}: + +\begin{example} +{\Large{}big\hspace{1em}y}\\ +{\tiny{}tin\hspace{1em}y} +\end{example} + + +\subsection{Вертикальные интервалы} + +Интервалы между абзацами, разделами, подразделами,~\ldots\ +определяются \LaTeX{} автоматически. При необходимости дополнительный +пробел \emph{между двумя абзацами} можно добавить командой +\begin{lscommand} +\ci{vspace}\verb|{|\emph{длина}\verb|}| +\end{lscommand} + +Обычно эта команда вставляется между двумя пустыми строчками. Если это +пространство должно сохраняться вверху или внизу страницы, используйте +вариант команды со звездочкой: \verb|\vspace*|.\index{пробел!вертикальный} + +Команду \verb|\stretch| вместе с \verb|\pagebreak| можно применять для +верстки текста на последней строке страницы или для вертикального +центрирования текста на странице. +\begin{code} +\begin{verbatim} +Некий текст\ldots + +\vspace{\stretch{1}} +А это окажется на последней строке страницы.\pagebreak +\end{verbatim} +\end{code} + +Дополнительный пробел между двумя строками \emph{одного} абзаца или +внутри таблицы указывается командой +\begin{lscommand} +\ci{\bs}\verb|[|\emph{длина}\verb|]| +\end{lscommand} + +При помощи \ci{bigskip} и \ci{smallskip} вы можете пропустить заранее +определенные вертикальные интервалы, не задумываясь о конкретных +числах. + +\section{Компоновка страницы} + +\begin{figure}[!hp] +\begin{center} +\makeatletter\@layout\makeatother +\end{center} +\vspace*{1.8cm} +\caption{Параметры компоновки страницы} +\label{fig:layout} +\end{figure} + +\index{компоновка страницы} +\LaTeXe{} позволяет указать \wi{размер бумаги} в команде +\verb|\documentclass|. Затем он автоматически выбирает правое +\wi{поле}. Но иногда предопределенные значения могут вас не +устроить. Безусловно, вы их можете изменить. +%no idea why this is needed here ... +\thispagestyle{fancyplain} Иллюстрация~\ref{fig:layout} показывает все +параметры, которые можно изменить. Она была сгенерирована пакетом +\pai{layout} из комплекта +`tools'.\footnote{\texttt{\CTAN|macros/latex/required/tools|}} + +\textbf{ПОДОЖДИТЕ!} \ldots прежде, чем немедленно броситься делать эту +слишком узкую страницу слегка пошире, потратьте несколько секунд на +размышления. Подобно другим вещам, выбор компоновки страницы в +\LaTeX{} весьма продуман. + +Безусловно, если сравнить со страницей, выданной свежеустановленным MS +Word, то страницы \LaTeX{} выглядят ужасно узкими. Однако, взгляните +на вашу любимую книгу\footnote{Имея в виду настоящую печатную книгу, + выпущенную уважаемым издательством.} и посчитайте количество букв на +одной строчке. Вы обнаружите, что на каждой строчке не больше 66 +букв. Теперь повторите это со страницей \LaTeX{}. Вы увидите, что и +здесь тоже около 66 букв в строке. Опыт показывает, что при большем +количестве букв чтение затрудняется, потому, что глазам становится +труднее переходить от конца одной строки к началу следующей. Именно +поэтому газеты часто верстаются в несколько колонок. + +Так что, увеличивая ширину вашего текста, имейте в виду, что вы +затрудняете жизнь его читателям. Однако, достаточно предупреждений, +вам был обещан рассказ о том, как же это сделать\ldots + +\LaTeX{} предоставляет две команды для изменения этих параметров. Их +обычно используют в преамбуле документа. + +Первая команда присваивает фиксированное значение любому параметру: +\begin{lscommand} +\ci{setlength}\verb|{|\emph{параметр}\verb|}{|\emph{длина}\verb|}| +\end{lscommand} + +Вторая команда прибавляет длину к любому параметру: +\begin{lscommand} +\ci{addtolength}\verb|{|\emph{параметр}\verb|}{|\emph{длина}\verb|}| +\end{lscommand} + +Она даже более полезна, чем \ci{setlength}, потому что позволяет вам +делать настройку относительно существующих установок. Чтобы добавить +сантиметр к общей ширине текста, например, в преамбулу нужно поместить +следующее: +\begin{code} +\verb|\addtolength{\hoffset}{-0.5cm}|\\ +\verb|\addtolength{\textwidth}{1cm}| +\end{code} + +Здесь вам может быть интересен пакет \pai{calc}, который позволяет +использовать арифметические операции в аргументе \verb|\setlength| и в +других местах, где аргументами являются численные значения. + + +\section{Еще о длинах} + +Всегда, когда это возможно, избегайте использовать в документах +абсолютных величин. Лучше основывайтесь на ширине или высоте других +элементов страницы. Для ширины иллюстрации этим может служить +\verb|\textwidth|, чтобы она заполняла страницу целиком. + +Следующие три команды позволяют определить ширину, высоту и глубину +текстовой строки. + +\begin{lscommand} +\ci{settoheight}\verb|{|\emph{пеpеменная}\verb|}{|\emph{текст}\verb|}|\\ +\ci{settodepth}\verb|{|\emph{пеpеменная}\verb|}{|\emph{текст}\verb|}|\\ +\ci{settowidth}\verb|{|\emph{пеpеменная}\verb|}{|\emph{текст}\verb|}| +\end{lscommand} + +\noindent Нижеследующий пример показывает возможное применение этих +команд. + +\begin{example} +\flushleft +\newenvironment{vardesc}[1]{% + \settowidth{\parindent}{#1:\ } + \makebox[0pt][r]{#1:\ }}{} + +\begin{displaymath} +a^2+b^2=c^2 +\end{displaymath} + +\begin{vardesc}{Где}$a$, +$b$ -- прилегают к прямому углу +прямоугольного треугольника. + +$c$ -- одинокая гипотенуза +этого треугольника. + +$d$ -- вообще тут не участвует. +Вот загадка\ldots +\end{vardesc} +\end{example} + + +\section{Блоки} + +\LaTeX{} выстраивает страницы, передвигая блоки. Сначала каждая буква +является маленьким блоком, который приклеивается к другим буквам, +формируя слово. Слова склеиваются с другими словами, но специальным +эластичным клеем, который может растягиваться или сжиматься, так, +чтобы в точности заполнить строку. + +Надо признать, что это довольно упрощенная версия того, что происходит +на самом деле, но идея в том, что \TeX{} всегда работает с блоками и +клеем. Не только буква может быть блоком. Вы можете поместить в блок +практически все, что угодно, не исключая и другие блоки. Каждый блок +затем обрабатывается \LaTeX{}, как если бы это была отдельная буква. + +В предыдущих главах вы уже встречали некоторые блоки, хотя об этом и +не говорилось. Примерами могут быть окружение \ei{tabular} или +\ci{includegraphics}, оба производящие блок. Это значит, что вы легко +можете сверстать рядом две таблицы или иллюстрации. Только убедитесь, +что их общая ширина не превышает \verb|\textwidth|. + +Вы также можете упаковать любой абзац в блок или командой + +\begin{lscommand} +\ci{parbox}\verb|[|\emph{поз}\verb|]{|\emph{ширина}\verb|}{|\emph{текст}\verb|}| +\end{lscommand} + +\noindent или окружением + +\begin{lscommand} +\verb|\begin{|\ei{minipage}\verb|}[|\emph{поз}\verb|]{|\emph{ширина}\verb|}| текст +\verb|\end{|\ei{minipage}\verb|}| +\end{lscommand} + +Параметр \emph{поз} может принимать одну из букв \texttt{c, t} или +\texttt{b}, контролируя вертикальное выравнивание блока по отношению к +базовой линии окружающего текста. \emph{Ширина} принимает аргументом +длину, определяющую ширину блока. Основное отличие между \ci{minipage} +и \ci{parbox}~--- в том, что внутри \ci{parbox} можно использовать не +все команды и окружения, тогда как внутри \ci{minipage} можно +практически все. + +В то время, как \ci{parbox} упаковывает целый абзац, разбивая строчки +и прочее, существует класс блоковых команд, работающих только на +горизонтально расположенном материале. Одну из них мы уже знаем. Она +называется \ci{mbox} и просто упаковывает последовательность блоков, +что можно использовать для предотвращения переноса \LaTeX{} двух +слов. Так как вы можете помещать одни блоки в другие, эти упаковщики +горизонтальных блоков чрезвычайно гибки. + +\begin{lscommand} +\ci{makebox}\verb|[|\emph{ширина}\verb|][|\emph{поз}\verb|]{|\emph{текст}\verb|}| +\end{lscommand} + +\noindent \emph{Ширина} определяет ширину результирующего блока так, +как его видно снаружи.\footnote{Это означает, что она может быть + меньше, чем материал внутри блока. В предельном случае вы можете + даже установить ее в 0pt, так что текст внутри блока верстается, + вообще не оказывая влияния на окружающие блоки.} Кроме выражений +длины, вы тут можете использовать \ci{width}, \ci{height}, \ci{depth} +и \ci{totalheight}. Они устанавливаются равными значениям, полученным +измерением параметров \emph{текста}.\trfootnote{Ширина, высота, глубина + и общая высота (высота плюс глубина) текста, + соответственно.} Параметр \emph{поз} +принимает однобуквенное значение: \textbf{c}: центрировать, +\textbf{l}: отжать влево, \textbf{r}: отжать вправо или \textbf{s}: +равномерно заполнить блок текстом. + +Команда \ci{framebox} работает в точности так же, как \ci{makebox}, но +рисует рамку вокруг текста. + +Следующий пример показывает некоторые возможности использования команд +\ci{makebox} и \ci{framebox}. + +\begin{example} +\makebox[\textwidth]{% + ц е н т р}\par +\makebox[\textwidth][s]{% + р а с т я н у т ы й}\par +\framebox[1.1\width]{Я теперь + в рамке!} \par +\framebox[0.8\width][r]{Ой, + я слишком толстый} \par +\framebox[1cm][l]{ничего, + я тоже} +Можете это прочитать? +\end{example} + +Теперь, когда мы управляем горизонталью, очевидный следующий шаг~--- +вертикаль. Никаких проблем. Команда + +\begin{lscommand} +\ci{raisebox}\verb|{|\emph{сдвиг}\verb|}[|\emph{глубина}\verb|][|\emph{высота}\verb|]{|\emph{текст}\verb|}| +\end{lscommand} + +\noindent позволяет вам определить вертикальные характеристики +блока. В первых трех параметров можно использовать \ci{width}, +\ci{height}, \ci{depth} и \ci{totalwidth}, чтобы получить размеры +аргумента \emph{текст}. + +\begin{example} +\raisebox{0pt}[0pt][0pt]{\Large% +\textbf{Aaaa\raisebox{-0.3ex}{a}% +\raisebox{-0.7ex}{aa}% +\raisebox{-1.2ex}{a}% +\raisebox{-2.2ex}{a}% +\raisebox{-4.5ex}{a}}} +кричал он, но даже стоящий рядом +не заметил, что с ним случилось +что-то ужасное. +\end{example} + + +\section{Линейки и распорки} +\label{sec:rule} + +Несколько страниц назад вы могли отметить команду + +\begin{lscommand} +\ci{rule}\verb|[|\emph{сдвиг}\verb|]{|\emph{ширина}\verb|}{|\emph{высота}\verb|}| +\end{lscommand} + +\noindent При обычном использовании она генерирует простой черный +блок. + +\newpage +\begin{example} +\rule{3mm}{.1pt}% +\rule[-1mm]{5mm}{1cm}% +\rule{3mm}{.1pt}% +\rule[1mm]{1cm}{5mm}% +\rule{3mm}{.1pt} +\end{example} + +\noindent Это можно использовать для рисования вертикальных и +горизонтальных линий. Например, линия на титульном листе нарисована +командой \ci{rule}. + +Специальным случаем является линейка, у которой нет ширины, но есть +определенная высота. В профессиональной верстке ее называют +\emph{распоркой}\index{распорка}. Ее используют, чтобы обеспечить +определенную минимальную высоту элемента страницы. Вы можете +использовать ее, чтобы сделать строку окружения \texttt{tabular} +имеющей определенную минимальную высоту. + +\begin{example} +\begin{tabular}{|c|} +\hline +\rule{0pt}{4ex}Pitprop \ldots\\ +\hline +\rule{0pt}{4ex}Strut\\ +\hline +\end{tabular} +\end{example} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort2e" +%%% End: + +\bigskip +{\flushright Конец.\par} + +% diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/fancyhea.sty b/Master/texmf-dist/doc/latex/lshort-russian/src/fancyhea.sty new file mode 100644 index 00000000000..13cfb623ec6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/fancyhea.sty @@ -0,0 +1,129 @@ +% fancyheadings.sty version 1.7 +% Fancy headers and footers. +% Piet van Oostrum, Dept of Computer Science, University of Utrecht +% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands +% Telephone: +31-30-531806. piet@cs.ruu.nl (mcvax!sun4nl!ruuinf!piet) +% Sep 16, 1994 +% version 1.4: Correction for use with \reversemargin +% Sep 29, 1994: +% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands +% Oct 4, 1994: +% version 1.6: Reset single spacing in headers/footers for use with +% setspace.sty or doublespace.sty +% Oct 4, 1994: +% version 1.7: changed \let\@mkboth\markboth to +% \def\@mkboth{\protect\markboth} to make it more robust + +\def\lhead{\@ifnextchar[{\@xlhead}{\@ylhead}} +\def\@xlhead[#1]#2{\gdef\@elhead{#1}\gdef\@olhead{#2}} +\def\@ylhead#1{\gdef\@elhead{#1}\gdef\@olhead{#1}} + +\def\chead{\@ifnextchar[{\@xchead}{\@ychead}} +\def\@xchead[#1]#2{\gdef\@echead{#1}\gdef\@ochead{#2}} +\def\@ychead#1{\gdef\@echead{#1}\gdef\@ochead{#1}} + +\def\rhead{\@ifnextchar[{\@xrhead}{\@yrhead}} +\def\@xrhead[#1]#2{\gdef\@erhead{#1}\gdef\@orhead{#2}} +\def\@yrhead#1{\gdef\@erhead{#1}\gdef\@orhead{#1}} + +\def\lfoot{\@ifnextchar[{\@xlfoot}{\@ylfoot}} +\def\@xlfoot[#1]#2{\gdef\@elfoot{#1}\gdef\@olfoot{#2}} +\def\@ylfoot#1{\gdef\@elfoot{#1}\gdef\@olfoot{#1}} + +\def\cfoot{\@ifnextchar[{\@xcfoot}{\@ycfoot}} +\def\@xcfoot[#1]#2{\gdef\@ecfoot{#1}\gdef\@ocfoot{#2}} +\def\@ycfoot#1{\gdef\@ecfoot{#1}\gdef\@ocfoot{#1}} + +\def\rfoot{\@ifnextchar[{\@xrfoot}{\@yrfoot}} +\def\@xrfoot[#1]#2{\gdef\@erfoot{#1}\gdef\@orfoot{#2}} +\def\@yrfoot#1{\gdef\@erfoot{#1}\gdef\@orfoot{#1}} + +\newdimen\headrulewidth +\newdimen\footrulewidth +\newdimen\plainheadrulewidth +\newdimen\plainfootrulewidth +\newdimen\headwidth +\newif\if@fancyplain \@fancyplainfalse +\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi} + +% Command to reset various things in the headers: +% a.o. single spacing (taken from setspace.sty) +% and the catcode of ^^M (so that epsf files in the header work if a +% verbatim crosses a page boundary) +\def\fancy@reset{\restorecr + \def\baselinestretch{1}% + \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e + \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi% + \else% NFSS (2.09) present + \@newbaseline% + \fi} + +% Initialization of the head and foot text. + +\headrulewidth 0.4pt +\footrulewidth\z@ +\plainheadrulewidth\z@ +\plainfootrulewidth\z@ + +\lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}} +% i.e. empty on ``plain'' pages \rightmark on even, \leftmark on odd pages +\chead{} +\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}} +% i.e. empty on ``plain'' pages \leftmark on even, \rightmark on odd pages +\lfoot{} +\cfoot{\rm\thepage} % page number +\rfoot{} + +% Put together a header or footer given the left, center and +% right text, fillers at left and right and a rule. +% The \lap commands put the text into an hbox of zero size, +% so overlapping text does not generate an errormessage. + +\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\hbox +{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill +\parbox[b]{\headwidth}{\centering#3\strut}\hfill +\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5} + + +\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\footrule +\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill +\parbox[t]{\headwidth}{\centering#3\strut}\hfill +\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5} + +\def\headrule{{\if@fancyplain\headrulewidth\plainheadrulewidth\fi +\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}} + +\def\footrule{{\if@fancyplain\footrulewidth\plainfootrulewidth\fi +\vskip-0.3\normalbaselineskip\vskip-\footrulewidth +\hrule\@width\headwidth\@height\footrulewidth\vskip0.3\normalbaselineskip}} + +\def\ps@fancy{ +\def\@mkboth{\protect\markboth} +\@ifundefined{chapter}{\def\sectionmark##1{\markboth +{\uppercase{\ifnum \c@secnumdepth>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}} +\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} +{\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\m@ne + \@chapapp\ \thechapter. \ \fi ##1}}{}} +\def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@ + \thesection. \ \fi ##1}}}} +\ps@@fancy +\global\let\ps@fancy\ps@@fancy +\headwidth\textwidth} +\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy} +\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy} +\def\ps@@fancy{ +\def\@oddhead{\@fancyhead\@lodd\@olhead\@ochead\@orhead\@rodd} +\def\@oddfoot{\@fancyfoot\@lodd\@olfoot\@ocfoot\@orfoot\@rodd} +\def\@evenhead{\@fancyhead\@rodd\@elhead\@echead\@erhead\@lodd} +\def\@evenfoot{\@fancyfoot\@rodd\@elfoot\@ecfoot\@erfoot\@lodd} +} +\def\@lodd{\if@reversemargin\hss\else\relax\fi} +\def\@rodd{\if@reversemargin\relax\else\hss\fi} + +\let\latex@makecol\@makecol +\def\@makecol{\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol} +\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi} +\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi} +\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi} diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.cfg b/Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.cfg new file mode 100644 index 00000000000..e848342f48e --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.cfg @@ -0,0 +1,14 @@ +\long\def\@yargdef#1#2#3{% + \@tempcnta#3\relax + \advance \@tempcnta \@ne + \let\@hash@\relax + \edef\reserved@a{\ifx#2\tw@ [\@hash@1]\fi}% + \@tempcntb #2% + \@whilenum\@tempcntb <\@tempcnta + \do{% + \edef\reserved@a{\reserved@a\@hash@\the\@tempcntb}% + \advance\@tempcntb \@ne}% + \let\@hash@##% + \l@ngrel@x\expandafter\def\expandafter#1\reserved@a} + +\endinput diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.sty b/Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.sty new file mode 100644 index 00000000000..1ce5df7c8d6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/fancyvrb.sty @@ -0,0 +1,1426 @@ +%% +%% This is file `fancyvrb.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fancyvrb.dtx (with options: `fancyvrb') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from fancyvrb.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file fancyvrb.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +%% Package `fancyvrb' +%% +%% Timothy Van Zandt +%% July 17, 1998 +%% +%% COPYRIGHT 1992-1999, by Timothy Van Zandt +%% +%% This package may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% fancyvrb.sty is a LaTeX style option, containing flexible +%% verbatim environments and commands and extensive documentation. +%% +%% This is a companion to the `fancybox' package. +%% +\NeedsTeXFormat{LaTeX2e} +\def\fileversion{2.6, with DG/SPQR fixes} +\def\filedate{1998/07/17} +\ProvidesPackage{fancyvrb}[\filedate] +\message{Style option: `fancyvrb' v\fileversion \space <\filedate> (tvz)} +\csname fancyvrb@loaded\endcsname +\let\fancyvrb@loaded\endinput +\def\FV@Error#1#2{% + \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}% + \errmessage{FancyVerb Error:^^J\space\space #1^^J}} + +\def\FV@eha{Your command was ignored. Type to continue.} +%% DG/SR modification begin - Jan. 21, 1998 +%% Suggested by Bernard Gaulle to solve a compatibility problem with `french' +%% (it introduce the restriction to put \VerbatimFootnotes AFTER the preambule) +%%\def\VerbatimFootnotes{\let\@footnotetext\V@footnotetext} +\let\V@footnote\footnote +\def\VerbatimFootnotes{% +\let\@footnotetext\V@footnotetext% +\let\footnote\V@footnote} +%% DG/SR modification end +\long\def\V@footnotetext{% + \afterassignment\V@@footnotetext + \let\@tempa} +\def\V@@footnotetext{% + \insert\footins\bgroup + \csname reset@font\endcsname + \footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth\dp\strutbox + \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% + \@makefntext{}% + \rule{\z@}{\footnotesep}% + \bgroup + \aftergroup\V@@@footnotetext + \ignorespaces} +\def\V@@@footnotetext{\strut\egroup} +\RequirePackage{keyval} +\def\define@booleankey#1#2#3#4{% + \@namedef{KV@#1@#2@default}{#3}% + \@namedef{KV@#1@#2@false}{#4}% + \@namedef{KV@#1@#2}##1{\KV@booleankey{##1}{#1}{#2}}} +\def\KV@booleankey#1#2#3{% + \edef\@tempa{#1}\expandafter\KV@@booleankey\@tempa\relax\@nil{#2}{#3}} +\def\KV@@booleankey#1#2\@nil#3#4{% + \@nameuse{KV@#3@#4@\if t#1default\else\if T#1default\else false\fi\fi}} +\def\FV@None{none} +\def\FV@Auto{auto} +\def\fvset#1{\setkeys{FV}{#1}} +\def\FV@Command#1#2{% + \@ifstar + {\def\FV@KeyValues{#1,showspaces}\FV@@Command{#2}}% + {\def\FV@KeyValues{#1}\FV@@Command{#2}}} +\def\FV@@Command#1{% + \@ifnextchar[% + {\FV@GetKeyValues{\@nameuse{FVC@#1}}}% + {\@nameuse{FVC@#1}}} +\def\FV@GetKeyValues#1[#2]{% + \expandafter\def\expandafter\FV@KeyValues\expandafter{\FV@KeyValues,#2}#1} +\def\@CustomVerbatimCommand#1#2#3#4{% + \begingroup\fvset{#4}\endgroup % If there are errors, it easier to locate. +%% DG/SR modification begin - Jan. 13, 1998 +%% \def\@tempa##1##2\@nil{\def\@tempa{##2}}% +%% \expandafter\@tempa\string#3\@empty\@nil +%% \@ifundefined{FVC@\@tempa}% + \@ifundefined{FVC@#3}% +%% DG/SR modification end + {\FV@Error{Command `\string#3' is not a FancyVerb command.}\@eha}% + {#1{#2}{\FV@Command{#4}{#3}}}} +\def\CustomVerbatimCommand{\@CustomVerbatimCommand\newcommand} +\def\RecustomVerbatimCommand{\@CustomVerbatimCommand\renewcommand} +\def\FV@Environment#1#2{% + \def\FV@KeyValues{#1}% + \catcode`\^^M=\active + \@ifnextchar[% + {\catcode`\^^M=5 \FV@GetKeyValues{\@nameuse{FVB@#2}}}% + {\catcode`\^^M=5 \@nameuse{FVB@#2}}} +\def\CustomVerbatimEnvironment{\@CustomVerbatimEnvironment\newenvironment} +\def\RecustomVerbatimEnvironment{\@CustomVerbatimEnvironment\renewenvironment} +\def\@CustomVerbatimEnvironment#1#2#3#4{% + \begingroup\fvset{#4}\endgroup % If there are errors, it easier to locate. + \@ifundefined{FVB@#3}% + {\FV@Error{`#3' is not a FancyVerb environment.}\@eha}% + {#1{#2}{\FV@Environment{#4}{#3}}{\@nameuse{FVE@#3}}% + #1{#2*}{\FV@Environment{#4,showspaces}{#3}}{\@nameuse{FVE@#3}}}} +\def\DefineVerbatimEnvironment#1#2#3{% + \@namedef{#1}{\FV@Environment{#3}{#2}}% + \@namedef{end#1}{\@nameuse{FVE@#2}}% + \@namedef{#1*}{\FV@Environment{#3,showspaces}{#2}}% + \@namedef{end#1*}{\@nameuse{FVE@#2}}} +\def\FV@UseKeyValues{% + \ifx\FV@KeyValues\@empty\else + \def\KV@prefix{KV@FV@}% + \expandafter\KV@do\FV@KeyValues,\relax,% + \def\FV@KeyValues{}% + \fi} +\def\FV@CatCodes{% + \let\do\@makeother\dospecials % The usual stuff. + \FV@ActiveWhiteSpace % See below. + \FV@FontScanPrep % See below. + \FV@CatCodesHook % A style hook. + \FancyVerbCodes} % A user-defined hook. +\def\FV@ActiveWhiteSpace{% + \catcode`\^^M=\active % End of line + \catcode`\ =\active % Space + \catcode`\^^I=\active} % Tab +\def\FV@CatCodesHook{} +\def\FV@AddToHook#1#2{% + \expandafter\def\expandafter#1\expandafter{#1#2\relax}} +\define@key{FV}{codes}[]{\def\FancyVerbCodes{#1\relax}} +\define@key{FV}{codes*}{% + \expandafter\def\expandafter\FancyVerbCodes\expandafter{% + \FancyVerbCodes#1\relax}} +\fvset{codes} +\define@key{FV}{commandchars}[\\\{\}]% + {\def\@tempa{#1}% + \ifx\@tempa\FV@None + \let\FV@CommandChars\relax + \else + \FV@DefineCommandChars#1\relax\relax\relax + \fi} +\def\FV@DefineCommandChars#1#2#3{% + \def\FV@CommandChars{% + \catcode`#1=0\relax\catcode`#2=1\relax\catcode`#3=2\relax}} +\FV@AddToHook\FV@CatCodesHook\FV@CommandChars +\define@key{FV}{commentchar}[\%]{% + \def\@tempa{#1}% + \ifx\@tempa\FV@None + \let\FV@CommentChar\relax + \else + \def\FV@CommentChar{\catcode`#1=14}% + \fi} +\FV@AddToHook\FV@CatCodesHook\FV@CommentChar +\fvset{commandchars=none,commentchar=none} +\define@key{FV}{firstline}{% + \afterassignment\FV@ParseStart\@tempcnta=0#1\relax\@nil{#1}} +\def\FV@ParseStart#1\relax\@nil#2{% + \ifx\@nil#1\@nil + \edef\FancyVerbStartNum{\the\@tempcnta}% + \let\FancyVerbStartString\relax + \else + \edef\FancyVerbStartString{#2}% + \fi} +\def\KV@FV@firstline@default{% + \let\FancyVerbStartNum\z@ + \let\FancyVerbStartString\relax} +\define@key{FV}{lastline}{% + \afterassignment\FV@ParseStop\@tempcnta=0#1\relax\@nil{#1}} +\def\FV@ParseStop#1\relax\@nil#2{% + \ifx\@nil#1\@nil + \edef\FancyVerbStopNum{\the\@tempcnta}% + \let\FancyVerbStopString\relax + \else + \edef\FancyVerbStopString{#2}% + \fi} +\def\KV@FV@lastline@default{% + \let\FancyVerbStopNum\z@ + \let\FancyVerbStopString\relax} +\fvset{firstline,lastline} +\newcount\FV@CodeLineNo +\def\FV@PreProcessLine{% + \global\advance\FV@CodeLineNo\@ne + \FV@FindStartStop} +\def\FV@@PreProcessLine{% + \FV@StepLineNo + \FV@Gobble + \expandafter\FV@ProcessLine\expandafter{\FV@Line}} +\def\FV@FindStartStop{\FV@DefineFindStart\FV@FindStartStop} +%% \def\FV@DefinePreProcessLine{% +%% \setcounter{FancyVerbLine}{0}% +%% \FV@DefineFindStart} +\def\FV@DefineFindStart{% + \ifx\FancyVerbStartString\relax + \ifnum\FancyVerbStartNum<\tw@ + \FV@DefineFindStop + \else + \let\FV@FindStartStop\FV@FindStartNum + \fi + \else + \let\FV@FindStartStop\FV@FindStartString + \fi} +\def\FV@FindStartNum{% + \ifnum\FancyVerbStartNum>\FV@CodeLineNo\else + \FV@DefineFindStop + \expandafter\FV@@PreProcessLine + \fi} +%% SR modification begin - 1996 +\def\FV@FindStartString{% + \expandafter\FV@@FindStartString +{\meaning\FV@Line}% +{\meaning\FancyVerbStartString}% +} +\def\FV@@FindStartString#1#2{% +\edef\@fooA{#1}\edef\@fooB{#2}% + \ifx\@fooA\@fooB + \FV@DefineFindStop + \fi +} +%% SR modification end +\def\FV@DefineFindStop{% + \ifx\FancyVerbStopString\relax + \ifnum\FancyVerbStopNum<\@ne + \let\FV@FindStartStop\FV@@PreProcessLine + \else + \let\FV@FindStartStop\FV@FindStopNum + \fi + \else + \let\FV@FindStartStop\FV@FindStopString + \fi} +\def\FV@FindStopNum{% + \ifnum\FancyVerbStopNum=\FV@CodeLineNo + \let\FV@FindStartStop\relax + \ifeof\FV@InFile\else + \immediate\closein\FV@InFile + \fi + \fi + \FV@@PreProcessLine} +%% SR modification begin - 1996 +\def\FV@FindStopString{% + \expandafter\FV@@FindStopString +{\meaning\FV@Line}% +{\meaning\FancyVerbStopString}% +} +\def\FV@@FindStopString#1#2{% +\edef\@fooA{#1}\edef\@fooB{#2}% + \ifx\@fooA\@fooB + \let\FV@FindStartStop\relax + \ifeof\FV@InFile\else + \immediate\closein\FV@InFile + \fi + \else + \expandafter\FV@@PreProcessLine + \fi} +%% SR modification end +\def\FV@@Gobble{% + \expandafter\expandafter\expandafter\FV@@@Gobble + \expandafter\FV@@@@Gobble\FV@Line + \@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@@nil} +\def\FV@@@Gobble#1\@nil#2\@@nil{\def\FV@Line{#1}} +\define@key{FV}{gobble}{% + \@tempcnta=#1\relax + \ifnum\@tempcnta<\@ne + \let\FV@Gobble\relax + \else + \ifnum\@tempcnta>9 + \FV@Error{gobble parameter must be less than 10}\FV@eha + \else + \renewcommand{\FV@@@@Gobble}[\@tempcnta]{}% + \let\FV@Gobble\FV@@Gobble + \fi + \fi} +\def\FV@@@@Gobble{} +\def\KV@FV@gobble@default{\let\FV@Gobble\relax} +\fvset{gobble} +\def\FV@Scan{% + \FV@CatCodes + \VerbatimEnvironment + \FV@DefineCheckEnd + \FV@BeginScanning} +\def\VerbatimEnvironment{% + \ifx\FV@EnvironName\relax\xdef\FV@EnvironName{\@currenvir}\fi} +\let\FV@EnvironName\relax +\begingroup +\catcode`\!=0 +\catcode`\[=1 +\catcode`\]=2 +!gdef!FV@CheckEnd@i#1[!FV@@CheckEnd#1\end{}!@nil] +!gdef!FV@@CheckEnd@i#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] +!gdef!FV@@@CheckEnd@i[\end{}] +\catcode`!\=12 + +!gdef!FV@CheckEnd@ii#1[!FV@@CheckEnd#1\end{}!@nil] +!gdef!FV@@CheckEnd@ii#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] +!gdef!FV@@@CheckEnd@ii[\end{}] +!catcode`!{=12 +!catcode`!}=12 + +!gdef!FV@CheckEnd@iii#1[!FV@@CheckEnd#1\end{}!@nil] +!gdef!FV@@CheckEnd@iii#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] +!gdef!FV@@@CheckEnd@iii[\end{}] +!catcode`!\=0 + +!gdef!FV@CheckEnd@iv#1[!FV@@CheckEnd#1\end{}!@nil] +!gdef!FV@@CheckEnd@iv#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]] +!gdef!FV@@@CheckEnd@iv[\end{}] +\endgroup +\def\FV@BadCodes#1{% + \FV@Error + {\string\catcode\space of \expandafter\@gobble\string#1 is wrong: + \the\catcode`#1}% + {Only the following catcode values are allowed: + ^^J\@spaces \expandafter\@gobble\string\\ \space\space --> 0 or 12. + ^^J\@spaces \string{ \string} --> 1 and 2, resp., or both 12. + ^^JTo get this error, either you are a hacker or you got bad advice.}% + \def\FV@CheckEnd##1{\iftrue}} +\def\FV@DefineCheckEnd{% + \ifnum\catcode`\\=\z@ + \ifnum\catcode`\{=\@ne + \let\FV@CheckEnd\FV@CheckEnd@i + \let\FV@@CheckEnd\FV@@CheckEnd@i + \let\FV@@@CheckEnd\FV@@@CheckEnd@i + \else + \ifnum\catcode`\{=12 + \let\FV@CheckEnd\FV@CheckEnd@iv + \let\FV@@CheckEnd\FV@@CheckEnd@iv + \let\FV@@@CheckEnd\FV@@@CheckEnd@iv + \else + \FV@BadCodes\{% + \fi + \fi + \else + \ifnum\catcode`\\=12 + \ifnum\catcode`\{=\@ne + \let\FV@CheckEnd\FV@CheckEnd@ii + \let\FV@@CheckEnd\FV@@CheckEnd@ii + \let\FV@@@CheckEnd\FV@@@CheckEnd@ii + \else + \ifnum\catcode`\{=12 + \let\FV@CheckEnd\FV@CheckEnd@iii + \let\FV@@CheckEnd\FV@@CheckEnd@iii + \let\FV@@@CheckEnd\FV@@@CheckEnd@iii + \else + \FV@BadCodes\{% + \fi + \fi + \else + \FV@BadCodes\\% + \fi + \fi} +\begingroup +\catcode`\^^M=\active + \gdef\FV@BeginScanning#1^^M{% + \def\@tempa{#1}\ifx\@tempa\@empty\else\FV@BadBeginError\fi% + \FV@GetLine}% +\endgroup +\def\FV@BadBeginError#1{% + \expandafter\@temptokena\expandafter{\@tempa}% + \FV@Error + {Extraneous input `\the\@temptokena' between + \string\begin{\FV@EnvironName}[] and line end}% + {This input will be discarded. Hit to continue.}} +%% DG/SR modification begin - May. 18, 1998 (added code to turn off ligatures) +%% \def\FV@GetLine{\expandafter\FV@CheckScan\FancyVerbGetLine} +\def\FV@GetLine{\@noligs\expandafter\FV@CheckScan\FancyVerbGetLine} +%% DG/SR modification end +\begingroup +\catcode`\^^M=\active +\gdef\FancyVerbGetLine#1^^M{% + \@nil + \FV@CheckEnd{#1}% + \ifx\@tempa\FV@EnvironName% % True if end is found + \ifx\@tempb\FV@@@CheckEnd\else\FV@BadEndError\fi% + \let\next\FV@EndScanning% + \else% + \def\FV@Line{#1}% + \def\next{\FV@PreProcessLine\FV@GetLine}% + \fi% + \next}% +\endgroup +\def\FV@BadEndError{% + \expandafter\@temptokena\expandafter{\@tempb}% + \FV@Error + {Extraneous input `\the\@temptokena' between + \string\end{\FV@EnvironName} and line end}% + {This input will be discarded. Type to continue.}} +\def\FV@EndScanning{% + \edef\next{\noexpand\end{\FV@EnvironName}}% + \global\let\FV@EnvironName\relax + \next} +\@ifundefined{@currenvline}{\let\@currenvline\@empty}{} +\def\FV@CheckScan#1{\@ifnextchar\@nil{\@gobble}{\FV@EOF}} +\def\FV@CheckScan#1{\ifx\@nil#1\@empty\else\expandafter\FV@EOF\fi} +\def\FV@EOF{% + \FV@Error{Couldn't find `\string\end{\FV@EnvironName}' to end + a verbatim environment\@currenvline.}% + {Probably you mistyped the environment name or included an extraneous + ^^Jspace, or are using an improperly defined verbatim environment. + ^^JHit return and I will try to terminate this job.}% + \FV@EndScanning + \end{document}} + % \subsection{Input} +\newread\FV@InFile +\def\FV@Input#1{% + \immediate\openin\FV@InFile #1\relax + \ifeof\FV@InFile + \FV@Error{No verbatim file #1}\FV@eha + \immediate\closein\FV@InFile + \else + \FV@CatCodes + \expandafter\FV@@Input + \fi} +\def\FV@@Input{% + \def\FV@Line{}% + \FV@ReadLine + \ifeof\FV@InFile + \ifx\FV@Line\@empty\else + \FV@PreProcessLine + \fi + \immediate\closein\FV@InFile + \else + \FV@PreProcessLine + \expandafter\FV@@Input + \fi} +\begingroup +\catcode`\^^M=\active +\gdef\FV@ReadLine{% + \ifeof\FV@InFile\else + \immediate\read\FV@InFile to\@tempa% + \expandafter\FV@@ReadLine\@tempa^^M\relax^^M\@nil% + \fi} +\gdef\FV@@ReadLine#1^^M#2^^M#3\@nil{% + \expandafter\def\expandafter\FV@Line\expandafter{% + \FV@Line#1}% + \ifx\relax#2\@empty\expandafter\FV@ReadLine\fi}% +\endgroup +\def\FV@FormattingPrep{% + \global\FV@CodeLineNo\z@ + \frenchspacing % Cancels special punctuation spacing. + \FV@SetupFont % See below. + \FV@DefineWhiteSpace % See below. + \FancyVerbDefineActive + \FancyVerbFormatCom} % A user-defined hook (formatcom parameter). +\expandafter\ifx\csname selectfont\endcsname\relax +\def\FV@SetupFont{% + \FV@BaseLineStretch + \ifx\@currsize\small\normalsize\else\small\fi\@currsize + \FV@FontSize + \FV@FontFamily} + +\else + +\def\FV@SetupFont{% + \FV@BaseLineStretch + \FV@FontSize + \FV@FontFamily + \FV@FontSeries + \FV@FontShape + \selectfont +%% DG/SR modification begin - May. 18, 1998 (added code to turn off ligatures) + \@noligs} +%% DG/SR modification end +\fi +\define@key{FV}{fontsize}{% + \def\@tempa{#1}% + \ifx\@tempa\FV@Auto + \let\FV@FontSize\relax + \else + \def\FV@FontSize{#1}% + \fi} +\def\KV@FV@fontsize@default{\let\FV@FontSize\relax} +\define@key{FV}{baselinestretch}[auto]{% + \def\@tempa{#1}% + \ifx\@tempa\FV@Auto + \let\FV@BaseLineStretch\relax + \else + \def\FV@BaseLineStretch{\def\baselinestretch{#1}}% + \fi} +\def\KV@FV@baselinestretch@default{\let\FV@BaseLineStretch\relax} +\define@key{FV}{fontfamily}{% + \@ifundefined{FV@fontfamily@#1}% + {\def\FV@FontScanPrep{}\def\FV@FontFamily{\fontfamily{#1}}} + {\csname FV@fontfamily@#1\endcsname}} +\define@key{FV}{fontseries}{% + \def\@tempa{#1}% + \ifx\@tempa\FV@Auto + \let\FV@FontSeries\relax + \else + \def\FV@FontSeries{\fontseries{#1}}% + \fi} +\define@key{FV}{fontshape}{% + \def\@tempa{#1}% + \ifx\@tempa\FV@Auto + \let\FV@FontShape\relax + \else + \def\FV@FontShape{\fontshape{#1}}% + \fi} +\def\FV@MakeActive#1{% + \catcode`#1=\active + \def\next##1{\expandafter\def\expandafter\FV@MakeUnActive\expandafter{% + \FV@MakeUnActive\def##1{\string##1}}}% + \begingroup\lccode`~=`#1\relax\expandafter\next\expandafter~\endgroup} +\def\FV@MakeUnActive{} +\begingroup +\catcode`\`=\active +\gdef\FV@fontfamily@tt{% + \def\FV@FontScanPrep{\FV@MakeActive\`}% +%% SR modification begin - 1995 +%% \def\FV@FontFamily{\tt`{{\string`}}}} + \def\FV@FontFamily{\ttfamily\edef`{{\string`}}}} +%% SR modification end +\gdef\FV@fontfamily@cmtt{% + \def\FV@FontScanPrep{\FV@MakeActive\`}% + \def\FV@FontFamily{\edef`{{\string`}}\fontfamily{cmtt}}} +\endgroup +\@namedef{FV@fontfamily@cmtt-spanish}{% + \def\FV@FontScanPrep{}% + \def\FV@FontFamily{\fontfamily{cmtt}}} +\@namedef{FV@fontfamily@courier}{% + \def\FV@FontScanPrep{}% +%% SR modification begin - 1995 +%% \def\FV@FontFamily{\fontfamily{rpcr}}} + \def\FV@FontFamily{\fontfamily{pcr}}} +%% SR modification end +\@namedef{FV@fontfamily@helvetica}{% + \def\FV@FontScanPrep{}% +%% SR modification begin - 1995 +%% \def\FV@FontFamily{\fontfamily{rphv}}} + \def\FV@FontFamily{\fontfamily{phv}}} +%% SR modification end +\fvset{fontfamily=tt,fontsize=auto,fontshape=auto,fontseries=auto, + baselinestretch=auto} +\begingroup +\catcode`\ =\active +\catcode`\^^I=\active +\gdef\FV@DefineWhiteSpace{\def {\FV@Space}\def^^I{\FV@Tab}}% +\endgroup +\define@key{FV}{defineactive}[]{\def\FancyVerbDefineActive{#1\relax}} +\define@key{FV}{defineactive*}{% + \expandafter\def\expandafter\FancyVerbDefineActive\expandafter{% + \FancyVerbDefineActive#1\relax}} +\fvset{defineactive} +\define@booleankey{FV}{showspaces}% + {\def\FV@Space{{\FancyVerbSpace}}}% + {\def\FV@Space{\ }} +{\catcode`\ =12 \gdef\FancyVerbSpace{\tt }} +\fvset{showspaces=false} +\def\FV@Tab{\hbox to\FancyVerbTabSize\fontdimen2\font{\hss\FV@TabChar}} +\define@key{FV}{tabsize}{% + \@tempcnta=#1\relax + \ifnum\@tempcnta>100 + \FV@Error{Tab size too large: `\the\@tempcnta'. (Max size = 100)}\FV@eha + \else + \edef\FancyVerbTabSize{\the\@tempcnta}% + \fi} +\define@booleankey{FV}{showtabs}% + {\def\FV@TabChar{\FancyVerbTab}}% + {\let\FV@TabChar\relax} +\fvset{tabsize=8,showtabs=false} +\def\FancyVerbTab{% + \valign{% + \vfil##\vfil\cr + \hbox{$\scriptscriptstyle-$}\cr + \hbox to 0pt{\hss$\scriptscriptstyle\rangle\mskip -.8mu$}\cr + \hbox{$\scriptstyle\mskip -3mu\mid\mskip -1.4mu$}\cr}} +\newbox\FV@TabBox +\def\FV@@ObeyTabsInit{% + \@tempdimb=\FancyVerbTabSize\fontdimen\tw@\font + \edef\FV@ObeyTabSize{\number\@tempdimb}% + \advance\@tempdimb\fontdimen\tw@\font + \advance\@tempdimb-\FancyVerbTabSize sp % Allow for rounding errors. + \edef\FV@@ObeyTabSize{\number\@tempdimb}% + \let\FV@ObeyTabs\FV@@ObeyTabs + \let\FV@Tab\FV@TrueTab} +\def\FV@@ObeyTabs#1{\setbox\FV@TabBox=\hbox{#1}\box\FV@TabBox} +\let\FV@ObeyTabs\relax +\def\FV@TrueTab{% + \egroup + \@tempdima=\FV@ObeyTabSize sp\relax + \@tempcnta=\wd\FV@TabBox + \advance\@tempcnta\FV@@ObeyTabSize\relax + \divide\@tempcnta\@tempdima + \multiply\@tempdima\@tempcnta + \advance\@tempdima-\wd\FV@TabBox + \setbox\FV@TabBox=\hbox\bgroup + \unhbox\FV@TabBox\kern\@tempdima\hbox to\z@{\hss\FV@TabChar}} +\define@booleankey{FV}{obeytabs}% + {\let\FV@ObeyTabsInit\FV@@ObeyTabsInit}% + {\let\FV@ObeyTabsInit\relax} +\fvset{obeytabs=false} +\define@key{FV}{formatcom}[]{\def\FancyVerbFormatCom{#1\relax}} +\define@key{FV}{formatcom*}{% + \expandafter\def\expandafter\FancyVerbFormatCom\expandafter{% + \FancyVerbFormatCom#1\relax}} +\fvset{formatcom} +\def\FancyVerbFormatLine#1{\FV@ObeyTabs{#1}} +\define@key{FV}{xleftmargin}{\def\FV@XLeftMargin{#1}} +\let\FV@XLeftMargin\z@ +\define@key{FV}{xrightmargin}{\def\FV@XRightMargin{#1}} +\let\FV@XRightMargin\z@ +\define@booleankey{FV}{resetmargins}% + {\let\if@FV@ResetMargins\iftrue} + {\let\if@FV@ResetMargins\iffalse} +\fvset{resetmargins=false} +\define@key{FV}{listparameters}{\def\FV@ListParameterHook{#1}} +\def\FV@ListParameterHook{} +\define@key{FV}{hfuzz}{% + \@tempdima=#1\relax + \edef\FancyVerbHFuzz{\number\@tempdima sp}} +\fvset{hfuzz=2pt} +\define@booleankey{FV}{samepage}% + {\def\FV@InterLinePenalty{\interlinepenalty\@M}}% + {\let\FV@InterLinePenalty\relax} +\fvset{samepage=false} +\def\FV@List#1{% + \begingroup + \FV@UseKeyValues + \FV@LeaveVMode + \if@inlabel\else\setbox\@labels=\box\voidb@x\fi + \FV@ListNesting{#1}% + \FV@ListParameterHook + \FV@ListVSpace + \FV@SetLineWidth + \FV@InterLinePenalty + \let\FV@ProcessLine\FV@ListProcessLine@i + \FV@CatCodes + \FV@FormattingPrep + \FV@ObeyTabsInit + \FV@BeginListFrame} +\def\FV@LeaveVMode{% + \if@noskipsec + \leavevmode + \else + \if@FV@ResetMargins\if@inlabel\leavevmode\fi\fi + \fi + \ifvmode\@noparlisttrue\else\@noparlistfalse\unskip\par\fi} +\def\FV@ListNesting#1{% + \if@FV@ResetMargins + \@listdepth=\z@ + \else + \ifnum\@listdepth>5\relax + \@toodeep + \else + \advance\@listdepth\@ne + \fi + \fi + \rightmargin\z@ + \csname @list\romannumeral\the\@listdepth\endcsname + \ifnum#1=\z@ + \rightmargin\z@ + \leftmargin\z@ + \fi} +\def\FV@ListVSpace{% + \@topsepadd\topsep + \if@noparlist\advance\@topsepadd\partopsep\fi + \if@inlabel + \vskip\parskip + \else + \if@nobreak + \vskip\parskip + \clubpenalty\@M + \else + \addpenalty\@beginparpenalty + \@topsep\@topsepadd + \advance\@topsep\parskip + \addvspace\@topsep + \fi + \fi + \global\@nobreakfalse + \global\@inlabelfalse + \global\@minipagefalse + \global\@newlistfalse} +\def\FV@SetLineWidth{% + \if@FV@ResetMargins\else + \advance\leftmargin\@totalleftmargin + \fi + \advance\leftmargin\FV@XLeftMargin\relax + \advance\rightmargin\FV@XRightMargin\relax + \linewidth\hsize + \advance\linewidth-\leftmargin + \advance\linewidth-\rightmargin + \hfuzz\FancyVerbHFuzz\relax} +\def\FV@ListProcessLine#1{% + \hbox to \hsize{% + \kern\leftmargin + \hbox to \linewidth{% + \FV@LeftListNumber + \FV@LeftListFrame + \FancyVerbFormatLine{#1}\hss +%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) +%% \FV@RightListFrame}% + \FV@RightListFrame + \FV@RightListNumber}% +%% DG/SR modification end + \hss}} +\def\FV@ListProcessLine@i#1{% + \hbox{% + \ifvoid\@labels\else + \hbox to \z@{\kern\@totalleftmargin\box\@labels\hss}% + \fi + \FV@ListProcessLine{#1}}% + \let\FV@ProcessLine\FV@ListProcessLine@ii} +\def\FV@ListProcessLine@ii#1{% + \setbox\@tempboxa=\FV@ListProcessLine{#1}% + \let\FV@ProcessLine\FV@ListProcessLine@iii} +\def\FV@ListProcessLine@iii#1{% + {\advance\interlinepenalty\clubpenalty\penalty\interlinepenalty}% + \box\@tempboxa + \setbox\@tempboxa=\FV@ListProcessLine{#1}% + \let\FV@ProcessLine\FV@ListProcessLine@iv} +\def\FV@ListProcessLine@iv#1{% + \penalty\interlinepenalty + \box\@tempboxa + \setbox\@tempboxa=\FV@ListProcessLine{#1}}% +\def\FV@EndList{% + \FV@ListProcessLastLine + \FV@EndListFrame + \@endparenv + \endgroup + \@endpetrue} +\def\FV@ListProcessLastLine{% + \ifx\FV@ProcessLine\FV@ListProcessLine@iv + {\advance\interlinepenalty\widowpenalty\penalty\interlinepenalty}% + \box\@tempboxa + \else + \ifx\FV@ProcessLine\FV@ListProcessLine@iii + {\advance\interlinepenalty\widowpenalty + \advance\interlinepenalty\clubpenalty + \penalty\interlinepenalty}% + \box\@tempboxa + \else + \ifx\FV@ProcessLine\FV@ListProcessLine@i + \FV@Error{Empty verbatim environment}{}% + \FV@ProcessLine{}% + \fi + \fi + \fi} +\def\FV@VerbatimBegin{\FV@List\z@} +\def\FV@VerbatimEnd{\FV@EndList} +\def\FVB@Verbatim{\FV@VerbatimBegin\FV@Scan} +\def\FVE@Verbatim{\FV@VerbatimEnd} +\DefineVerbatimEnvironment{Verbatim}{Verbatim}{} +\def\FV@UseVerbatim#1{% + \FV@VerbatimBegin#1\FV@VerbatimEnd + \@doendpe\global\@ignorefalse\ignorespaces} +\def\VerbatimInput{\FV@Command{}{VerbatimInput}} +\def\FVC@VerbatimInput#1{\FV@UseVerbatim{\FV@Input{#1}}} +\def\FV@LVerbatimBegin{\FV@List\@ne} +\def\FV@LVerbatimEnd{\FV@EndList} +\def\FVB@LVerbatim{\FV@LVerbatimBegin\FV@Scan} +\def\FVE@LVerbatim{\FV@LVerbatimEnd} +\DefineVerbatimEnvironment{LVerbatim}{LVerbatim}{} +\def\FV@LUseVerbatim#1{% + \FV@LVerbatimBegin#1\FV@LVerbatimEnd + \@doendpe\global\@ignorefalse\ignorespaces} +\def\LVerbatimInput{\FV@Command{}{LVerbatimInput}} +\def\FVC@LVerbatimInput#1{\FV@LUseVerbatim{\FV@Input{#1}}} +\def\FV@Frame@none{% + \let\FV@BeginListFrame\relax + \let\FV@LeftListFrame\relax + \let\FV@RightListFrame\relax + \let\FV@EndListFrame\relax} +\def\FV@Frame@single{% + \let\FV@BeginListFrame\FV@BeginListFrame@Single + \let\FV@LeftListFrame\FV@LeftListFrame@Single + \let\FV@RightListFrame\FV@RightListFrame@Single + \let\FV@EndListFrame\FV@EndListFrame@Single} +\def\FV@Frame@lines{% + \let\FV@BeginListFrame\FV@BeginListFrame@Lines + \let\FV@LeftListFrame\relax + \let\FV@RightListFrame\relax + \let\FV@EndListFrame\FV@EndListFrame@Lines} +\def\FV@Frame@topline{% + \let\FV@BeginListFrame\FV@BeginListFrame@Lines + \let\FV@LeftListFrame\relax + \let\FV@RightListFrame\relax + \let\FV@EndListFrame\relax} +\def\FV@Frame@bottomline{% + \let\FV@BeginListFrame\relax + \let\FV@LeftListFrame\relax + \let\FV@RightListFrame\relax + \let\FV@EndListFrame\FV@EndListFrame@Lines} +%% To define a frame with only a left line +\def\FV@Frame@leftline{% + % To define the \FV@FrameFillLine macro (from \FV@BeginListFrame) + \ifx\FancyVerbFillColor\relax + \let\FV@FrameFillLine\relax + \else + \@tempdima\FV@FrameRule\relax + \multiply\@tempdima-\tw@ + \edef\FV@FrameFillLine{% + {\noexpand\FancyVerbFillColor{\vrule\@width\number\@tempdima sp}% + \kern-\number\@tempdima sp}}% + \fi + \let\FV@BeginListFrame\relax + \let\FV@LeftListFrame\FV@LeftListFrame@Single + \let\FV@RightListFrame\relax + \let\FV@EndListFrame\relax} +\def\FV@BeginListFrame@Single{% + \lineskip\z@ + \baselineskip\z@ + \ifx\FancyVerbFillColor\relax + \let\FV@FrameFillLine\relax + \else + \@tempdima\FV@FrameRule\relax + \multiply\@tempdima-\tw@ + \edef\FV@FrameFillLine{% + {\noexpand\FancyVerbFillColor{\vrule\@width\number\@tempdima sp}% + \kern-\number\@tempdima sp}}% + \fi +%% DG/SR modification begin - May. 19, 1998 +%% \FV@SingleFrameLine + \FV@SingleFrameLine{\z@}% +%% DG/SR modification end + \penalty\@M + \FV@SingleFrameSep + \penalty\@M} +%% DG/SR modification begin - May. 19, 1998 +\define@key{FV}{label}{% + \def\@tempa{#1}% + \ifx\@tempa\FV@None + \let\FV@LabelBegin\relax + \let\FV@LabelEnd\relax + \else + \FV@Label@i#1\@nil% + \fi} +\def\FV@Label@i{\@ifnextchar[{\FV@Label@ii}{\FV@Label@ii[]}} +\def\FV@Label@ii[#1]#2\@nil{% + \def\@tempa{#1}% + \ifx\@tempa\empty + \def\FV@LabelBegin{#2}% + \else + \def\FV@LabelBegin{#1}% + \def\FV@LabelPositionBottomLine{\@ne}% + \fi + \def\FV@LabelEnd{#2}} +\fvset{label=none} +\define@key{FV}{labelposition}[none]{% + \@ifundefined{FV@LabelPosition@#1}% + {\FV@Error{Label position `#1' not defined.}\FV@eha}% + {\@nameuse{FV@LabelPosition@#1}}} +\def\FV@LabelPosition@none{% + \let\FV@LabelPositionTopLine\relax% + \let\FV@LabelPositionBottomLine\relax} +\def\FV@LabelPosition@topline{% + \def\FV@LabelPositionTopLine{\@ne}% + \let\FV@LabelPositionBottomLine\relax} +\def\FV@LabelPosition@bottomline{% + \let\FV@LabelPositionTopLine\relax% + \def\FV@LabelPositionBottomLine{\@ne}} +\def\FV@LabelPosition@all{% + \def\FV@LabelPositionTopLine{\@ne}% + \def\FV@LabelPositionBottomLine{\@ne}} +\fvset{labelposition=topline} +%% DG/SR modification end +%% DG/SR modification begin - May. 19, 1998 +%% \def\FV@SingleFrameLine{% +\def\FV@SingleFrameLine#1{% +%% DG/SR modification end + \hbox to\z@{% + \kern\leftmargin +%% DG/SR modification begin - Jun. 22, 1998 + \ifnum#1=\z@ + \let\FV@Label\FV@LabelBegin + \else + \let\FV@Label\FV@LabelEnd + \fi + \ifx\FV@Label\relax +%% DG/SR modification end + \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}% +%% DG/SR modification begin - Jun. 22, 1998 + \else + \ifnum#1=\z@ + \setbox\z@\hbox{\strut\enspace\FV@LabelBegin\enspace\strut}% + \else + \setbox\z@\hbox{\strut\enspace\FV@LabelEnd\enspace\strut}% + \fi + \@tempdimb=\dp\z@ + \advance\@tempdimb -.5\ht\z@ + \@tempdimc=\linewidth + \advance\@tempdimc -\wd\z@ + \divide\@tempdimc\tw@ + \ifnum#1=\z@ % Top line + \ifx\FV@LabelPositionTopLine\relax + \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}% + \else + \FV@FrameLineWithLabel + \fi + \else % Bottom line + \ifx\FV@LabelPositionBottomLine\relax + \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}% + \else + \FV@FrameLineWithLabel + \fi + \fi + \fi +%% DG/SR modification end + \hss}} +%% DG/SR modification begin - May. 19, 1998 +\def\FV@FrameLineWithLabel{% + \ht\z@\@tempdimb\dp\z@\@tempdimb% + \FancyVerbRuleColor{% + \vrule \@width\@tempdimc \@height\FV@FrameRule + \raise\@tempdimb\box\z@ + \vrule \@width\@tempdimc \@height\FV@FrameRule}} +%% DG/SR modification end +\def\FV@BeginListFrame@Lines{% + \begingroup + \lineskip\z@skip +%% DG modification begin - June 18, 1997 (effect of \baselineskip too earlier) +%% \baselineskip\z@skip +%% \FV@SingleFrameLine +%% DG/SR modification begin - May. 19, 1998 +%% \FV@SingleFrameLine + \FV@SingleFrameLine{\z@}% +%% DG/SR modification end + \kern-0.5\baselineskip\relax + \baselineskip\z@skip +%% DG modification end + \kern\FV@FrameSep\relax + \endgroup}% +\def\FV@EndListFrame@Lines{% + \begingroup + \baselineskip\z@skip + \kern\FV@FrameSep\relax +%% DG/SR modification begin - May. 19, 1998 +%% \FV@SingleFrameLine + \FV@SingleFrameLine{\@ne}% +%% DG/SR modification end + \endgroup} +\def\FV@SingleFrameSep{% + \hbox to \z@{% + \kern\leftmargin + \hbox to\linewidth{% + \FancyVerbRuleColor{% +%% DG modification begin - June 18, 1997 (\FV@FrameSep missing) + \ifx\FancyVerbFillColor\relax + \vrule\@width 0pt\@height\FV@FrameSep\relax + \fi +%% DG modification end + \vrule\@width\FV@FrameRule\relax + \ifx\FancyVerbFillColor\relax + \hfil + \else + {\FancyVerbFillColor\leaders\hrule\@height\FV@FrameSep\hfil}% + \fi +%% DG modification begin - June 18, 1997 (\FV@FrameSep missing) + \ifx\FancyVerbFillColor\relax + \vrule\@width 0pt\@height\FV@FrameSep\relax + \fi +%% DG modification end + \vrule\@width\FV@FrameRule\relax}}% + \hss}} +\def\FV@LeftListFrame@Single{% + \strut + {\FancyVerbRuleColor{\vrule \@width\FV@FrameRule}}% + \FV@FrameFillLine +%% DG modification begin - June 18, 1997 (to fill color on left side) +%% \kern\FV@FrameSep} + \ifx\FancyVerbFillColor\relax + \kern\FV@FrameSep + \else + {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}% + \fi} +%% DG modification end +\def\FV@RightListFrame@Single{% +%% DG modification begin - June 18, 1997 (to fill color on right side) +%% \kern\FV@FrameSep + \ifx\FancyVerbFillColor\relax + \kern\FV@FrameSep + \else + {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}% + \fi + {\noexpand\leavevmode\FancyVerbRuleColor{\vrule\@width\FV@FrameRule}}} +%% DG modification end +\def\FV@EndListFrame@Single{% + \penalty\@M + \FV@SingleFrameSep + \penalty\@M +%% DG/SR modification begin - May. 19, 1998 +%% \FV@SingleFrameLine} + \FV@SingleFrameLine{\@ne}} +%% DG/SR modification end +\define@key{FV}{framerule}{% + \@tempdima=#1\relax + \edef\FV@FrameRule{\number\@tempdima sp\relax}} +\def\KV@FV@framerule@default{\let\FV@FrameRule\fboxrule} +\define@key{FV}{framesep}{% + \@tempdima=#1\relax + \edef\FV@FrameSep{\number\@tempdima sp\relax}} +\def\KV@FV@framesep@default{\let\FV@FrameSep\fboxsep} +\fvset{framerule,framesep} +\define@key{FV}{rulecolor}{% + \def\@tempa{#1}% + \ifx\@tempa\FV@None + \let\FancyVerbRuleColor\relax + \else + \let\FancyVerbRuleColor\@tempa + \fi} +\define@key{FV}{fillcolor}{% + \def\@tempa{#1}% + \ifx\@tempa\FV@None + \let\FancyVerbFillColor\relax + \else + \let\FancyVerbFillColor\@tempa + \fi} +\fvset{rulecolor=none,fillcolor=none} +\def\FV@Frame@double{% + \let\FV@FrameBegin\FV@FrameBegin@double + \let\FV@FrameLine\FV@FrameLine@double + \let\FV@FrameEnd\FV@FrameEnd@double} +\define@key{FV}{frame}[none]{% + \@ifundefined{FV@Frame@#1}% + {\FV@Error{Frame style `#1' not defined.}\FV@eha}% + {\@nameuse{FV@Frame@#1}}} +\fvset{frame=none} +\newcounter{FancyVerbLine} +\define@key{FV}{firstnumber}[auto]{% + \def\@tempa{#1}\def\@tempb{auto}% + \ifx\@tempa\@tempb + \def\FV@SetLineNo{% + \c@FancyVerbLine\FV@CodeLineNo + \advance\c@FancyVerbLine\m@ne}% + \else + \def\@tempb{last}% + \ifx\@tempa\@tempb + \let\FV@SetLineNo\relax + \else +%% DG/SR modification begin - Jan. 19, 1998 +%% \def\FV@SetLineNo{\c@FancyVerbLine#1}% + \def\FV@SetLineNo{% + \c@FancyVerbLine#1 + \advance\c@FancyVerbLine\m@ne}% +%% DG/SR modification end + \fi + \fi} +\define@booleankey{FV}{numberblanklines}% + {\let\if@FV@NumberBlankLines\iftrue} + {\let\if@FV@NumberBlankLines\iffalse} +\fvset{numberblanklines=true} +%% DG/SR modification begin - May. 20, 1998 +%%\def\refstepcounter#1{% Adapted from latex.ltx +\def\FV@refstepcounter#1{% +%% DG/SR modification end + \stepcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\endcsname\arabic{FancyVerbLine}}} +\def\FV@StepLineNo{% + \FV@SetLineNo +%% DG/SR modification begin - Apr. 28, 1998 and May 20, 1998 +%% \def\FV@StepLineNo{\refstepcounter{FancyVerbLine}}% + \def\FV@StepLineNo{% + \if@FV@NumberBlankLines + \FV@refstepcounter{FancyVerbLine} + \else + \ifx\FV@Line\empty + \else + \FV@refstepcounter{FancyVerbLine} + \fi + \fi}% +%% DG/SR modification end + \FV@StepLineNo} +%% DG/SR modification begin - 1995 +%%\def\theFancyVerbLine{\rm\tiny\arabic{FancyVerbLine}} +\def\theFancyVerbLine{\rmfamily\tiny\arabic{FancyVerbLine}} +%% DG/SR modification end +\define@key{FV}{numbers}[none]{% + \@ifundefined{FV@Numbers@#1}% + {\FV@Error{Numbers style `#1' not defined.}\FV@eha}% + {\@nameuse{FV@Numbers@#1}}} +%% DG modification begin - Dec. 20, 1995 and Jan. 28, 1998 +%%\def\FV@Numbers@none{\let\FV@LeftListNumber\relax} +\def\FV@Numbers@none{% +\let\FV@LeftListNumber\relax +\let\FV@RightListNumber\relax} +\newcount\FV@StepNumber +\define@key{FV}{stepnumber}{\FV@StepNumber#1} +\def\KV@FV@stepnumber@default{\FV@StepNumber\@ne} +\fvset{stepnumber} +%% DG modification begin - Dec. 20, 1995 +%%\def\FV@Numbers@left{% +%% \def\FV@LeftListNumber{\hbox to\z@{% +%% \hss\theFancyVerbLine\kern\FV@NumberSep}}} +\def\FV@Numbers@left{% +%% DG/SR modification begin - Apr. 28, 1998 + \let\FV@RightListNumber\relax +%% DG/SR modification end + \def\FV@LeftListNumber{% + \@tempcnta=\FV@CodeLineNo + \@tempcntb=\FV@CodeLineNo + \divide\@tempcntb\FV@StepNumber + \multiply\@tempcntb\FV@StepNumber + \ifnum\@tempcnta=\@tempcntb +%% DG/SR modification begin - Apr. 28, 1998 +%% \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% + \if@FV@NumberBlankLines + \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% + \else + \ifx\FV@Line\empty + \else + \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}% + \fi + \fi +%% DG/SR modification end + \fi}} +\def\FV@Numbers@right{% +%% DG/SR modification begin - Apr. 28, 1998 + \let\FV@LeftListNumber\relax +%% DG/SR modification end + \def\FV@RightListNumber{% + \@tempcnta=\FV@CodeLineNo + \@tempcntb=\FV@CodeLineNo + \divide\@tempcntb\FV@StepNumber + \multiply\@tempcntb\FV@StepNumber + \ifnum\@tempcnta=\@tempcntb +%% DG/SR modification begin - Apr. 28, 1998 +%% \hbox to \z@{\kern\FV@NumberSep\theFancyVerbLine\hss}% + \if@FV@NumberBlankLines + \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}% + \else + \ifx\FV@Line\empty + \else + \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}% + \fi + \fi +%% DG/SR modification end + \fi}} +%% DG modification end +\define@key{FV}{numbersep}{% + \@tempdima=#1\relax + \edef\FV@NumberSep{\number\@tempdima sp\relax}} +\fvset{numbers=none,numbersep=12pt,firstnumber=auto} +\def\FV@BVerbatimBegin{% + \begingroup + \FV@UseKeyValues + \FV@BeginVBox + \let\FV@ProcessLine\FV@BProcessLine + \FV@FormattingPrep + \FV@ObeyTabsInit}% +\def\FV@BVerbatimEnd{\FV@EndVBox\endgroup} +\def\FV@BeginVBox{% + \leavevmode + \hbox\ifx\FV@boxwidth\relax\else to\FV@boxwidth\fi\bgroup + \ifcase\FV@baseline\vbox\or\vtop\or$\vcenter\fi\bgroup} +\def\FV@EndVBox{\egroup\ifmmode$\fi\hfil\egroup} +\define@key{FV}{boxwidth}{% + \def\@tempa{#1}\def\@tempb{auto}% + \ifx\@tempa\@tempb + \let\FV@boxwidth\relax + \else + \@tempdima=#1\relax + \edef\FV@boxwidth{\number\@tempdima sp}% + \fi} +\def\KV@FV@boxwidth@default{\let\FV@boxwidth\relax} +\define@key{FV}{baseline}{% + \if t#1\@empty\let\FV@baseline\@ne\else + \if c#1\@empty\let\FV@baseline\tw@\else\let\FV@baseline\z@\fi + \fi} +\fvset{baseline=b,boxwidth} +\def\FV@BProcessLine#1{\hbox{\FancyVerbFormatLine{#1}}} +\def\FVB@BVerbatim{\FV@BVerbatimBegin\FV@Scan} +\def\FVE@BVerbatim{\FV@BVerbatimEnd} +\DefineVerbatimEnvironment{BVerbatim}{BVerbatim}{} +\def\FV@BUseVerbatim#1{\FV@BVerbatimBegin#1\FV@BVerbatimEnd} +\def\BVerbatimInput{\FV@Command{}{BVerbatimInput}} +\def\FVC@BVerbatimInput#1{\FV@BUseVerbatim{\FV@Input{#1}}} +\def\SaveVerbatim{\FV@Environment{}{SaveVerbatim}} +\def\FVB@SaveVerbatim#1{% + \@bsphack + \begingroup + \FV@UseKeyValues +%% \FV@BeginVBox +%% \let\FV@ProcessLine\FV@BProcessLine +%% \FV@FormattingPrep +%% \FV@ObeyTabsInit% +%% + \def\SaveVerbatim@Name{#1}% + \gdef\FV@TheVerbatim{}% + \def\FV@ProcessLine##1{% + \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{% + \FV@TheVerbatim\FV@ProcessLine{##1}}}% + \gdef\FV@TheVerbatim{}% + \FV@Scan} +\def\FVE@SaveVerbatim{% + \expandafter\global\expandafter\let + \csname FV@SV@\SaveVerbatim@Name\endcsname\FV@TheVerbatim +%% \expandafter\gdef +%% \csname FV@SV@\SaveVerbatim@Name\endcsname{\FV@TheVerbatim} +%% \FV@EndVBox +%% \endgroup} + \endgroup\@esphack} +\DefineVerbatimEnvironment{SaveVerbatim}{SaveVerbatim}{} +\def\FV@CheckIfSaved#1#2{% + \@ifundefined{FV@SV@#1}% + {\FV@Error{No verbatim text has been saved under name `#1'}\FV@eha}% + {#2{\csname FV@SV@#1\endcsname}}} +\def\UseVerbatim{\FV@Command{}{UseVerbatim}} +\def\FVC@UseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@UseVerbatim}} +\def\LUseVerbatim{\FV@Command{}{LUseVerbatim}} +\def\FVC@LUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@LUseVerbatim}} +\def\BUseVerbatim{\FV@Command{}{BUseVerbatim}} +\def\FVC@BUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@BUseVerbatim}} +\newwrite\FV@OutFile +\def\VerbatimOut{\FV@Environment{}{VerbatimOut}} +\def\FVB@VerbatimOut#1{% + \@bsphack + \begingroup + \FV@UseKeyValues + \FV@DefineWhiteSpace + \def\FV@Space{\space}% + \FV@DefineTabOut + \def\FV@ProcessLine{\immediate\write\FV@OutFile}% + \def\@inpenc@loop##1##2{% + \@tempcnta`##1\relax + \loop + \catcode\@tempcnta12 + \ifnum\@tempcnta<`##2\relax + \advance\@tempcnta\@ne + \repeat}% + \@inpenc@loop\^^A\^^H% + \@inpenc@loop\^^K\^^K% + \@inpenc@loop\^^N\^^_% + \@inpenc@loop\^^?\^^ff% + \immediate\openout\FV@OutFile #1\relax + \let\FV@FontScanPrep\relax +%% DG/SR modification begin - May. 18, 1998 (to avoid problems with ligatures) + \let\@noligs\relax +%% DG/SR modification end + \FV@Scan} +\def\FVE@VerbatimOut{\immediate\closeout\FV@OutFile\endgroup\@esphack} +\DefineVerbatimEnvironment{VerbatimOut}{VerbatimOut}{} +\def\FV@DefineTabOut{% + \def\FV@Tab{}% + \@tempcnta=\FancyVerbTabSize\relax + \loop\ifnum\@tempcnta>\z@ + \edef\FV@Tab{\FV@Tab\space}% + \advance\@tempcnta\m@ne + \repeat} +\def\SaveVerb{\FV@Command{}{SaveVerb}} +\begingroup +\catcode`\^^M=\active% +\gdef\FVC@SaveVerb#1#2{% + \@namedef{FV@SV@#1}{}% + \begingroup% + \FV@UseKeyValues% + \FV@CatCodes% + \outer\def^^M{\FV@EOL}% + \global\let\@tempg\FancyVerbAfterSave% + \catcode`#2=12% + \def\@tempa{\def\FancyVerbGetVerb####1####2}% + \expandafter\@tempa\string#2{\endgroup\@namedef{FV@SV@#1}{##2}\@tempg}% + \FancyVerbGetVerb\FV@EOL}% +\endgroup +\def\FV@EOL{% + \endgroup + \FV@Error% + {Could not find the end delimiter of a short verb command}% + {You probably just forget the end delimiter of a \string\Verb\space or + \string\SaveVerb^^J% + command, or you broke the literal text across input lines.^^J% + Hit to procede.}} +\define@key{FV}{aftersave}{\def\FancyVerbAfterSave{#1}} +\fvset{aftersave=} +\def\FV@UseVerb#1{\mbox{\FV@UseKeyValues\FV@FormattingPrep#1}} +\def\UseVerb{\FV@Command{}{UseVerb}} +\def\FVC@UseVerb#1{% + \@ifundefined{FV@SV@#1}% + {\FV@Error{Short verbatim text never saved to name `#1'}\FV@eha}% + {\FV@UseVerb{\@nameuse{FV@SV@#1}}}} +\def\Verb{\FV@Command{}{Verb}} +\begingroup +\catcode`\^^M=\active% +\gdef\FVC@Verb#1{% + \begingroup% + \FV@UseKeyValues% + \FV@FormattingPrep% + \FV@CatCodes% + \outer\def^^M{}% + \catcode`#1=12% + \def\@tempa{\def\FancyVerbGetVerb####1####2}% + \expandafter\@tempa\string#1{\mbox{##2}\endgroup}% + \FancyVerbGetVerb\FV@EOL}% +\endgroup +\def\DefineShortVerb{\FV@Command{}{DefineShortVerb}} +\def\FVC@DefineShortVerb#1{% + \@ifundefined{FV@CC@\string#1}% + {\FVC@@DefineShortVerb#1}% + {\FV@Error{`\expandafter\@gobble\string#1' is already a short + verb character.}\FV@eha}} +\def\FVC@@DefineShortVerb#1{% + \begingroup + \lccode`\~=`#1% + \lowercase{\gdef\@tempg{\edef~}\global\let\@temph~}% + \endgroup + \expandafter\let\csname FV@AC@\string#1\endcsname\@temph + \expandafter\edef\csname FV@CC@\string#1\endcsname{\the\catcode`#1}% + \expandafter\let\csname FV@KV@\string#1\endcsname\FV@KeyValues + \@tempg{% + \let\noexpand\FV@KeyValues\expandafter\noexpand + \csname FV@KV@\string#1\endcsname + \noexpand\FVC@Verb\expandafter\@gobble\string#1}% + \expandafter\def\expandafter\dospecials\expandafter{\dospecials\do#1}% + \expandafter\def\expandafter\@sanitize\expandafter{\@sanitize\@makeother#1}% + \catcode`#1=\active}% +\def\UndefineShortVerb#1{% + \@ifundefined{FV@CC@\string#1}% + {\FV@Error{`\expandafter\@gobble\string#1' is not a short + verb character}\FV@eha}% + {\FV@UndefineShortVerb#1}} +\def\FV@UndefineShortVerb#1{% + \catcode`#1=\csname FV@CC@\string#1\endcsname +%% DG/SR modification begin - Jun. 12, 1998 + \expandafter\let\csname FV@CC@\string#1\endcsname\relax +%% DG/SR modification end + \begingroup + \lccode`\~=`#1% + \lowercase{\gdef\@tempg{\let~}}% + \endgroup + \expandafter\@tempg\csname FV@AC@\string#1\endcsname + \def\@tempa##1\do#1##2\@nil##3\@nil##4\@@nil{##3\def\dospecials{##1##2}\fi}% + \expandafter\@tempa\dospecials\@nil\iftrue\@nil\do#1\@nil\iffalse\@nil\@@nil + \def\@tempa##1\@makeother#1##2\@nil##3\@nil##4\@@nil{% + ##3\def\@sanitize{##1##2}\fi}% + \expandafter\@tempa\@sanitize\@nil\iftrue\@nil\do#1\@nil\iffalse\@nil\@@nil} +\def\SaveMVerb{\FV@Command{}{SaveMVerb}} +\begingroup +\catcode`\^^M=\active% +\gdef\FVC@SaveMVerb#1#2{% + \@ifundefined{FV@SVM@#1}{}% + {\FV@Error{Moving verbatim name `#1' already used}% + {I will overwrite the old definition. Hit to continue.}}% + \global\@namedef{FV@SVM@#1}{}% + \begingroup% + \let\FV@SavedKeyValues\FV@KeyValues% + \FV@UseKeyValues% + \FV@CatCodes% + \outer\def^^M{}% + \global\let\@tempg\FancyVerbAfterSave% + \catcode`#2=12% + \def\@tempa{\def\FancyVerbGetVerb####1####2}% + \expandafter\@tempa\string#2{% + \if@filesw + \FV@DefineWhiteSpace% + \let\FV@Space\space% + \let\FV@Tab\space% + \FV@MakeUnActive% + \let\protect\string + \immediate\write\@auxout{% + \noexpand\SaveGVerb[\FV@SavedKeyValues]{#1}\string#2##2\string#2}% + \fi + \endgroup% + \@namedef{FV@SV@#1}{##2}% + \@tempg}% + \FancyVerbGetVerb\FV@EOL}% +\endgroup +\def\SaveGVerb{\FV@Command{}{SaveGVerb}} +\begingroup +\catcode`\^^M=\active% +\gdef\FVC@SaveGVerb#1#2{% + \global\@namedef{FV@SVG@#1}{}% + \begingroup% + \FV@UseKeyValues% + \FV@CatCodes% + \outer\def^^M{}% + \catcode`#2=12% + \def\@tempa{\def\FancyVerbGetVerb####1####2}% + \expandafter\@tempa\string#2{\endgroup\global\@namedef{FV@SVG@#1}{##2}}% + \FancyVerbGetVerb\FV@EOL}% +\endgroup +\def\UseMVerb{\protect\pUseMVerb} +\def\pUseMVerb{\FV@Command{}{pUseMVerb}} +\def\FVC@pUseMVerb#1{% + \expandafter\ifx \csname FV@SVM@#1\endcsname\relax + \expandafter\ifx \csname FV@SVG@#1\endcsname\relax + \@warning{Moving verbatim text not defined for name `#1'}\FV@eha + {\bf ??}% + \else + \FV@UseVerb{\@nameuse{FV@SVG@#1}}% + \fi + \else + \FV@UseVerb{\@nameuse{FV@SVM@#1}}% + \fi} +\expandafter\ifx\csname documentclass\endcsname\relax + \def\lrbox#1{% + \edef\@tempa{% + \endgroup + \setbox#1\hbox{% + \begingroup\aftergroup}% + \def\noexpand\@currenvir{\@currenvir}}% + %\def\noexpand\@currenvline{\on@line}}% + \@tempa + \@endpefalse + \bgroup + \ignorespaces} + \def\endlrbox{\unskip\egroup} +\fi +%% DG/SR modification begin - Jan. 22, 1998 +%%\@input{fancyvrb.rc} +\@input{fancyvrb.cfg} +%% DG/SR modification end +\endinput +%% +%% End of file `fancyvrb.sty'. diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/graphic.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/graphic.tex new file mode 100644 index 00000000000..41cfa3ba205 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/graphic.tex @@ -0,0 +1,654 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setcounter{chapter}{4} +\newcommand{\graphicscompanion}{\emph{The \LaTeX{} Graphics Companion}~\cite{graphicscompanion}} +\newcommand{\hobby}{\emph{Руководство пользователя MetaPost}~\cite{metapost}} +\newcommand{\hoenig}{\emph{\TeX{} Unbound}~\cite{unbound}} +\newcommand{\graphicsinlatex}{\emph{Графика в \LaTeXe{}}~\cite{ursoswald}} + +\chapter{Генерация математической графики} + +\begin{intro} +Большинство людей пользуются \LaTeX\ для верстки текста. Но \LaTeX{} также +предлагает, хотя и ограниченную, возможность генерации графики по +текстовому описанию. Более того, существует множество расширений \LaTeX{}, +обходящих эти ограничния. Эта глава расскажет о нескольких из них. +\end{intro} + +\section{Обзор} + +Окружение \ei{picture} позволяет программировать картинки прямо в +среде \LaTeX. Подробное описание приводится в \manual. С одной +стороны, при этом есть довольно серьезные ограничения, поскольку как +наклоны отрезков, так и радиусы дуг сильно ограничены в возможных +значениях. С другой стороны, в окружении \ei{picture} существуюет +команда \ci{qbezier}, где <<\texttt{q}>> означает +<<квадратичный>>. Множество часто используемых кривых, таких как +окружности, эллипсы или цепные линии, можно удовлетворительно +аппроксимировать квадратичными кривыми Безье, хотя для этого и +требуются некоторые математические усилия. Кроме того, когда блоки +команд \ci{qbezier} генерируются из языка программирования, скажем, +Java, окружение \ei{picture} становится довольно мощным. + +Хотя программирование картинок прямо из \LaTeX{} серьезно ограничено и +часто довольно утомительно, оно все же бывает полезным. Полученные +таким образом документы получаются компактными, и нет необходимости +прилагать к документу графические файлы. + +Пакеты наподобие \pai{epic} и \pai{eepic} (описанные, например, в +\companion) или \pai{pstricks} помогают снять ограничения +оригинального окружения \ei{picture} и сильно развивают графические +возможности \LaTeX{}. + +Тогда как первые два пакета просто улучшают окружение \ei{picture}, +пакет \pai{pstricks} имеет собственное окружение для рисования, +\ei{pspicture}. Возможности \pai{pstricks} проистекают их того, что он +широко использует функциональность \PSi{}. Кроме этого пакета, +существует и множество других, написанных для конкретных задач. Одним +из них является пакет \texorpdfstring{\Xy}{Xy}-pic, описанный в конце +этой главы. Множество таких пакетов детально описано в +\graphicscompanion{} (не путать с \companion). + +Возможно, самым мощным графическим инструментом, связанным с \LaTeX{}, +является \MP, программа-близнец написанной Donald E. Knuth программы +\texttt{METAFONT}. \MP{} использует очень мощный и математически +изощренный язык \texttt{METAFONT}. В отличие же от \texttt{METAFONT}, +генерирующего растры, \MP{} генерирует файлы \EPSi{}, которые можно +импортировать в \LaTeX{}. Далее смотрите \hobby, или введение в +\cite{ursoswald}. + +Очень подробно работа с графикой (и шрифтами) в \LaTeX{} и \TeX{} +описана в \hoenig. + +\section{Окружение \texttt{picture}} +\secby{Urs Oswald}{osurs@bluewin.ch} + +\subsection{Основные команды} + +Окружение \ei{picture} создается одной из двух команд: +\begin{lscommand} +\ci{begin}\verb|{picture}(|$x,y$\verb|)|\ldots\ci{end}\verb|{picture}| +\end{lscommand} +\noindent либо +\begin{lscommand} +\ci{begin}\verb|{picture}(|$x,y$\verb|)(|$x_0,y_0$\verb|)|\ldots\ci{end}\verb|{picture}| +\end{lscommand} + +Числа $x,\,y,\,x_0,\,y_0$ измеряются в размерности \ci{unitlength}, +которую можно менять в любой момент (но не внутри окружения +\ei{picture}) командами наподобие +\begin{lscommand} +\ci{setlength}\verb|{|\ci{unitlength}\verb|}{1.2cm}| +\end{lscommand} + +Значение \ci{unitlength} по умолчанию составляет 1pt. Первая пара, +$(x,y)$, диктует резервирование для картинки прямоугольного +пространства внутри документа. Необязательная вторая пара, +$(x_0,y_0)$, присваивает произвольные координаты нижнему левому углу +зарезервированного прямоугольника. + +Большинство команд рисования имеют одну из двух форм: +\begin{lscommand} +\ci{put}\verb|(|$x,y$\verb|){|\emph{объект}\verb|}| +\end{lscommand} +\noindent или +\begin{lscommand} +\ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{объект}\verb|}|\end{lscommand} + +Кривые Безье являются исключением. Их рисуют командой +\begin{lscommand} +\ci{qbezier}\verb|(|$x_1,y_1$\verb|)(|$x_2,y_2$\verb|)(|$x_3,y_3$\verb|)| +\end{lscommand} + +\subsection{Отрезки} + +\begin{example} +\setlength{\unitlength}{5cm} +\begin{picture}(1,1) + \put(0,0){\line(0,1){1}} + \put(0,0){\line(1,0){1}} + \put(0,0){\line(1,1){1}} + \put(0,0){\line(1,2){.5}} + \put(0,0){\line(1,3){.3333}} + \put(0,0){\line(1,4){.25}} + \put(0,0){\line(1,5){.2}} + \put(0,0){\line(1,6){.1667}} + \put(0,0){\line(2,1){1}} + \put(0,0){\line(2,3){.6667}} + \put(0,0){\line(2,5){.4}} + \put(0,0){\line(3,1){1}} + \put(0,0){\line(3,2){1}} + \put(0,0){\line(3,4){.75}} + \put(0,0){\line(3,5){.6}} + \put(0,0){\line(4,1){1}} + \put(0,0){\line(4,3){1}} + \put(0,0){\line(4,5){.8}} + \put(0,0){\line(5,1){1}} + \put(0,0){\line(5,2){1}} + \put(0,0){\line(5,3){1}} + \put(0,0){\line(5,4){1}} + \put(0,0){\line(5,6){.8333}} + \put(0,0){\line(6,1){1}} + \put(0,0){\line(6,5){1}} +\end{picture} +\end{example} +Отрезки рисуются командой +\begin{lscommand} +\ci{put}\verb|(|$x,y$\verb|){|\ci{line}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}| +\end{lscommand} +Команда \ci{line} имеет два аргумента: +\begin{enumerate} + \item вектор направления, + \item длина. +\end{enumerate} +Компоненты вектора ограничены в своем значении набором целых чисел +\[ + -6,\,-5\,\ldots,\,5,\,6, +\] +и они обязаны быть взаимно простыми (не иметь общего делителя, кроме +1). Иллюстрация показывает все 25 возможных значений наклона в первом +квадранте. Длина выражается в единицах \ci{unitlength}. Аргумент длины +задает вертикальную координату в случае вертикального отрезка и +горизонтальную~--- во всех остальных случаях. + +\subsection{Векторы} + +\begin{example} +\setlength{\unitlength}{1mm} +\begin{picture}(60,40) + \put(30,20){\vector(1,0){30}} + \put(30,20){\vector(4,1){20}} + \put(30,20){\vector(3,1){25}} + \put(30,20){\vector(2,1){30}} + \put(30,20){\vector(1,2){10}} + \thicklines + \put(30,20){\vector(-4,1){30}} + \put(30,20){\vector(-1,4){5}} + \thinlines + \put(30,20){\vector(-1,-1){5}} + \put(30,20){\vector(-1,-4){5}} +\end{picture} +\end{example} +Векторы рисуются командой +\begin{lscommand} +\ci{put}\verb|(|$x,y$\verb|){|\ci{vector}\verb|(|$x_1,y_1$\verb|){|$length$\verb|}}| +\end{lscommand} +Для векторов значения вектора направления еще более ограничены в +значениях, чем для отрезков, а именно~--- числами +\[ + -4,\,-3,\,\ldots,\,3,\,4. +\] +Компоненты также обязаны быть взаимно простыми (не иметь общего +делителя, кроме 1). Заметьте эффект команды \ci{thicklines} на двух +векторах, указывающих в верхний левый угол. + +\subsection{Окружности} + +\begin{example} +\setlength{\unitlength}{1mm} +\begin{picture}(60, 40) + \put(20,30){\circle{1}} + \put(20,30){\circle{2}} + \put(20,30){\circle{4}} + \put(20,30){\circle{8}} + \put(20,30){\circle{16}} + \put(20,30){\circle{32}} + + \put(40,30){\circle{1}} + \put(40,30){\circle{2}} + \put(40,30){\circle{3}} + \put(40,30){\circle{4}} + \put(40,30){\circle{5}} + \put(40,30){\circle{6}} + \put(40,30){\circle{7}} + \put(40,30){\circle{8}} + \put(40,30){\circle{9}} + \put(40,30){\circle{10}} + \put(40,30){\circle{11}} + \put(40,30){\circle{12}} + \put(40,30){\circle{13}} + \put(40,30){\circle{14}} + + \put(15,10){\circle*{1}} + \put(20,10){\circle*{2}} + \put(25,10){\circle*{3}} + \put(30,10){\circle*{4}} + \put(35,10){\circle*{5}} +\end{picture} +\end{example} +Команда +\begin{lscommand} + \ci{put}\verb|(|$x,y$\verb|){|\ci{circle}\verb|{|\emph{диаметр}\verb|}}| +\end{lscommand} +\noindent рисует окружность с центром в точке $(x,y)$ и диаметром (не +радиусом!) \emph{диаметр}. Окружение \ei{picture} позволяет рисовать +окружности диаметром не более примерно 14\,мм, и даже в этих пределах +допустимы не все диаметры. Команда \ci{circle*} рисует круг +(заполненную окружность). + +Как и в случае отрезков, вы можете прибегать к помощи дополнительных +пакетов, таких, как \pai{eepic} или \pai{pstricks}. +Подробное описание этих пакетов приведено в \graphicscompanion. + +Существует также и выход в рамках окружения \ei{picture}. Если вы не +боитесь выполнения необходимых вычислений (или возлагаете их на +программу), то можно изображать произвольные окружности и эллипсы при +помощи кривых Безье. Примеры и исходные тексты на Java приведены в +\graphicsinlatex. + +\subsection{Текст и формулы} + +\begin{example} +\setlength{\unitlength}{1cm} +\begin{picture}(6,5) + \thicklines + \put(1,0.5){\line(2,1){3}} + \put(4,2){\line(-2,1){2}} + \put(2,3){\line(-2,-5){1}} + \put(0.7,0.3){$A$} + \put(4.05,1.9){$B$} + \put(1.7,2.95){$C$} + \put(3.1,2.5){$a$} + \put(1.3,1.7){$b$} + \put(2.5,1.05){$c$} + \put(0.3,4){$F= + \sqrt{s(s-a)(s-b)(s-c)}$} + \put(3.5,0.4){$\displaystyle + s:=\frac{a+b+c}{2}$} +\end{picture} +\end{example} +Как показывает этот пример, текст и формулы могут размещаться в +окружении \ei{picture} обычным способом~--- командой \ci{put}. + +\subsection{Команды \ci{multiput} и \ci{linethickness}} + +\begin{example} +\setlength{\unitlength}{2mm} +\begin{picture}(30,20) + \linethickness{0.075mm} + \multiput(0,0)(1,0){31}% + {\line(0,1){20}} + \multiput(0,0)(0,1){21}% + {\line(1,0){30}} + \linethickness{0.15mm} + \multiput(0,0)(5,0){7}% + {\line(0,1){20}} + \multiput(0,0)(0,5){5}% + {\line(1,0){30}} + \linethickness{0.3mm} + \multiput(5,0)(10,0){3}% + {\line(0,1){20}} + \multiput(0,5)(0,10){2}% + {\line(1,0){30}} +\end{picture} +\end{example} +Команда +\begin{lscommand} + \ci{multiput}\verb|(|$x,y$\verb|)(|$\Delta x,\Delta y$\verb|){|$n$\verb|}{|\emph{объект}\verb|}| +\end{lscommand} +\noindent имеет 4 аргумента: начальная точка, вектор перехода от +одного объекта к следующему, число объектов и собственно объект для +рисования. Команда \ci{linethickness} относится к горизонтальным и +вертикальным отрезкам, но никогда~--- к наклонным или +окружностям. Она, однако относится также и к квадратичным кривым +Безье! + +\subsection{Овалы. Команды \ci{thinlines} и \ci{thicklines}} + +\begin{example} +\setlength{\unitlength}{1cm} +\begin{picture}(6,4) + \linethickness{0.075mm} + \multiput(0,0)(1,0){7}% + {\line(0,1){4}} + \multiput(0,0)(0,1){5}% + {\line(1,0){6}} + \thicklines + \put(2,3){\oval(3,1.8)} + \thinlines + \put(3,2){\oval(3,1.8)} + \thicklines + \put(2,1){\oval(3,1.8)[tl]} + \put(4,1){\oval(3,1.8)[b]} + \put(4,3){\oval(3,1.8)[r]} + \put(3,1.5){\oval(1.8,0.4)} +\end{picture} +\end{example} +Команда +\begin{lscommand} + \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)}| +\end{lscommand} +\noindent или +\begin{lscommand} + \ci{put}\verb|(|$x,y$\verb|){|\ci{oval}\verb|(|$w,h$\verb|)[|\emph{позиция}\verb|]}| +\end{lscommand} +\noindent выводит овал с центром в $(x,y)$, имеющий длину $w$ и высоту +$h$. Необязательный аргумент \emph{позиция} может принимать значения +\texttt{b}, \texttt{t}, \texttt{l} и \texttt{r} (вниз/вверх/влево/вправо) +и может сочетать эти значения, как на приведенном примере. + +Толщина линий может управляться одной из двух команд:\\ +\ci{linethickness}\verb|{|\emph{длина}\verb|}| +с одной стороны, и \ci{thinlines} и \ci{thicklines}~--- с другой. В то +время, как \ci{linethickness}\verb|{|\emph{длина}\verb|}| влияет +только на горизонтальные и вертикальные линии (и квадратичные кривые +Безье), \ci{thinlines} и \ci{thicklines} влияет на наклонные отрезки, +окружности и овалы. + +\subsection{Повторное использование блоков картинки} + +\begin{example} +\setlength{\unitlength}{0.5mm} +\begin{picture}(120,168) +\newsavebox{\foldera}% объявление +\savebox{\foldera} + (40,32)[bl]{% определение + \multiput(0,0)(0,28){2} + {\line(1,0){40}} + \multiput(0,0)(40,0){2} + {\line(0,1){28}} + \put(1,28){\oval(2,2)[tl]} + \put(1,29){\line(1,0){5}} + \put(9,29){\oval(6,6)[tl]} + \put(9,32){\line(1,0){8}} + \put(17,29){\oval(6,6)[tr]} + \put(20,29){\line(1,0){19}} + \put(39,28){\oval(2,2)[tr]} +} +\newsavebox{\folderb}% объявление +\savebox{\folderb} + (40,32)[l]{% определение + \put(0,14){\line(1,0){8}} + \put(8,0){\usebox{\foldera}} +} +\put(34,26){\line(0,1){102}} +\put(14,128){\usebox{\foldera}} +\multiput(34,86)(0,-37){3} + {\usebox{\folderb}} +\end{picture} +\end{example} +Блок рисунка может быть \emph{объявлен} командой +\begin{lscommand} + \ci{newsavebox}\verb|{|\emph{название}\verb|}| +\end{lscommand} +\noindent а затем \emph{определен} командой +\begin{lscommand} + \ci{savebox}\verb|{|\emph{название}\verb|}(|\emph{ширина,высота}\verb|)[|\emph{позиция}\verb|]{|\emph{содержание}\verb|}| +\end{lscommand} +\noindent и, наконец, сколько угодно раз \emph{нарисован} командой +\begin{lscommand} + \ci{put}\verb|(|$x,y$\verb|)|\ci{usebox}\verb|{|\emph{название}\verb|}| +\end{lscommand} + +Необязательный аргумент \emph{позиция} определяет точку привязки +блока. В приведенном примере он установлен в значение \texttt{bl}, что +помещает точку привязки в нижний левый угол блока. Другие варианты +значения~--- \texttt{t} (вверх) и \texttt{r} (вправо). + +Аргумент \emph{название} фактически является командой \LaTeX{} (отсюда +и обратная косая черта перед ним в рассматриваемом примере). Блоки +могут быть вложенными: в этом примере внутри определения \ci{folderb} +используется \ci{foldera}. + +Команду \ci{oval} пришлось применить потому что команда \ci{line} не +работает, если длина отрезка меньше примерно 3\,мм. + +\subsection{Квадратичные кривые Безье} + +\begin{example} +\setlength{\unitlength}{1cm} +\begin{picture}(6,4) + \linethickness{0.075mm} + \multiput(0,0)(1,0){7} + {\line(0,1){4}} + \multiput(0,0)(0,1){5} + {\line(1,0){6}} + \thicklines + \put(0.5,0.5){\line(1,5){0.5}} + \put(1,3){\line(4,1){2}} + \qbezier(0.5,0.5)(1,3)(3,3.5) + \thinlines + \put(2.5,2){\line(2,-1){3}} + \put(5.5,0.5){\line(-1,5){0.5}} + \linethickness{1mm} + \qbezier(2.5,2)(5.5,0.5)(5,3) + \thinlines + \qbezier(4,2)(4,3)(3,3) + \qbezier(3,3)(2,3)(2,2) + \qbezier(2,2)(2,1)(3,1) + \qbezier(3,1)(4,1)(4,2) +\end{picture} +\end{example} +Как показывает этот пример, разбиение окружности на четыре квадратичных +кривых Безье дает неудовлетворительный результат. Требуется как +минимум восемь. Иллюстрация снова показывает влияние команды +\ci{linethickness} на горизонтальные и вертикальные линии, а команд +\ci{thinlines} и \ci{thicklines}~--- на наклонные отрезки. Она также +показывает, что обе команды влияют на квадратичные кривые Безье, и +каждая следующая команда отменяет результаты предыдущих. + +Пусть $P_1=(x_1,\,y_1),\,P_2=(x_2,\,y_2)$ задают конечные точки, а +$m_1,\,m_2$~--- соответствующие наклоны % касательные? +квадратичной кривой Безье. Тогда промежуточная управляющая точка +$S=(x,\,y)$ задается уравнением +\begin{equation} \label{zwischenpunkt} + \left\{ + \begin{array}{rcl} + x & = & \displaystyle \frac{m_2 x_2-m_1x_1-(y_2-y_1}{m_2-m_1}, \\ + y & = & y_i+m_i(x-x_i)\qquad (i=1,\,2). + \end{array} + \right. +\end{equation} +\noindent В \graphicsinlatex\ приведена Java-программа, генирующая + необходимые команды \ci{qbezier}. + +\subsection{Цепная линия} + +\begin{example} +\setlength{\unitlength}{1.3cm} +\begin{picture}(4.3,3.6)(-2.5,-0.25) + \put(-2,0){\vector(1,0){4.4}} + \put(2.45,-.05){$x$} + \put(0,0){\vector(0,1){3.2}} + \put(0,3.35){\makebox(0,0){$y$}} + \qbezier(0.0,0.0)(1.2384,0.0) + (2.0,2.7622) + \qbezier(0.0,0.0)(-1.2384,0.0) + (-2.0,2.7622) + \linethickness{.075mm} + \multiput(-2,0)(1,0){5} + {\line(0,1){3}} + \multiput(-2,0)(0,1){4} + {\line(1,0){4}} + \linethickness{.2mm} + \put( .3,.12763){\line(1,0){.4}} + \put(.5,-.07237){\line(0,1){.4}} + \put(-.7,.12763){\line(1,0){.4}} + \put(-.5,-.07237){\line(0,1){.4}} + \put(.8,.54308){\line(1,0){.4}} + \put(1,.34308){\line(0,1){.4}} + \put(-1.2,.54308){\line(1,0){.4}} + \put(-1,.34308){\line(0,1){.4}} + \put(1.3,1.35241){\line(1,0){.4}} + \put(1.5,1.15241){\line(0,1){.4}} + \put(-1.7,1.35241){\line(1,0){.4}} + \put(-1.5,1.15241){\line(0,1){.4}} + \put(-2.5,-0.25){\circle*{0.2}} +\end{picture} +\end{example} + +На этой иллюстрации каждая симметричная половина цепной линии $y=\cosh +x -1$ аппроксимирована квадратичной кривой Безье. Правая половина +кривой заканчивается в точке \((2,\,2.7622)\), наклон в которой имеет +значение \(m=3.6269\). Вновь используя уравнение +(\ref{zwischenpunkt}), мы можем вычислить внутренние управляющие +точки. Ими оказались $(1.2384,\,0)$ и $(-1.2384,\,0)$. Крестики +отмечают точки \emph{настоящей} цепной линии. Ошибка едва заметна, +будучи меньше одного процента. + +Этот пример показывает использование необязательного аргумента команды +\verb|\begin{picture}|. Картинка определена в удобных +<<математических>> координатах, тогда как команда +\begin{lscommand} + \ci{begin}\verb|{picture}(4.3,3.6)(-2.5,-0.25)| +\end{lscommand} +\noindent присваивает ее нижнему левому углу (отмеченному черным +кружком) координаты $(-2.5,-0.25)$. + +\subsection{Скорость в специальной теории относительности} + +\begin{example} +\setlength{\unitlength}{1cm} +\begin{picture}(6,4)(-3,-2) + \put(-2.5,0){\vector(1,0){5}} + \put(2.7,-0.1){$\chi$} + \put(0,-1.5){\vector(0,1){3}} + \multiput(-2.5,1)(0.4,0){13} + {\line(1,0){0.2}} + \multiput(-2.5,-1)(0.4,0){13} + {\line(1,0){0.2}} + \put(0.2,1.4) + {$\beta=v/c=\tanh\chi$} + \qbezier(0,0)(0.8853,0.8853) + (2,0.9640) + \qbezier(0,0)(-0.8853,-0.8853) + (-2,-0.9640) + \put(-3,-2){\circle*{0.2}} +\end{picture} +\end{example} + +Управляющие точки двух кривых Безье были вычислены по формулам +(\ref{zwischenpunkt}). Положительная ветка определяется +$P_1=(0,\,0),\,m_1=1$ и $P_2=(2,\,\tanh 2),\,m_2=1/\cosh^2 +2$. Картинка вновь определяется в математически удобных координатах, а +нижний левый угол получает математические координаты $(-3,-2)$ (черный +кружок). + +\section{\texorpdfstring{\Xy}{Xy}-pic} +\secby{Alberto Manuel Brand\~ao Sim\~oes}{albie@alfarrabio.di.uminho.pt} +\pai{xy}~--- это специальный пакет для рисования диаграмм. Для его +использования просто добавьте к преамбуле документа следующую строчку: +\begin{lscommand} +\verb|\usepackage[|\emph{опции}\verb|]{xy}| +\end{lscommand} +\noindent где \emph{опции}~--- список загружаемых функций \Xy-pic. Эти +опции полезны, в первую очередь, для отладки пакета. Рекомендуется +использовать опцию \verb!all!, инструктируя \LaTeX{} загрузить все +команды \Xy{}. + +Диаграммы \Xy-pic рисуются в матричной канве, где каждый элемент +диаграммы помещается в определенную клетку матрицы: +\begin{example} +\begin{displaymath} +\xymatrix{A & B \\ + C & D } +\end{displaymath} +\end{example} +Команда \ci{xymatrix} должна использоваться в математическом +режиме. Здесь мы задали две строки и два столбца. Чтобы из этой +матрицы сделать диаграмму, добавим стрелки векторов командой \ci{ar}. +\begin{example} +\begin{displaymath} +\xymatrix{ A \ar[r] & B \ar[d] \\ + D \ar[u] & C \ar[l] } +\end{displaymath} +\end{example} +Команда рисования вектора помещается в клетку, откуда исходит +вектор. Аргументом является направление, куда показывает вектор +(\texttt{u}p, \texttt{d}own, \texttt{r}ight и \texttt{l}eft). +\begin{example} +\begin{displaymath} +\xymatrix{ + A \ar[d] \ar[dr] \ar[r] & B \\ + D & C } +\end{displaymath} +\end{example} +Для рисования диагоналей укажите больше одного направления. Вы также +можете повторять знак направления для рисования б\'ольших векторов. +\begin{example} +\begin{displaymath} +\xymatrix{ + A \ar[d] \ar[dr] \ar[drr] & & \\ + B & C & D } +\end{displaymath} +\end{example} + +Можно рисовать еще более интересные диаграммы, добавляя к векторам +метки. Для этого используются обычные операторы нижних и верхних +индексов. +\begin{example} +\begin{displaymath} +\xymatrix{ + A \ar[r]^f \ar[d]_g & + B \ar[d]^{g'} \\ + D \ar[r]_{f'} & C } +\end{displaymath} +\end{example} + +Как показано выше, эти операторы используются как в математическом +режиме. Единственная разница заключается в том, что верхний индекс +означает <<над стрелкой вектора>>, а нижний~--- <<под стрелкой>>. +Есть еще третий оператор, вертикальная черта: \verb+|+. Он помещает +текст \emph{в} стрелку. +\begin{example} +\begin{displaymath} +\xymatrix{ + A \ar[r]|f \ar[d]|g & + B \ar[d]|{g'} \\ + D \ar[r]|{f'} & C } +\end{displaymath} +\end{example} + +Чтобы нарисовать стрелку с пробелом в ней, пользуйтесь командой +\verb!\ar[...]|\hole!. В некоторых случаях важно различать несколько +видов стрелок. Этого можно добиться, помещая на них метки или меняя их +вид: +\begin{example} +\shorthandoff{"} +\begin{displaymath} +\xymatrix{ + \bullet\ar@{->}[rr] && \bullet\\ + \bullet\ar@{.<}[rr] && \bullet\\ + \bullet\ar@{~)}[rr] && \bullet\\ + \bullet\ar@{=(}[rr] && \bullet\\ + \bullet\ar@{~/}[rr] && \bullet\\ + \bullet\ar@{^{(}->}[rr] && \bullet\\ + \bullet\ar@2{->}[rr] && \bullet\\ + \bullet\ar@3{->}[rr] && \bullet\\ + \bullet\ar@{=+}[rr] && \bullet +} +\end{displaymath} +\shorthandon{"} +\end{example} + +Отметьте разницу между следующими двумя диаграммами: +\begin{example} +\begin{displaymath} +\xymatrix{ + \bullet \ar[r] + \ar@{.>}[r] & + \bullet +} +\end{displaymath} +\end{example} + +\begin{example} +\begin{displaymath} +\xymatrix{ + \bullet \ar@/^/[r] + \ar@/_/@{.>}[r] & + \bullet +} +\end{displaymath} +\end{example} + +Модификаторы между косыми чертами определяют, как будут рисоваться +кривые. \Xy-pic предлагает множество способов изменить способ +рисования кривых; подробности смотрите в документации на \Xy-pic. + +% \begin{example} +% \begin{lscommand} +% \ci{dum} +% \end{lscommand} +% \end{example} + diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/hbaw.sty b/Master/texmf-dist/doc/latex/lshort-russian/src/hbaw.sty new file mode 100644 index 00000000000..8594acff911 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/hbaw.sty @@ -0,0 +1,154 @@ +%% +%% This is file `hbaw.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fvrb-ex.dtx (with options: `hbaw') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from hbaw.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file fvrb-ex.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +%% Packages `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') +%% +%% Denis Girou (CNRS/IDRIS - France) +%% March 27, 1998 +%% +%% Package `hbaw' +%% +\NeedsTeXFormat{LaTeX2e} +\def\fileversion{1.4} +\def\filedate{1998/03/19} +\ProvidesPackage{hbaw}[\filedate] +\message{`hbaw' v\fileversion, \filedate\space (Denis Girou)} +\newcommand{\FvrbEx@ColoredBox}[3]{% +\fboxsep=1pt\fcolorbox{#2}{#2}{\textcolor{#3}{\textbf{#1}}}} +\def\Highlight@Attributes{% +\def\HLa##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLb##1{\ifmmode\mathsl{##1}\else\textsl{##1}\fi} +\def\HLc##1{##1} +\def\HLd##1{##1} +\def\HLe##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLf##1{##1} +\def\HLq##1{##1} +\def\HLr##1{##1} +\def\HLz##1{##1} +\def\HLBFa##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLBFb##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLBFc##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLBFd##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLBFe##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLBFf##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLBFz##1{\ifmmode\mathbf{##1}\else\textbf{##1}\fi} +\def\HLITa##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} +\def\HLITb##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} +\def\HLITc##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} +\def\HLITd##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} +\def\HLITe##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} +\def\HLITf##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} +\def\HLITz##1{\ifmmode\mathnormal{##1}\else\textsl{##1}\fi} +\def\HLSCa##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} +\def\HLSCb##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} +\def\HLSCc##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} +\def\HLSCd##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} +\def\HLSCe##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} +\def\HLSCf##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} +\def\HLSCz##1{\ifmmode\mathit{##1}\else\textsc{##1}\fi} +\def\HLTTa##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTb##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTc##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTd##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTe##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTf##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTq##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTr##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLTTz##1{\ifmmode\mathtt{##1}\else\texttt{##1}\fi} +\def\HLITTTa##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} +\def\HLITTTb##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} +\def\HLITTTc##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} +\def\HLITTTd##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} +\def\HLITTTe##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} +\def\HLITTTf##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} +\def\HLITTTz##1{\ifmmode\mathtt{##1}\else\textsl{\texttt{##1}}\fi} +\def\HLCBBa##1{\FvrbEx@ColoredBox{##1}{blue}{black}} +\def\HLCBBb##1{\FvrbEx@ColoredBox{##1}{cyan}{black}} +\def\HLCBBc##1{\FvrbEx@ColoredBox{##1}{green}{black}} +\def\HLCBBd##1{\FvrbEx@ColoredBox{##1}{magenta}{black}} +\def\HLCBBe##1{\FvrbEx@ColoredBox{##1}{red}{black}} +\def\HLCBBf##1{\FvrbEx@ColoredBox{##1}{yellow}{black}} +\def\HLCBBz##1{\FvrbEx@ColoredBox{##1}{black}{black}} +\def\HLCBWa##1{\FvrbEx@ColoredBox{##1}{blue}{white}} +\def\HLCBWb##1{\FvrbEx@ColoredBox{##1}{green}{white}} +\def\HLCBWc##1{\FvrbEx@ColoredBox{##1}{green}{white}} +\def\HLCBWd##1{\FvrbEx@ColoredBox{##1}{magenta}{white}} +\def\HLCBWe##1{\FvrbEx@ColoredBox{##1}{red}{white}} +\def\HLCBWf##1{\FvrbEx@ColoredBox{##1}{green}{white}} +\def\HLCBWz##1{\FvrbEx@ColoredBox{##1}{black}{white}} +\def\HLSa##1{\underline{##1}} +\def\HLSb##1{\underline{##1}} +\def\HLSc##1{\underline{##1}} +\def\HLSd##1{\underline{##1}} +\def\HLSe##1{\underline{##1}} +\def\HLSf##1{\underline{##1}} +\def\HLSz##1{\underline{##1}} +\def\HLSaa##1{\underline{##1}} +\def\HLSbb##1{\underline{##1}} +\def\HLScc##1{\underline{##1}} +\def\HLSdd##1{\underline{##1}} +\def\HLSee##1{\underline{##1}} +\def\HLSef##1{\underline{##1}} +\def\HLSez##1{\underline{##1}} +} +\def\NoHighlight@Attributes{% +\catcode`\^^a7=0\relax% +\catcode`\^^b5=1\relax% +\catcode`\^^b6=2\relax% +\def\HLa##1{##1}% +\def\HLb##1{##1}% +\def\HLc##1{##1}% +\def\HLd##1{##1}% +\def\HLe##1{##1}% +\def\HLf##1{##1}% +\def\HLBFa##1{##1}% +\def\HLBFb##1{##1}% +\def\HLBFc##1{##1}% +\def\HLBFd##1{##1}% +\def\HLBFe##1{##1}% +\def\HLBFf##1{##1}% +\def\HLITa##1{##1}% +\def\HLITb##1{##1}% +\def\HLITc##1{##1}% +\def\HLITd##1{##1}% +\def\HLITe##1{##1}% +\def\HLITf##1{##1}% +\def\HLCBBa##1{##1}% +\def\HLCBBb##1{##1}% +\def\HLCBBc##1{##1}% +\def\HLCBBd##1{##1}% +\def\HLCBBe##1{##1}% +\def\HLCBBf##1{##1}% +\def\HLCBBz##1{##1}% +\def\HLCBWa##1{##1}% +\def\HLCBWb##1{##1}% +\def\HLCBWc##1{##1}% +\def\HLCBWd##1{##1}% +\def\HLCBWe##1{##1}% +\def\HLCBWf##1{##1}% +\def\HLCBWz##1{##1}% +} +\Highlight@Attributes +\endinput +%% +%% End of file `hbaw.sty'. diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/hcolor.sty b/Master/texmf-dist/doc/latex/lshort-russian/src/hcolor.sty new file mode 100644 index 00000000000..c9b80d1bbec --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/hcolor.sty @@ -0,0 +1,157 @@ +%% +%% This is file `hcolor.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fvrb-ex.dtx (with options: `hcolor') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from hcolor.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file fvrb-ex.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +%% Packages `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') +%% +%% Denis Girou (CNRS/IDRIS - France) +%% March 27, 1998 +%% +%% Package `hcolor' +%% +\NeedsTeXFormat{LaTeX2e} +\def\fileversion{1.4} +\def\filedate{1998/03/19} +\ProvidesPackage{hcolor}[\filedate] +\message{`hcolor' v\fileversion, \filedate\space (Denis Girou)} +\newcommand{\FvrbEx@ColoredUnderline}[3]{% +$\setbox\z@\hbox{\begingroup#3\endgroup}% +\dp\z@\z@\m@th\color{#1}\underline{\textcolor{#2}{\box\z@}}$} +\newcommand{\FvrbEx@ColoredBox}[3]{% +\fboxsep=1pt\fcolorbox{#2}{#2}{\textcolor{#3}{\textbf{#1}}}} +\def\Highlight@Attributes{% +\def\HLa##1{\textcolor{blue}{##1}} +\def\HLb##1{\textcolor{cyan}{##1}} +\def\HLc##1{\textcolor{green}{##1}} +\def\HLd##1{\textcolor{magenta}{##1}} +\def\HLe##1{\textcolor{red}{##1}} +\def\HLf##1{\textcolor{yellow}{##1}} +\def\HLq##1{\textcolor{PaleGreen}{##1}} +\def\HLr##1{\textcolor{SlateBlue}{##1}} +\def\HLz##1{\textcolor{black}{##1}} +\def\HLBFa##1{\textcolor{blue}{\textbf{##1}}} +\def\HLBFb##1{\textcolor{cyan}{\textbf{##1}}} +\def\HLBFc##1{\textcolor{green}{\textbf{##1}}} +\def\HLBFd##1{\textcolor{magenta}{\textbf{##1}}} +\def\HLBFe##1{\textcolor{red}{\textbf{##1}}} +\def\HLBFf##1{\textcolor{yellow}{\textbf{##1}}} +\def\HLBFz##1{\textcolor{black}{\textbf{##1}}} +\def\HLITa##1{\textcolor{blue}{\textsl{##1}}} +\def\HLITb##1{\textcolor{cyan}{\textsl{##1}}} +\def\HLITc##1{\textcolor{green}{\textsl{##1}}} +\def\HLITd##1{\textcolor{magenta}{\textsl{##1}}} +\def\HLITe##1{\textcolor{red}{\textsl{##1}}} +\def\HLITf##1{\textcolor{yellow}{\textsl{##1}}} +\def\HLITz##1{\textcolor{black}{\textsl{##1}}} +\def\HLSCa##1{\textcolor{blue}{\textsc{##1}}} +\def\HLSCb##1{\textcolor{cyan}{\textsc{##1}}} +\def\HLSCc##1{\textcolor{green}{\textsc{##1}}} +\def\HLSCd##1{\textcolor{magenta}{\textsc{##1}}} +\def\HLSCe##1{\textcolor{red}{\textsc{##1}}} +\def\HLSCf##1{\textcolor{yellow}{\textsc{##1}}} +\def\HLSCz##1{\textcolor{black}{\textsc{##1}}} +\def\HLTTa##1{\textcolor{blue}{\texttt{##1}}} +\def\HLTTb##1{\textcolor{cyan}{\texttt{##1}}} +\def\HLTTc##1{\textcolor{green}{\texttt{##1}}} +\def\HLTTd##1{\textcolor{magenta}{\texttt{##1}}} +\def\HLTTe##1{\textcolor{red}{\texttt{##1}}} +\def\HLTTf##1{\textcolor{yellow}{\texttt{##1}}} +\def\HLTTq##1{\textcolor{ForestGreen}{\texttt{##1}}} +\def\HLTTr##1{\textcolor{PineGreen}{\texttt{##1}}} +\def\HLTTz##1{\textcolor{black}{\texttt{##1}}} +\def\HLITTTa##1{\textcolor{blue}{\textsl{\texttt{##1}}}} +\def\HLITTTb##1{\textcolor{cyan}{\textsl{\texttt{##1}}}} +\def\HLITTTc##1{\textcolor{green}{\textsl{\texttt{##1}}}} +\def\HLITTTd##1{\textcolor{magenta}{\textsl{\texttt{##1}}}} +\def\HLITTTe##1{\textcolor{red}{\textsl{\texttt{##1}}}} +\def\HLITTTf##1{\textcolor{yellow}{\textsl{\texttt{##1}}}} +\def\HLITTTz##1{\textcolor{black}{\textsl{\texttt{##1}}}} +\def\HLCBBa##1{\FvrbEx@ColoredBox{##1}{blue}{black}} +\def\HLCBBb##1{\FvrbEx@ColoredBox{##1}{cyan}{black}} +\def\HLCBBc##1{\FvrbEx@ColoredBox{##1}{green}{black}} +\def\HLCBBd##1{\FvrbEx@ColoredBox{##1}{magenta}{black}} +\def\HLCBBe##1{\FvrbEx@ColoredBox{##1}{red}{black}} +\def\HLCBBf##1{\FvrbEx@ColoredBox{##1}{yellow}{black}} +\def\HLCBBz##1{\FvrbEx@ColoredBox{##1}{black}{black}} +\def\HLCBWa##1{\FvrbEx@ColoredBox{##1}{blue}{white}} +\def\HLCBWb##1{\FvrbEx@ColoredBox{##1}{cyan}{white}} +\def\HLCBWc##1{\FvrbEx@ColoredBox{##1}{green}{white}} +\def\HLCBWd##1{\FvrbEx@ColoredBox{##1}{magenta}{white}} +\def\HLCBWe##1{\FvrbEx@ColoredBox{##1}{red}{white}} +\def\HLCBWf##1{\FvrbEx@ColoredBox{##1}{yellow}{white}} +\def\HLCBWz##1{\FvrbEx@ColoredBox{##1}{black}{white}} +\def\HLSa##1{\color{blue}\underline{##1}} +\def\HLSb##1{\color{cyan}\underline{##1}} +\def\HLSc##1{\color{green}\underline{##1}} +\def\HLSd##1{\color{magenta}\underline{##1}} +\def\HLSe##1{\color{red}\underline{##1}} +\def\HLSf##1{\color{yellow}\underline{##1}} +\def\HLSz##1{\color{black}\underline{##1}} +\def\HLSaa##1{\FvrbEx@ColoredUnderline{blue}{black}{##1}} +\def\HLSbb##1{\FvrbEx@ColoredUnderline{cyan}{black}{##1}} +\def\HLScc##1{\FvrbEx@ColoredUnderline{green}{black}{##1}} +\def\HLSdd##1{\FvrbEx@ColoredUnderline{magenta}{black}{##1}} +\def\HLSee##1{\FvrbEx@ColoredUnderline{red}{black}{##1}} +\def\HLSef##1{\FvrbEx@ColoredUnderline{yellow}{black}{##1}} +\def\HLSez##1{\FvrbEx@ColoredUnderline{black}{black}{##1}} +} +\def\NoHighlight@Attributes{% +\catcode`\^^a7=0\relax% +\catcode`\^^b5=1\relax% +\catcode`\^^b6=2\relax% +\def\HLa##1{##1}% +\def\HLb##1{##1}% +\def\HLc##1{##1}% +\def\HLd##1{##1}% +\def\HLe##1{##1}% +\def\HLf##1{##1}% +\def\HLBFa##1{##1}% +\def\HLBFb##1{##1}% +\def\HLBFc##1{##1}% +\def\HLBFd##1{##1}% +\def\HLBFe##1{##1}% +\def\HLBFf##1{##1}% +\def\HLITa##1{##1}% +\def\HLITb##1{##1}% +\def\HLITc##1{##1}% +\def\HLITd##1{##1}% +\def\HLITe##1{##1}% +\def\HLITf##1{##1}% +\def\HLCBBa##1{##1}% +\def\HLCBBb##1{##1}% +\def\HLCBBc##1{##1}% +\def\HLCBBd##1{##1}% +\def\HLCBBe##1{##1}% +\def\HLCBBf##1{##1}% +\def\HLCBBz##1{##1}% +\def\HLCBWa##1{##1}% +\def\HLCBWb##1{##1}% +\def\HLCBWc##1{##1}% +\def\HLCBWd##1{##1}% +\def\HLCBWe##1{##1}% +\def\HLCBWf##1{##1}% +\def\HLCBWz##1{##1}% +} +\Highlight@Attributes +\endinput +%% +%% End of file `hcolor.sty'. diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.out b/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.out new file mode 100644 index 00000000000..2eade433bac --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.out @@ -0,0 +1,119 @@ +\BOOKMARK [0][-]{chapter*.1}{}{} +\BOOKMARK [0][-]{chapter*.2}{}{} +\BOOKMARK [0][-]{chapter.1}{ \040}{} +\BOOKMARK [1][-]{section.1.1}{}{chapter.1} +\BOOKMARK [2][-]{subsection.1.1.1}{TeX}{section.1.1} +\BOOKMARK [2][-]{subsection.1.1.2}{LaTeX}{section.1.1} +\BOOKMARK [1][-]{section.1.2}{}{chapter.1} +\BOOKMARK [2][-]{subsection.1.2.1}{, \040 }{section.1.2} +\BOOKMARK [2][-]{subsection.1.2.2}{ }{section.1.2} +\BOOKMARK [2][-]{subsection.1.2.3}{ \040}{section.1.2} +\BOOKMARK [1][-]{section.1.3}{ \040LaTeX}{chapter.1} +\BOOKMARK [2][-]{subsection.1.3.1}{}{section.1.3} +\BOOKMARK [2][-]{subsection.1.3.2}{}{section.1.3} +\BOOKMARK [2][-]{subsection.1.3.3}{ LaTeX}{section.1.3} +\BOOKMARK [2][-]{subsection.1.3.4}{}{section.1.3} +\BOOKMARK [1][-]{section.1.4}{ \040}{chapter.1} +\BOOKMARK [1][-]{section.1.5}{ \040 \040LaTeX}{chapter.1} +\BOOKMARK [1][-]{section.1.6}{ }{chapter.1} +\BOOKMARK [2][-]{subsection.1.6.1}{ }{section.1.6} +\BOOKMARK [2][-]{subsection.1.6.2}{}{section.1.6} +\BOOKMARK [2][-]{subsection.1.6.3}{ }{section.1.6} +\BOOKMARK [1][-]{section.1.7}{ \040}{chapter.1} +\BOOKMARK [1][-]{section.1.8}{ }{chapter.1} +\BOOKMARK [0][-]{chapter.2}{ }{} +\BOOKMARK [1][-]{section.2.1}{ \040 }{chapter.2} +\BOOKMARK [1][-]{section.2.2}{ \040 \040}{chapter.2} +\BOOKMARK [2][-]{subsection.2.2.1}{ }{section.2.2} +\BOOKMARK [2][-]{subsection.2.2.2}{}{section.2.2} +\BOOKMARK [1][-]{section.2.3}{ }{chapter.2} +\BOOKMARK [1][-]{section.2.4}{ \040 }{chapter.2} +\BOOKMARK [2][-]{subsection.2.4.1}{ }{section.2.4} +\BOOKMARK [2][-]{subsection.2.4.2}{ \040}{section.2.4} +\BOOKMARK [2][-]{subsection.2.4.3}{ \(\)}{section.2.4} +\BOOKMARK [2][-]{subsection.2.4.4}{ \040\(\)}{section.2.4} +\BOOKMARK [2][-]{subsection.2.4.5}{ \040}{section.2.4} +\BOOKMARK [2][-]{subsection.2.4.6}{ \( \203\)}{section.2.4} +\BOOKMARK [2][-]{subsection.2.4.7}{}{section.2.4} +\BOOKMARK [2][-]{subsection.2.4.8}{ \040 }{section.2.4} +\BOOKMARK [1][-]{section.2.5}{ \040}{chapter.2} +\BOOKMARK [2][-]{subsection.2.5.1}{ }{section.2.5} +\BOOKMARK [2][-]{subsection.2.5.2}{ }{section.2.5} +\BOOKMARK [2][-]{subsection.2.5.3}{ }{section.2.5} +\BOOKMARK [2][-]{subsection.2.5.4}{ }{section.2.5} +\BOOKMARK [2][-]{subsection.2.5.5}{ }{section.2.5} +\BOOKMARK [1][-]{section.2.6}{ \040}{chapter.2} +\BOOKMARK [1][-]{section.2.7}{, \040 }{chapter.2} +\BOOKMARK [1][-]{section.2.8}{ }{chapter.2} +\BOOKMARK [1][-]{section.2.9}{}{chapter.2} +\BOOKMARK [1][-]{section.2.10}{ }{chapter.2} +\BOOKMARK [1][-]{section.2.11}{}{chapter.2} +\BOOKMARK [2][-]{subsection.2.11.1}{, \040 }{section.2.11} +\BOOKMARK [2][-]{subsection.2.11.2}{ , \040 \040}{section.2.11} +\BOOKMARK [2][-]{subsection.2.11.3}{ \040}{section.2.11} +\BOOKMARK [2][-]{subsection.2.11.4}{ }{section.2.11} +\BOOKMARK [2][-]{subsection.2.11.5}{}{section.2.11} +\BOOKMARK [1][-]{section.2.12}{ }{chapter.2} +\BOOKMARK [1][-]{section.2.13}{ \040}{chapter.2} +\BOOKMARK [0][-]{chapter.3}{ \040}{} +\BOOKMARK [1][-]{section.3.1}{ }{chapter.3} +\BOOKMARK [1][-]{section.3.2}{ \040 }{chapter.3} +\BOOKMARK [1][-]{section.3.3}{ \040}{chapter.3} +\BOOKMARK [1][-]{section.3.4}{ }{chapter.3} +\BOOKMARK [1][-]{section.3.5}{ \040}{chapter.3} +\BOOKMARK [1][-]{section.3.6}{}{chapter.3} +\BOOKMARK [1][-]{section.3.7}{ \040}{chapter.3} +\BOOKMARK [1][-]{section.3.8}{, , \203}{chapter.3} +\BOOKMARK [1][-]{section.3.9}{ }{chapter.3} +\BOOKMARK [1][-]{section.3.10}{ \040}{chapter.3} +\BOOKMARK [0][-]{chapter.4}{ }{} +\BOOKMARK [1][-]{section.4.1}{ Encapsulated PostScript }{chapter.4} +\BOOKMARK [1][-]{section.4.2}{}{chapter.4} +\BOOKMARK [1][-]{section.4.3}{}{chapter.4} +\BOOKMARK [1][-]{section.4.4}{ }{chapter.4} +\BOOKMARK [1][-]{section.4.5}{ verbatim}{chapter.4} +\BOOKMARK [1][-]{section.4.6}{ \040 \040LaTeX}{chapter.4} +\BOOKMARK [1][-]{section.4.7}{ \040pdfLaTeX}{chapter.4} +\BOOKMARK [2][-]{subsection.4.7.1}{PDF- \040WWW}{section.4.7} +\BOOKMARK [2][-]{subsection.4.7.2}{}{section.4.7} +\BOOKMARK [2][-]{subsection.4.7.3}{ }{section.4.7} +\BOOKMARK [2][-]{subsection.4.7.4}{}{section.4.7} +\BOOKMARK [2][-]{subsection.4.7.5}{ \040}{section.4.7} +\BOOKMARK [2][-]{subsection.4.7.6}{ \040}{section.4.7} +\BOOKMARK [1][-]{section.4.8}{ \040 LaTeX \040pdfLaTeX}{chapter.4} +\BOOKMARK [1][-]{section.4.9}{ \040 \040pdfscreen}{chapter.4} +\BOOKMARK [0][-]{chapter.5}{ \040}{} +\BOOKMARK [1][-]{section.5.1}{}{chapter.5} +\BOOKMARK [1][-]{section.5.2}{ picture}{chapter.5} +\BOOKMARK [2][-]{subsection.5.2.1}{ }{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.2}{}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.3}{}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.4}{}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.5}{ \040}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.6}{ '134 multiput \040'134 linethickness}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.7}{. \040'134 thinlines \040'134 thicklines}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.8}{ \040 }{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.9}{ \040}{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.10}{ }{section.5.2} +\BOOKMARK [2][-]{subsection.5.2.11}{ \040 \040}{section.5.2} +\BOOKMARK [1][-]{section.5.3}{Xy-pic}{chapter.5} +\BOOKMARK [0][-]{chapter.6}{ LaTeX}{} +\BOOKMARK [1][-]{section.6.1}{ , \040 }{chapter.6} +\BOOKMARK [2][-]{subsection.6.1.1}{ }{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.2}{ }{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.3}{ \040}{section.6.1} +\BOOKMARK [1][-]{section.6.2}{ \040 }{chapter.6} +\BOOKMARK [2][-]{subsection.6.2.1}{ \040}{section.6.2} +\BOOKMARK [2][-]{subsection.6.2.2}{!}{section.6.2} +\BOOKMARK [2][-]{subsection.6.2.3}{}{section.6.2} +\BOOKMARK [1][-]{section.6.3}{}{chapter.6} +\BOOKMARK [2][-]{subsection.6.3.1}{ \040}{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.2}{ }{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.3}{ }{section.6.3} +\BOOKMARK [2][-]{subsection.6.3.4}{ }{section.6.3} +\BOOKMARK [1][-]{section.6.4}{ }{chapter.6} +\BOOKMARK [1][-]{section.6.5}{ \040}{chapter.6} +\BOOKMARK [1][-]{section.6.6}{}{chapter.6} +\BOOKMARK [1][-]{section.6.7}{ \040}{chapter.6} +\BOOKMARK [0][-]{chapter*.7}{}{} +\BOOKMARK [0][-]{chapter.7}{ }{} diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.sty b/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.sty new file mode 100644 index 00000000000..34577a6211f --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.sty @@ -0,0 +1,273 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Special Commands for the LShort2e Introduction +% $Id: lshort.sty,v 1.1.1.1 2002/02/26 10:04:21 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% By Tobias Oetiker +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\errorcontextlines=10 + +%save pageref an label +\let\lsspageref\pageref +\ProvidesPackage{lshort} +\RequirePackage{mflogo} +\RequirePackage{verbatim} +\RequirePackage{fancyheadings} +\RequirePackage{calc} +\RequirePackage{amsmath} +\RequirePackage{fvrb-ex} +\RequirePackage{amsmath,amsfonts,amssymb} +\RequirePackage[all]{xy} +%\RequirePackage[T1]{fontenc} +\RequirePackage{type1cm}%remove size restrictions +%\RequirePackage{aeguill} +% some packages which draw a euro +\RequirePackage{textcomp} +% need some magic here to keep the original definition of rightarrow +\newcommand{\org@Rightarrow}{} +\let\org@Rightarrow\Rightarrow +\usepackage{marvosym} +\let\MVRightarrow\Rightarrow +\let\Rightarrow\org@Rightarrow +%%%% +\RequirePackage[gen]{eurosym} +\RequirePackage{eurosans} +\let\EUROSANS\euro +\RequirePackage{eurofont}% Ю la place d'europs (conflit de nom) +\RequirePackage{url} +% +% Lets have some nice headings +% +\pagestyle{fancyplain} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection{} #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\cfoot[]{} +\addtolength{\headheight}{1.6pt} + +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Adapted from TeX FAQ +\renewcommand{\Email}{\begingroup \def\UrlLeft{<}\def\UrlRight{>} \urlstyle{tt}\Url} % email address +\def\mailto|#1|{\href{mailto:#1}{\Email|#1|}} % url to mail somewhere +\newcommand{\CTANref}{\begingroup \urlstyle{tt}\Url} % +\def\CTAN|#1|{\href{ftp://ftp.dante.de/tex-archive/#1}{\CTANref|CTAN:/tex-archive/#1|}} +\newcommand\Newsgroup{\begingroup \urlstyle{tt}\Url} % newsgroup +\let\URL\url % just a URL + +\newcommand{\PSi}{\textsc{PostScript}\index{PostScript@\textsc{PostScript}}} +\newcommand{\EPSi}{Encapsulated \textsc{PostScript}% +\index{Encapsulated PostScript@Encapsulated \textsc{PostScript}}% +\index{PostScript@\textsc{PostScript}!Encapsulated}% +} + +% +% +% Earlier paragraphs were separated by some space +% +%\setlength{\parindent}{0pt} +%\setlength{\parskip}{1.5ex plus 0.7ex minus 0.6ex} + +\newcommand{\manual}{\emph{\LaTeX{} Manual}~\cite{manual}} +\newcommand{\companion}{\emph{The \LaTeX{} Companion}~\cite{companion}} +\newcommand{\guide}{\emph{Local Guide}~\cite{local}} +\newcommand{\contrib}[3]{#1\quad\mailto|#2|{\small\\\quad\textit{#3}}\\[1ex]} +% +% Some commands for helping with INDEX creation +% +\newcommand{\bs}{\symbol{'134}}%Print backslash +%\newcommand{\bs}{\ensuremath{\mathtt{\backslash}}}%Print backslash +% Index entry for a command (\cih for hidden command index + +\newcommand{\eei}[1]{% +\index{расширение!\texttt{#1}}\texttt{#1}} + +% probably add handling of period like handling of \ in \ci +\newcommand{\fni}[1]{% +\index{шрифт!#1@\texttt{\bs#1}}% +\index{#1@\texttt{\hspace*{-1.2ex}\bs #1}}\texttt{\bs#1}} + +\newcommand{\cih}[1]{% +\index{команда!#1@\texttt{\bs#1}}% +\index{#1@\texttt{\hspace*{-1.2ex}\bs #1}}} + +\newcommand{\ci}[1]{\cih{#1}\texttt{\bs#1}} +%Package + +\newcommand{\paih}[1]{% +\index{пакет!#1@\textsf{#1}}% +\index{#1@\textsf{#1}}} +\newcommand{\pai}[1]{% +\paih{#1}\textsf{#1}} +% Index entry for an environment +\newcommand{\ei}[1]{% +\index{окружение!\texttt{#1}}% +\index{#1@\texttt{#1}}% +\texttt{#1}} +% Indexentry for a word (Word inserted into the text) +\newcommand{\wi}[1]{\index{#1}#1} +% +% Typesetting Commands +% +\newenvironment{lscommand}% + {\nopagebreak\par\small\addvspace{3.2ex plus 0.8ex minus 0.2ex}% + \vskip -\parskip + \noindent% + \begin{tabular}{|l|}\hline\rule{0pt}{1em}\ignorespaces}% + {\\\hline\end{tabular}\par\nopagebreak\addvspace{3.2ex plus 0.8ex + minus 0.2ex}% + \vskip -\parskip} +% +% Type setting Code Fragments +% +\newenvironment{code}{\begin{quote}}{\end{quote}} +% +% Intro Environment +\newenvironment{intro}{\sffamily}{\vspace*{2ex minus 1.5ex}} +% +\newcommand{\secby}[2]{\nopagebreak\par\addvspace{-1.5ex}% + \vskip -\parskip\noindent{\tiny Автор: #1 \mailto|#2|}\par\nopagebreak% + \addvspace{1ex plus 0.8ex minus 0.2ex}% + \vskip -\parskip\noindent\ignorespaces} +% +% propper bookmark entries in pdftex + +\ifx\hypersetup\undefined\else +\pdfstringdefDisableCommands{\edef\ci{\textbackslash}}% +\pdfstringdefDisableCommands{\edef\sim{\textasciitilde}}% +\pdfstringdefDisableCommands{\edef\circ{\textdegree}}% +\pdfstringdefDisableCommands{\edef\ldots{... }}% +\fi + +%\noindent\addvspace{1ex}\small #1 $<$\texttt{#2}$>$\par\addvspace{2ex}\noindnet\ignorespaces} +% +% Symbol Entry for Math Symbol Tables +% +\newcommand{\X}[1]{$#1$&\texttt{\string#1}\hspace*{1ex}} +% normal text .... +\newcommand{\SC}[1]{#1&\texttt{\string#1}\hspace*{1ex}} +% for accents in text mode +\newcommand{\A}[1]{#1&\texttt{\string#1}\hspace*{1ex}} +\newcommand{\B}[2]{#1#2&\texttt{\string#1{} #2}\hspace*{1ex}} + +\newcommand{\W}[2]{$#1{#2}$& + \texttt{\string#1}\texttt{\string{\string#2\string}}\hspace*{1ex}} +\newcommand{\Y}[1]{$\big#1$ &\texttt{\string#1}} % +% Mathsymbol Table +\newsavebox{\symbbox} +\newenvironment{symbols}[1]% +{\par\vspace*{2ex} +\renewcommand{\arraystretch}{1.1} +\begin{lrbox}{\symbbox} +\hspace*{4ex}\begin{tabular}{@{}#1@{}}}% +{\end{tabular}\end{lrbox}\makebox[\textwidth]{\usebox{\symbbox}}\par\medskip} +% +% Special Prep for AMS Symbols Printout +% Should work if AMS is not available +% + +%% we have no PS versions of the rsfs fonts ... so this is a nogo for pdf +%\ifx\HyPsd@pageref\undefined +\RequirePackage{mathrsfs} +%\fi +\RequirePackage{latexsym} +\RequirePackage[mathcal]{euscript} + +% +% Print |--| to show a distance +% +\newcommand{\demowidth}[1]{\rule{0.3pt}{1.3ex}\rule{#1}{0.3pt}\rule{0.3pt}{1.3ex}} +% +% +% --- example ---- +% This is an environment to set LaTeX examples. +% On the left side the source text and on the +% right side the typeset text. +% +% \begin{example} +% \Large This is Large +% \end{example} +% + +% This Part is stolen from the verbaim.sty by FMi +% +\newwrite\example@out +\newcounter{exacnt} +\setcounter{exacnt}{1} +\newlength{\savefboxrule} +\newlength{\savefboxsep} +\newlength{\outdent} +\setlength{\outdent}{2cm} +\addtolength{\headwidth}{\outdent} +\newenvironment{example}% +{\begingroup% Lets Keep the Changes Local + \@bsphack + \immediate\openout \example@out \jobname.exa + \let\do\@makeother\dospecials\catcode`\^^M\active + \def\verbatim@processline{% + \immediate\write\example@out{\the\verbatim@line}}% + \verbatim@start}% +{\immediate\closeout\example@out\@esphack\endgroup% + % + % And here comes my part. :- + % + \stepcounter{exacnt}% + \setlength{\parindent}{0pt}% + \par\addvspace{3.0ex plus 0.8ex minus 0.5ex}\vskip -\parskip +% Page \lsspageref{exa:\theexacnt} +\expandafter\ifx\csname r@exa\theexacnt\endcsname\relax\else +%\ifx\pdfoutput\undefined % We're not running pdftex +% \ifodd\lsspageref{exa\theexacnt}\hspace*{0pt}\else\hspace*{-\outdent}\fi% +%\else +%% HyPsd@pageref internal hyperref command v6.69c + \ifodd\HyPsd@pageref{exa\theexacnt}\hspace*{0pt}\else\hspace*{-\outdent}\fi% +%\fi +\fi +\makebox[\textwidth][l]{% +%\raisebox{-\height}[0pt][\totalheight]{% + \begin{minipage}[c]{0.5\outdent+0.46\textwidth-3mm}% + \small\verbatiminput{\jobname.exa} + \end{minipage}% + %}% + \hspace{5mm}% + \setlength{\savefboxrule}{\fboxrule}% + \setlength{\fboxrule}{0.1pt}% + \setlength{\savefboxsep}{\fboxsep}% + \setlength{\fboxsep}{3mm}% + % \raisebox{-\height}[0pt][\totalheight]{% + \fbox{% + \begin{minipage}{0.5\outdent+0.54\textwidth-3.5mm-2\fboxrule-2\fboxsep}% + \setlength{\fboxrule}{\savefboxrule}% + \setlength{\fboxsep}{\savefboxsep}% + \setlength{\fboxrule}{0.5pt}% + \setlength{\parskip}{1ex plus 0.4ex minus 0.2ex}% + \begin{trivlist}\item\small\input{\jobname.exa} + \end{trivlist} + \end{minipage} + }% +% }% +}\label{exa\theexacnt}% +\par\addvspace{3ex plus 0.8ex minus 0.5ex}\vskip -\parskip +} + +\newenvironment{lined}[1]% + {\begin{center}\begin{minipage}{#1}\hrule\medskip} + {\vspace{-1ex}\hrule \end{minipage}\end{center}} +% I want no headers on pages created by clearpage + +\renewcommand{\cleardoublepage} + {\clearpage\if@twoside \ifodd\c@page\else + \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} + + +% [BT]% Misc +\def\sloppypar{\begingroup\sloppy\par\endgroup} +\DeclareRobustCommand\cm[1]{{\fontencoding{OT1}\fontfamily{cmr}\selectfont#1}} +\def\trfootnote#1{\footnote{#1\textit{~--- Прим.\ перев.}}} + +\RecustomVerbatimEnvironment{Verbatim}{Verbatim} + {gobble=0,commentchar=ё,numbers=left,numbersep=3pt,frame=single} + diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.tex new file mode 100644 index 00000000000..f9de3002bb1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/lshort.tex @@ -0,0 +1,123 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Main Input File of the LaTeX2e Introduction +% $Id: lshort2e.tex,v 1.4 1998/03/26 15:36:54 oetiker Exp oetiker $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% lshort2e.tex - The not so short introduction to LaTeX2e +% by Tobias Oetiker +% oetiker@ee.ethz.ch +% +% based on LKURTZ.TEX Uni Graz & TU Wien, 1987 +%----------------------------------------------------------------------- +% +% To compile lshort, you need TeX 3.x, LaTeX2e and makeindex +% +% The sources files of the Intro are: +% lshort.tex (this file), +% titel.tex, contrib.tex, biblio.tex +% things.tes, typeset.tex, math.tex, lssym.tex, spec.tex, +% lshort.sty, fancyheadings.sty +% +% Further the verbatim.sty and the layout.sty +% from the LaTeX Tools distribution is +% required. +% +% +% To print the AMS symbols you need the AMS fonts and the packages +% amsfonts, eufrak and eucal from (AMS LaTeX 1.2) +% +% --------------------------------------------------------------------- + + +%****************** FIXME!s: +% Цифровые сноски из таблиц + +\ifx\pdfoutput\undefined % We're not running pdftex +\documentclass[dvips,11pt,a4paper,twoside]{scrbook} +\else +\documentclass[pdftex,11pt,a4paper,twoside]{book} +\usepackage{thumbpdf} +\pdfcompresslevel=9 +\fi + +\lccode`\-=`\- +\defaulthyphenchar=127 +%\usepackage{mathtext} +\usepackage[T2A]{fontenc} +\usepackage[koi8-r]{inputenc} +\usepackage[russian,french,german,english]{babel} +%\usepackage{geometry} + +%\usepackage{pslatex,pscyr} +\usepackage{lshort} +\usepackage{makeidx,latexsym} +\usepackage[russian]{mylayout} +% are we in pdftex ???? +\ifx\pdfoutput\undefined % We're not running pdftex +\usepackage[plainpages=true]{hyperref} +\usepackage{color} +\else +\usepackage[colorlinks,hyperindex,plainpages=false,unicode]{hyperref} +%\usepackage{pslatex,freepsfonts} +\usepackage{keyval} +%\usepackage{hyppre} +%\usepackage{hypuc} +\hypersetup{pdfauthor={Boris Tobotras}} +\def\pdfBorderAttrs{/Border [0 0 0] } % No border arround Links +\makeatletter +\newcounter{chapter.H} +\setcounter{chapter.H}{0} +\let\Hmat@chapter\@chapter +\def\@chapter{\if@mainmatter\else\refstepcounter{chapter.H}\fi\Hmat@chapter} +\def\theHchapter{\if@mainmatter\arabic{chapter}\else H.\arabic{chapter.H}\fi} +\makeatother +\fi +\usepackage{footnpag} +% This document is ``public domain''. It may be printed and +% distributed free of charge in its original form (including the +% list of authors). If it is changed or if parts of it are used +% within another document, then the author list must include +% all the original authors AND that author (those authors) who +% has (have) made the changes. +% +% Original Copyright H.Partl, E.Schlegl, and I.Hyna (1987). +% English Version Copyright by Tobias Oetiker (1994,1995), +% +% --------------------------------------------------------------------- +% +% +% Formats also with\textt{letterpaper} option, but the pagebreaks might not +% fall as nicely. +% +% To produce a A5 booklet, use a tool like pstops or dvitodvi +% to past them together in the right order. Most dvi printer drivers +% can shrink the resulting output to fit on a A4 sheet. +% +\makeindex +\typeout{Copyright T.Oetiker, H.Partl, E.Schlegl, I.Hyna, B.Tobotras} + +\begin{document} +\selectlanguage{russian} +\frontmatter +\include{title} +\include{contrib} +\include{overview} +\tableofcontents +\listoffigures +\listoftables +\mainmatter +\include{things} +\include{typeset} +\include{math} +\include{lssym} +\include{spec} +\include{graphic} +\include{custom} +\backmatter +\include{biblio} +\refstepcounter{chapter} +\addcontentsline{toc}{chapter}{Предметный указатель} +\printindex +\refstepcounter{chapter} +\label{verylast} +\mbox{} +\end{document} diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/lssym.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/lssym.tex new file mode 100644 index 00000000000..616f935c821 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/lssym.tex @@ -0,0 +1,343 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: TeX and LaTeX and AMS symbols for Maths +% $Id: lssym.tex,v 1.1.1.1 2002/02/26 10:04:21 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Список математических символов} +\label{symbols} + +В следующих таблицах вы найдете все символы, известные обычно в +\emph{математическом режиме}. + + +% +% Conditional Text in case the AMS Fonts are installed +% +Для доступа к символам, перечисленным в +таблицах~\ref{AMSD}--\ref{AMSNBR}\footnote{Эти таблицы были получены + из \texttt{symbols.tex} (автор David~Carlisle) и позже сильно + изменены по совету Josef~Tkadlec} в преамбуле документа должен быть +загружен пакет \pai{amssymb}, и в системе должны быть установлены +математические шрифты AMS. Если пакеты и шрифты AMS в вашей системе не +установлены, посмотрите на +\texttt{\CTAN|macros/latex/required/amslatex|}. Еще более +полный пеpечень символов можно найти по адpесу +\texttt{\CTANref|info/symbols/comprehensive|}. + +\begin{table}[!h] +\caption{Акценты математического режима} \label{mathacc} +\begin{symbols}{*4{cl}} +\W{\hat}{a} & \W{\check}{a} & \W{\tilde}{a} & \W{\acute}{a} \\ +\W{\grave}{a} & \W{\dot}{a} & \W{\ddot}{a} & \W{\breve}{a} \\ +\W{\bar}{a} &\W{\vec}{a} &\W{\widehat}{A}&\W{\widetilde}{A}\\ +\end{symbols} +\end{table} + +\begin{table}[!h] +\caption{Строчные греческие буквы} +\begin{symbols}{*4{cl}} + \X{\alpha} & \X{\theta} & \X{o} & \X{\upsilon} \\ + \X{\beta} & \X{\vartheta} & \X{\pi} & \X{\phi} \\ + \X{\gamma} & \X{\iota} & \X{\varpi} & \X{\varphi} \\ + \X{\delta} & \X{\kappa} & \X{\rho} & \X{\chi} \\ + \X{\epsilon} & \X{\lambda} & \X{\varrho} & \X{\psi} \\ + \X{\varepsilon}& \X{\mu} & \X{\sigma} & \X{\omega} \\ + \X{\zeta} & \X{\nu} & \X{\varsigma} & & \\ + \X{\eta} & \X{\xi} & \X{\tau} +\end{symbols} +\end{table} + +\begin{table}[!h] +\caption{Прописные греческие буквы} +\begin{symbols}{*4{cl}} + \X{\Gamma} & \X{\Lambda} & \X{\Sigma} & \X{\Psi} \\ + \X{\Delta} & \X{\Xi} & \X{\Upsilon} & \X{\Omega} \\ + \X{\Theta} & \X{\Pi} & \X{\Phi} +\end{symbols} +\end{table} +\clearpage + +\begin{table}[!tbp] +\caption{Бинарные отношения} +\bigskip +Вы можете получить соответствующие отрицания добавлением перед +следующими символами команды \ci{not}. +\begin{symbols}{*3{cl}} + \X{<} & \X{>} & \X{=} \\ + \X{\leq}или \verb|\le| & \X{\geq}или \verb|\ge| & \X{\equiv} \\ + \X{\ll} & \X{\gg} & \X{\doteq} \\ + \X{\prec} & \X{\succ} & \X{\sim} \\ + \X{\preceq} & \X{\succeq} & \X{\simeq} \\ + \X{\subset} & \X{\supset} & \X{\approx} \\ + \X{\subseteq} & \X{\supseteq} & \X{\cong} \\ + \X{\sqsubset}$^1$ & \X{\sqsupset}$^1$ & \X{\Join}$^1$ \\ + \X{\sqsubseteq} & \X{\sqsupseteq} & \X{\bowtie} \\ + \X{\in} & \X{\ni}, \verb|\owns| & \X{\propto} \\ + \X{\vdash} & \X{\dashv} & \X{\models} \\ + \X{\mid} & \X{\parallel} & \X{\perp} \\ + \X{\smile} & \X{\frown} & \X{\asymp} \\ + \X{:} & \X{\notin} & \X{\neq}или \verb|\ne| +\end{symbols} +\centerline{\footnotesize $^1$Для доступа к этому символу пользуйтесь + пакетом \textsf{latexsym}.} +\end{table} + +\begin{table}[!tbp] +\caption{Бинарные операторы} +\begin{symbols}{*3{cl}} + \X{+} & \X{-} & & \\ + \X{\pm} & \X{\mp} & \X{\triangleleft} \\ + \X{\cdot} & \X{\div} & \X{\triangleright}\\ + \X{\times} & \X{\setminus} & \X{\star} \\ + \X{\cup} & \X{\cap} & \X{\ast} \\ + \X{\sqcup} & \X{\sqcap} & \X{\circ} \\ + \X{\vee}, \verb|\lor| & \X{\wedge}, \verb|\land| & \X{\bullet} \\ + \X{\oplus} & \X{\ominus} & \X{\diamond} \\ + \X{\odot} & \X{\oslash} & \X{\uplus} \\ + \X{\otimes} & \X{\bigcirc} & \X{\amalg} \\ + \X{\bigtriangleup} &\X{\bigtriangledown}& \X{\dagger} \\ + \X{\lhd}$^1$ & \X{\rhd}$^1$ & \X{\ddagger} \\ + \X{\unlhd}$^1$ & \X{\unrhd}$^1$ & \X{\wr} +\end{symbols} + +\end{table} + +\begin{table}[!tbp] +\caption{Большие операторы} +\begin{symbols}{*4{cl}} + \X{\sum} & \X{\bigcup} & \X{\bigvee} & \X{\bigoplus}\\ + \X{\prod} & \X{\bigcap} & \X{\bigwedge} &\X{\bigotimes}\\ + \X{\coprod} & \X{\bigsqcup} & & & \X{\bigodot} \\ + \X{\int} & \X{\oint} & & & \X{\biguplus} +\end{symbols} + +\end{table} + +\begin{table}[!tbp] +\caption{Стрелки} +\begin{symbols}{*3{cl}} + \X{\leftarrow}или \verb|\gets|& \X{\longleftarrow} & \X{\uparrow} \\ + \X{\rightarrow}или \verb|\to|& \X{\longrightarrow} & \X{\downarrow} \\ + \X{\leftrightarrow} & \X{\longleftrightarrow}& \X{\updownarrow} \\ + \X{\Leftarrow} & \X{\Longleftarrow} & \X{\Uparrow} \\ + \X{\Rightarrow} & \X{\Longrightarrow} & \X{\Downarrow} \\ + \X{\Leftrightarrow} & \X{\Longleftrightarrow}& \X{\Updownarrow} \\ + \X{\mapsto} & \X{\longmapsto} & \X{\nearrow} \\ + \X{\hookleftarrow} & \X{\hookrightarrow} & \X{\searrow} \\ + \X{\leftharpoonup} & \X{\rightharpoonup} & \X{\swarrow} \\ + \X{\leftharpoondown} & \X{\rightharpoondown} & \X{\nwarrow} \\ + \X{\rightleftharpoons} & \X{\iff}(б\'ольший пробел)& \X{\leadsto}$^1$ + +\end{symbols} +\centerline{\footnotesize $^1$Для доступа к этому символу пользуйтесь + пакетом \textsf{latexsym}.} +\end{table} + +\begin{table}[!tbp] +\caption{Ограничители}\label{tab:delimiters} +\begin{symbols}{*4{cl}} + \X{(} & \X{)} & \X{\uparrow} & \X{\Uparrow} \\ + \X{[}или \verb|\lbrack| & \X{]}или \verb|\rbrack| & \X{\downarrow} & \X{\Downarrow} \\ + \X{\{}или \verb|\lbrace| & \X{\}}или \verb|\rbrace| & \X{\updownarrow} & \X{\Updownarrow}\\ + \X{\langle} & \X{\rangle} & \X{|}или \verb|\vert| &\X{\|}или \verb|\Vert|\\ + \X{\lfloor} & \X{\rfloor} & \X{\lceil} & \X{\rceil} \\ + \X{/} & \X{\backslash} & &% (dual. empty) + +\end{symbols} +\end{table} + +\begin{table}[!tbp] +\caption{Большие ограничители} +\begin{symbols}{*4{cl}} + \Y{\lgroup} & \Y{\rgroup} & \Y{\lmoustache} & \Y{\rmoustache} \\ + \Y{\arrowvert} & \Y{\Arrowvert} & \Y{\bracevert} +\end{symbols} +\end{table} + + +\begin{table}[!tbp] +\caption{Прочие символы} +\begin{symbols}{*4{cl}} + \X{\dots} & \X{\cdots} & \X{\vdots} & \X{\ddots} \\ + \X{\hbar} & \X{\imath} & \X{\jmath} & \X{\ell} \\ + \X{\Re} & \X{\Im} & \X{\aleph} & \X{\wp} \\ + \X{\forall} & \X{\exists} & \X{\mho}$^1$ & \X{\partial} \\ + \X{'} & \X{\prime} & \X{\emptyset} & \X{\infty} \\ + \X{\nabla} & \X{\triangle} & \X{\Box}$^1$ & \X{\Diamond}$^1$ \\ + \X{\bot} & \X{\top} & \X{\angle} & \X{\surd} \\ +\X{\diamondsuit} & \X{\heartsuit} & \X{\clubsuit} & \X{\spadesuit} \\ + \X{\neg}или \verb|\lnot| & \X{\flat} & \X{\natural} & \X{\sharp} + +\end{symbols} +\centerline{\footnotesize $^1$Для доступа к этому символу пользуйтесь + пакетом \textsf{latexsym}.} +\end{table} + +\begin{table}[!tbp] +\caption{Не-математические символы} +\bigskip +Эти символы можно использовать и в текстовом режиме. +\begin{symbols}{*4{cl}} +\SC{\dag} & \SC{\S} & \SC{\copyright} & \SC{\textregistered} \\ +\SC{\ddag} & \SC{\P} & \SC{\pounds} & \SC{\%} \\ +\end{symbols} +\end{table} + +% +% +% If the AMS Stuff is not available, we drop out right here :-) +% + +\begin{table}[!tbp] +\caption{Ограничители AMS}\label{AMSD} +\bigskip +\begin{symbols}{*4{cl}} +\X{\ulcorner}&\X{\urcorner}&\X{\llcorner}&\X{\lrcorner}\\ +\X{\lvert}&\X{\rvert}&\X{\lVert}&\X{\rVert} +\end{symbols} +\end{table} + +\begin{table}[!tbp] +\caption{Буквы греческого и иврита AMS} +\begin{symbols}{*5{cl}} +\X{\digamma} &\X{\varkappa} & \X{\beth} &\X{\gimel} & \X{\daleth} +\end{symbols} +\end{table} + +\begin{table}[!tbp] +\caption{Бинарные отношения AMS} +\begin{symbols}{*3{cl}} + \X{\lessdot} & \X{\gtrdot} & \X{\doteqdot}или \verb|\Doteq| \\ + \X{\leqslant} & \X{\geqslant} & \X{\risingdotseq} \\ + \X{\eqslantless} & \X{\eqslantgtr} & \X{\fallingdotseq} \\ + \X{\leqq} & \X{\geqq} & \X{\eqcirc} \\ + \X{\lll}или \verb|\llless| & \X{\ggg}или \verb|\gggtr| & \X{\circeq} \\ + \X{\lesssim} & \X{\gtrsim} & \X{\triangleq} \\ + \X{\lessapprox} & \X{\gtrapprox} & \X{\bumpeq} \\ + \X{\lessgtr} & \X{\gtrless} & \X{\Bumpeq} \\ + \X{\lesseqgtr} & \X{\gtreqless} & \X{\thicksim} \\ + \X{\lesseqqgtr} & \X{\gtreqqless} & \X{\thickapprox} \\ + \X{\preccurlyeq} & \X{\succcurlyeq} & \X{\approxeq} \\ + \X{\curlyeqprec} & \X{\curlyeqsucc} & \X{\backsim} \\ + \X{\precsim} & \X{\succsim} & \X{\backsimeq} \\ + \X{\precapprox} & \X{\succapprox} & \X{\vDash} \\ + \X{\subseteqq} & \X{\supseteqq} & \X{\Vdash} \\ + \X{\Subset} & \X{\Supset} & \X{\Vvdash} \\ + \X{\sqsubset} & \X{\sqsupset} & \X{\backepsilon} \\ + \X{\therefore} & \X{\because} & \X{\varpropto} \\ + \X{\shortmid} & \X{\shortparallel} & \X{\between} \\ + \X{\smallsmile} & \X{\smallfrown} & \X{\pitchfork} \\ + \X{\vartriangleleft} & \X{\vartriangleright} & \X{\blacktriangleleft}\\ + \X{\trianglelefteq} & \X{\trianglerighteq} &\X{\blacktriangleright} +\end{symbols} +\end{table} + +\begin{table}[!tbp] +\caption{Стрелки AMS} +\begin{symbols}{*3{cl}} + \X{\dashleftarrow} & \X{\dashrightarrow} & \X{\multimap} \\ + \X{\leftleftarrows} & \X{\rightrightarrows} & \X{\upuparrows} \\ + \X{\leftrightarrows} & \X{\rightleftarrows} & \X{\downdownarrows} \\ + \X{\Lleftarrow} & \X{\Rrightarrow} & \X{\upharpoonleft} \\ + \X{\twoheadleftarrow} & \X{\twoheadrightarrow} & \X{\upharpoonright} \\ + \X{\leftarrowtail} & \X{\rightarrowtail} & \X{\downharpoonleft} \\ + \X{\leftrightharpoons} & \X{\rightleftharpoons} & \X{\downharpoonright} \\ + \X{\Lsh} & \X{\Rsh} & \X{\rightsquigarrow} \\ + \X{\looparrowleft} & \X{\looparrowright} &\X{\leftrightsquigarrow}\\ + \X{\curvearrowleft} & \X{\curvearrowright} & & \\ + \X{\circlearrowleft} & \X{\circlearrowright} & & +\end{symbols} +\end{table} + +\begin{table}[!tbp] +\caption{Отрицательные бинарные отношения и стрелки AMS}\label{AMSNBR} +\begin{symbols}{*3{cl}} + \X{\nless} & \X{\ngtr} & \X{\varsubsetneqq} \\ + \X{\lneq} & \X{\gneq} & \X{\varsupsetneqq} \\ + \X{\nleq} & \X{\ngeq} & \X{\nsubseteqq} \\ + \X{\nleqslant} & \X{\ngeqslant} & \X{\nsupseteqq} \\ + \X{\lneqq} & \X{\gneqq} & \X{\nmid} \\ + \X{\lvertneqq} & \X{\gvertneqq} & \X{\nparallel} \\ + \X{\nleqq} & \X{\ngeqq} & \X{\nshortmid} \\ + \X{\lnsim} & \X{\gnsim} & \X{\nshortparallel} \\ + \X{\lnapprox} & \X{\gnapprox} & \X{\nsim} \\ + \X{\nprec} & \X{\nsucc} & \X{\ncong} \\ + \X{\npreceq} & \X{\nsucceq} & \X{\nvdash} \\ + \X{\precneqq} & \X{\succneqq} & \X{\nvDash} \\ + \X{\precnsim} & \X{\succnsim} & \X{\nVdash} \\ + \X{\precnapprox} & \X{\succnapprox} & \X{\nVDash} \\ + \X{\subsetneq} & \X{\supsetneq} & \X{\ntriangleleft} \\ + \X{\varsubsetneq} & \X{\varsupsetneq} & \X{\ntriangleright} \\ + \X{\nsubseteq} & \X{\nsupseteq} & \X{\ntrianglelefteq}\\ + \X{\subsetneqq} & \X{\supsetneqq} &\X{\ntrianglerighteq}\\[0.5ex] + \X{\nleftarrow} & \X{\nrightarrow} & \X{\nleftrightarrow}\\ + \X{\nLeftarrow} & \X{\nRightarrow} & \X{\nLeftrightarrow} + +\end{symbols} +\end{table} + +\begin{table}[!tbp] +\caption{Бинарные операторы AMS} +\begin{symbols}{*3{cl}} + \X{\dotplus} & \X{\centerdot} & \X{\intercal} \\ + \X{\ltimes} & \X{\rtimes} & \X{\divideontimes} \\ + \X{\Cup}или \verb|\doublecup|& \X{\Cap}или \verb|\doublecap|& \X{\smallsetminus} \\ + \X{\veebar} & \X{\barwedge} & \X{\doublebarwedge}\\ + \X{\boxplus} & \X{\boxminus} & \X{\circleddash} \\ + \X{\boxtimes} & \X{\boxdot} & \X{\circledcirc} \\ + \X{\leftthreetimes} & \X{\rightthreetimes}& \X{\circledast} \\ + \X{\curlyvee} & \X{\curlywedge} +\end{symbols} +\end{table} + +\begin{table}[!tbp] +\caption{Прочие символы AMS} +\begin{symbols}{*3{cl}} + \X{\hbar} & \X{\hslash} & \X{\Bbbk} \\ + \X{\square} & \X{\blacksquare} & \X{\circledS} \\ + \X{\vartriangle} & \X{\blacktriangle} & \X{\complement} \\ + \X{\triangledown} &\X{\blacktriangledown} & \X{\Game} \\ + \X{\lozenge} & \X{\blacklozenge} & \X{\bigstar} \\ + \X{\angle} & \X{\measuredangle} & \X{\sphericalangle} \\ + \X{\diagup} & \X{\diagdown} & \X{\backprime} \\ + \X{\nexists} & \X{\Finv} & \X{\varnothing} \\ + \X{\eth} & \X{\mho} +\end{symbols} +\end{table} + + + +\begin{table}[!tbp] +\caption{Математические алфавиты} +\begin{symbols}{@{}*3l@{}} +Пример & Команда & Требуемый пакет\\ +\hline +\rule{0pt}{1.05em}$\mathrm{ABCdef}$ + & \verb|\mathrm{ABCdef}| + & \\ +$\mathit{ABCdef}$ + & \verb|\mathit{ABCdef}| + & \\ +$\mathnormal{ABCdef}$ + & \verb|\mathnormal{ABCdef}| + & \\ +$\mathcal{ABC}$ + & \verb|\mathcal{ABC}| + &\pai{euscript} с опцией: \textsf{mathcal}\\ +$\mathscr{ABC}$ + & \verb|\mathscr{ABC}| + &\pai{mathrsfs}\\ +$\mathfrak{ABCdef}$ + & \verb|\mathfrak{ABCdef}| + &\pai{eufrak} \\ +$\mathbb{ABC}$ + & \verb|\mathbb{ABC}| + &\pai{amsfonts} или \textsf{amssymb} \\ +\end{symbols} +\end{table} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort2e" +%%% End: diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/math.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/math.tex new file mode 100644 index 00000000000..1819bc9f3d9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/math.tex @@ -0,0 +1,777 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Math typesetting with LaTeX +% $Id: math.tex,v 1.1.1.1 2002/02/26 10:04:21 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Набор математических формул} + +\begin{intro} + Вот теперь мы готовы! В этой главе мы встретимся с основной мощью + \TeX{}: математической версткой. Но имейте в виду, что эта глава + дает только поверхностный обзор. Хотя для многих из вас изложенных + здесь вещей будет достаточно, не отчаивайтесь, если вы не сможете + найти решение, отвечающее нуждам верстки вашей математики. Весьма + возможно, что ваша проблема решается в + \AmS-\LaTeX{}\footnote{\emph{Американское Математическое Общество} + выpаботало pазвитое pасшиpение к \LaTeX{}. Многие пpимеpы этой + главы используют это pасшиpение, входящее во все совpеменные + дистpибутивы \TeX{}. Если в вашем оно отсутствует, то можете + получить его по адpесу \CTANref|macros/latex/required/amslatex|.}. +\end{intro} + + +\section{Общие сведения} + +\LaTeX{} включает в себя специальный режим для верстки математики. +\index{математика} Математика может быть набpана внутpи абзаца, но +может и pазбивать абзац выделенной фоpмулой. Математический текст +внутри абзаца вводится между \ci{(} +и \ci{)}, \index{$@\texttt{\$}} %$ +между \texttt{\$} и \texttt{\$} или между +\verb|\begin{|\ei{math}\verb|}| или \verb|\end{math}|.\index{формулы} + +\begin{example} + Складывая $a$ в квадрате с + $b$ в квадрате, получаем + $c$ в квадрате. Или + излагая языком математики: + $c^{2}=a^{2}+b^{2}$ +\end{example} + +\begin{example} + \TeX{} произносится как + \(\tau\epsilon\chi\).\\[6pt] + 100~м$^{3}$ воды.\\[6pt] + Это исходит от моего + \begin{math}\heartsuit\end{math} +\end{example} + +Большие математические уравнения или формулы предпочтительнее +<<выключать>>, то есть верстать их на отдельных строчках. Для этого +заключайте их между \ci{[} и \ci{]} или между +\verb|\begin{|\ei{displaymath}\verb|}| и \verb|\end{displaymath}|. + +\begin{example} + Складывая $a$ в квадрате с + $b$ в квадрате, получаем + $c$ в квадрате. Или + излагая языком математики: + \begin{displaymath} + c^{2}=a^{2}+b^{2} + \end{displaymath} + или вы можете выpазить это + коpоче: \[a+b=c\] +\end{example} + +Если вы хотите, чтобы \LaTeX{} нумеpовал ваши уpавнения, используйте +окpужение \ei{equation}. Вы можете пpи этом пометить уpавнение меткой +\ci{label} и сослаться на него в любом месте текста командами \ci{ref} +или \ci{eqref}: + +\begin{example} + \begin{equation} + \label{eq:eps} + \epsilon > 0 + \end{equation} + Из (\ref{eq:eps}) + выводим \ldots{}Из + \eqref{eq:eps} мы + делаем то же. +\end{example} + +Заметьте pазницу в стиле веpстки выpажений в абзацах и выключных: + +\begin{example} + $\lim_{n \to \infty} + \sum_{k=1}^n \frac{1}{k^2} + = \frac{\pi^2}{6}$ +\end{example} + +\begin{example} + \begin{displaymath} + \lim_{n \to \infty} + \sum_{k=1}^n \frac{1}{k^2} + = \frac{\pi^2}{6} + \end{displaymath} +\end{example} + +\emph{Математический режим} отличается от \emph{текстового + режима}. Например, в \emph{математическом режиме}: + +\begin{enumerate} + +\item Большинство пробелов и возвратов каретки не принимаются во + внимание, так как все пробелы либо выводятся из логики + математических выражений, или должны в явном виде задаваться + командами вроде \ci{,}, \ci{quad} или \ci{qquad}. +\item Пустые строчки недопустимы. Каждая формула занимает только один + абзац. +\item Каждая буква считается именем переменной, и верстается в этом + качестве. Если вы хотите в формулу ввести нормальный текст + (нормальный прямой шрифт с нормальными пробелами), то вам нужно + вводить его командами \verb|\textrm{...}| (см. также + pаздел~\ref{sec:fontsz} на стp.~\pageref{sec:fontsz}). + +\end{enumerate} + + +\begin{example} + \begin{equation} + \forall x \in \mathbf{R}: + \qquad x^{2} \geq 0 + \end{equation} +\end{example} + +\begin{example} + \begin{equation} + x^{2} \geq 0\qquad + \textrm{для всех }x\in + \mathbf{R} + \end{equation} +\end{example} + +% +% Add AMSSYB Package ... Blackboard bold .... R for realnumbers +% + +Математики бывают очень строги к используемым символам: здесь будет +удобно использовать `\wi{ажурные полужирные символы}',\index{полужирные символы} +которые получаются командой \ci{mathbb} из пакетов +\pai{amsfonts} или \pai{amssymb}. \ifx\mathbb\undefined\else +Последний пример теперь выглядит так: +\begin{example} + \begin{displaymath} + x^{2} \geq 0\qquad + \textrm{для всех }x\in + \mathbb{R} + \end{displaymath} +\end{example} +\fi + + +\section{Группировка в математическом режиме} + +Большинство команд математического режима действует только на +следующий символ. Так что, если вы хотите, чтобы команда влияла на +несколько символов, вам нужно сгруппировать их вместе при помощи +фигурных скобок: \verb|{...}|. + +\begin{example} + \begin{equation} + a^x+y \neq a^{x+y} + \end{equation} +\end{example} + + +\section{Составляющие математической формулы} + +В этом разделе будут описаны наиболее важные команды, используемые в +математической верстке. Детальный перечень команд для набора +математических символов смотрите в разделе~\ref{symbols} на +странице~\pageref{symbols}. + +\textbf{Строчные \wi{греческие буквы}} вводятся как \verb|\alpha|, + \verb|\beta|, \verb|\gamma|,~\ldots, прописные буквы вводятся как + \verb|\Gamma|, \verb|\Delta|,~\ldots\footnote{В \LaTeXe{} не + определяется прописная <<альфа>>, потому что она выглядит так же, + как латинская <>. При новой кодировке математики это будет + изменено.} + +\begin{example} + $\lambda,\xi,\pi,\mu,% + \Phi,\Omega$ +\end{example} + +\textbf{Верхние и нижние индексы} вводятся при помощи +символов~<<\index{верхние индексы}\index{нижние + индексы}\verb|^|\index{^@\verb+^+}>> +и~<<\verb|_|\index{_@\verb+_+}>>. + +\begin{example} + $a_{1}$ \qquad $x^{2}$ \qquad + $e^{-\alpha t}$ \qquad + $a^{3}_{ij}$\\ + $e^{x^2} \neq {e^x}^2$ +\end{example} + +\textbf{Квадратный корень}\index{квадратный корень} вводится как +\ci{sqrt}, корень $n$-ной степени печатается при помощи +\verb|\sqrt[|$n$\verb|]|. Размер знака корня выбирается \LaTeX{} +автоматически. Если нужен один только знак, используйте \verb|\surd|. + +\begin{example} + $\sqrt{x}$ \qquad + $\sqrt{ x^{2}+\sqrt{y} }$ + \qquad $\sqrt[3]{2}$\\[3pt] + $\surd[x^2 + y^2]$ +\end{example} + +Команды \ci{overline} и \ci{underline} создают \textbf{горизонтальные + линии} сразу над или под выражением. +\index{линии!горизонтальные} + +\begin{example} + $\overline{m+n}$ +\end{example} + +Команды \ci{overbrace} и \ci{underbrace} создают +длинные \textbf{горизонтальные фигурные скобки} сразу над или под +выражением. +\index{фигурные скобки!горизонтальные} +\begin{example} + $\underbrace{ a+b+\cdots% + +z }_{26}$ +\end{example} + +\index{акцент!математический} Для добавления к переменным знаков +математических акцентов, таких, как маленькие стрелки или знака +\wi{тильда}, вы можете пользоваться командами, перечисленным в +таблице~\ref{mathacc}. Широкие <<шляпки>> и тильды, охватывающие +несколько символов, генерируются командами \ci{widetilde} и +\ci{widehat}. Символ~<<\verb|'|\index{'@\verb+'+}>> дает знак +производной.\index{производная}. + +% a dash is -- + +\begin{example} + \begin{displaymath} + y=x^{2}\qquad y'=2x + \qquad y''=2 + \end{displaymath} +\end{example} + +\textbf{Векторы}\index{векторы} часто указываются добавлением +маленьких стрелок \wi{стрелки} над переменной. Это делается командой +\ci{vec}. Для обозначения вектора от $A$ до $B$ полезны две команды +\ci{overrightarrow} и \ci{overleftarrow}. + +\begin{example} + \begin{displaymath} + \vec a\quad + \overrightarrow{AB} + \end{displaymath} +\end{example} + +Обычно знак точки, обозначающий умножения, явно не набирается. Однако, +иногда он полезен, чтобы помочь читателю сгруппировать +формулу. Используйте для этого \ci{cdot}: + +\begin{example} +\begin{displaymath} +v = {\sigma}_1 \cdot {\sigma}_2 + {\tau}_1 \cdot {\tau}_2 +\end{displaymath} +\end{example} + + +Имена функций типа $\lg$ часто верстаются прямым шрифтом, а не +курсивом, как переменные. Поэтому \LaTeX{} содержит следующие команды +для набора имен наиболее важных функций: +\index{математические!функции} + +\begin{tabular}{lllllll} +\ci{arccos} & \ci{cos} & \ci{csc} & \ci{exp} & \ci{ker} +& \ci{limsup} & \ci{min} \\ +\ci{arcsin} & \ci{cosh} & \ci{deg} & \ci{gcd} & \ci{lg} & +\ci{ln} & \ci{Pr} \\ +\ci{arctan} & \ci{cot} & \ci{det} & \ci{hom} & \ci{lim} +& \ci{log} & \ci{sec} \\ +\ci{arg} & \ci{coth} & \ci{dim} & \ci{inf} & +\ci{liminf} & \ci{max} & \ci{sin} \\ +\ci{sinh} & \ci{sup} & \ci{tan} & \ci{tanh}\\ +\end{tabular} + +\begin{example} +\[\lim_{x \rightarrow 0} +\frac{\sin x}{x}=1\] +\end{example} + +Для функции модуля \wi{функция модуля} есть две команды: \ci{bmod} для +бинарного оператора <<$a \bmod b$>> и \ci{pmod} для выражений вроде +<<$x\equiv a \pmod{b}$>>. + +\begin{example} +$a\bmod b$\\ +$x\equiv a \pmod{b}$ +\end{example} + +Двухъярусная \textbf{\wi{дробь}} верстается командой +\ci{frac}\verb|{...}{...}|. Часто предпочтительнее ее форма с косой +чертой $1/2$, потому что она смотрится лучше при небольшом количестве +`дробного материала'. + +\begin{example} + $1\frac{1}{2}$~часа + \begin{displaymath} + \frac{ x^{2} }{ k+1 }\qquad + x^{ \frac{2}{k+1} }\qquad + x^{ 1/2 } + \end{displaymath} +\end{example} + +Для верстки биномиальных коэффициентов или аналогичных структур можно +пользоваться командой \ci{binom} из пакета \pai{amsmath}. + +\begin{example} +\begin{displaymath} +\binom{n}{k}\qquad\mathrm{C}_n^k +\end{displaymath} +\end{example} + +Для бинарных отношений бывает удобно размещать символы друг над +другом. Команда \ci{stackrel} набирает символ, заданный первым +аргументом, шрифтом размера индексов и размещает его над вторым +аргументом, верстаемым в обычной позиции: + +\begin{example} +\begin{displaymath} +\int f_N(x) \stackrel{!}{=} 1 +\end{displaymath} +\end{example} + + +\textbf{Оператор интеграла}\index{оператор!интеграла} печатает +команда~\ci{int}, \textbf{оператор суммы}\index{оператор!суммы}~--- +команда~\ci{sum}, \textbf{оператор + произведения}\index{оператор!произведения}~--- команда~\ci{prod}. +Верхние и нижние пределы указываются при помощи знаков~<<\verb|^|>> +и~<<\verb|_|>>, так же, как верхние и нижние +индексы\footnote{\AmS-\LaTeX{}, кроме того, поддерживает многострочные +верхние и нижние индексы.}. + +\begin{example} +\begin{displaymath} +\sum_{i=1}^{n} \qquad +\int_{0}^{\frac{\pi}{2}} \qquad +\prod_\epsilon +\end{displaymath} +\end{example} + +Чтобы получить больший контpоль над pазмещением индексов в сложных +выpажениях, \pai{amsmath} пpедоставляет еще два инстpумента: команду +\ci{substack} и окpужение \ei{subarray}: + +\begin{example} +\begin{displaymath} +\sum_{\substack{0> в качестве +невидимого правого ограничителя: + +\begin{example} +\begin{displaymath} +y = \left\{ \begin{array}{ll} + a & \textrm{если $d>c$}\\ + b+x & \textrm{по утрам}\\ + l & \textrm{остальное время дня} + \end{array} \right. +\end{displaymath} +\end{example} + +Так же, как в окружении \verb|tabular|, можно рисовать линейки в +окружении \ei{array}, например, разделяя элементы матрицы: + +\begin{example} +\begin{displaymath} +\left(\begin{array}{c|c} + 1 & 2 \\ +\hline +3 & 4 +\end{array}\right) +\end{displaymath} +\end{example} + + +Для формул, занимающих несколько строк или для систем +уравнений\index{системы уравнений} +вместо \ei{equation} пользуйтесь окружениями \ei{eqnarray} и +\verb|eqnarray*|. В \ei{eqnarray} каждая строка получает отдельный +номер уравнения. В \verb|eqnarray*| номера не ставятся. + +Окружения \ei{eqnarray} и \verb|eqnarray*| работают наподобие таблицы +из трех столбцов формата \verb|{rcl}|, где средний столбец +используется для знака равенства, или знака неравенства, или другого +подходящего знака. Команда \verb|\\| разбивает строки. + +\begin{example} +\begin{eqnarray} +f(x) & = & \cos x \\ +f'(x) & = & -\sin x \\ +\int_{0}^{x} f(y)dy & + = & \sin x +\end{eqnarray} +\end{example} + +Заметьте, что по обеим сторонам средней колонки, знаков равенства, +слишком много свободного места. Оно может быть уменьшено установкой +\verb|\setlength\arraycolsep{2pt}|, как в следующем примере.\sloppypar + +\index{длинные уравнения} \textbf{Длинные уравнения} не будут +автоматически разбиваться на правильные части. Автор должен указать, +где их разбивать и насколько выравнивать. Чаще всего для этого +используют следующие методы: + +\begin{example} +{\setlength\arraycolsep{2pt} +\begin{eqnarray} +\sin x & = & x -\frac{x^{3}}{3!} + +\frac{x^{5}}{5!}-{} + \nonumber\\ + & & {}-\frac{x^{7}}{7!}+{}\cdots +\end{eqnarray}} +\end{example} + +\begin{example} +\begin{eqnarray} +\lefteqn{ \cos x = 1 + -\frac{x^{2}}{2!} +{} } + \nonumber\\ + & & {}+\frac{x^{4}}{4!} + -\frac{x^{6}}{6!}+{}\cdots +\end{eqnarray} +\end{example} + +\noindent Команда \ci{nonumber} заставляет \LaTeX{} не генерировать +номер для этого уравнения. + +Такими методами может быть сложно получить правильно выглядящие +вертикально выровненные уравнения; более мощную альтернативу +предоставляет пакет \pai{amsmath} (см. окружения \verb|align|, +\verb|flalign|, \verb|gather|, \verb|multiline| и \verb|split|). + +\section{Фантомы} + +Мы не можем увидеть пpивидения, но они, тем не менее, все pавно +занимают свое место в умах некотоpых людей. Так и \LaTeX{} позволяет +использовать фантомы, невидимые объекты, для реализации интересных +трюков с размещением видимых объектов. + +Когда \LaTeX{} размещает текст по вертикали при помощи команд \verb|^| +и \verb|_|, он иногда проявляет многовато интеллекта. Командой +\ci{phantom} вы можете зарезервировать пространство для символов, +которых на самом деле сверстано не будет. Лучше всего это понять на +следующих примерах. + +\begin{example} +\begin{displaymath} +{}^{12}_{\phantom{1}6}\textrm{C} +\qquad \textrm{versus} \qquad +{}^{12}_{6}\textrm{C} +\end{displaymath} +\end{example} + +\begin{example} +\begin{displaymath} +\Gamma_{ij}^{\phantom{ij}k} +\qquad \textrm{versus} \qquad +\Gamma_{ij}^{k} +\end{displaymath} +\end{example} + +\section{Размер математического шрифта}\label{sec:fontsz} + +\index{шрифт!математический, размер} В математическом режиме \TeX{} +выбирает размер шрифта в зависимости от контекста. Индексы, например, +верстаются меньшим шрифтом. Если вы хотите добавить к уравнению +обычный текст, не пользуйтесь командой \verb|\textrm|, так как +механизм переключения размера работать не будет, потому что +\verb|\textrm| временно выходит в текстовый режим. Чтобы оставить его +работающим, используйте команду \verb|\mathrm|.\trfootnote{В + зависимости от используемой русификации, у вас могут не работать + русские буквы внутри команды \ci{mathrm}, вместо которой может + использоваться команда \ci{cyrmathrm}.} Но имейте в виду, +\ci{mathrm} будет хорошо работать только с короткими элементами. +Пробелы по-прежнему не активны и акцентированные символы не +работают.\footnote{При подключении \AmS-\LaTeX{} (пакет \pai{amsmath}) + команда \ci{textrm} начинает работать с изменением размера.} + +\begin{example} +\begin{equation} +2^{\textrm{nd}} \quad +2^{\mathrm{nd}} +\end{equation} +\end{example} + +Тем не менее, иногда вам может быть нужно указать \LaTeX{} точный +размер шрифта. В математическом режиме размер устанавливается четырьмя +командами: + +\begin{flushleft} + \ci{displaystyle}~($\displaystyle 123$), + \ci{textstyle}~($\textstyle 123$), + \ci{scriptstyle}~($\scriptstyle 123$) и + \ci{scriptscriptstyle}~($\scriptscriptstyle 123$). +\end{flushleft} + +Смена стилей влияет также на способ изображения пределов. + +\fvset{xrightmargin=0.52\textwidth} + +\begin{example} +\begin{displaymath} +\mathop{\mathrm{corr}}(X,Y)= + \frac{\displaystyle + \sum_{i=1}^n(x_i-\overline x) + (y_i-\overline y)} + {\displaystyle\biggl[ + \sum_{i=1}^n(x_i-\overline x)^2 +\sum_{i=1}^n(y_i-\overline y)^2 +\biggr]^{1/2}} +\end{displaymath} +\end{example} +% This is not a math accent, and no maths book would be set this way. +% mathop gets the spacing right. + +\fvset{xrightmargin=0.5\textwidth} + +\noindent Это один из примеров, когда нам нужны скобки б\'ольшие, чем +предоставляемые стандартными \verb|\left[ \right]|. + + +\section{Теоремы, законы, \ldots{}} + +При написании математических документов, вам, вероятно, нужен способ +верстки <<лемм>>, <<определений>>, <<аксиом>> и аналогичных структур. +\LaTeX{} поддерживает это командами +\begin{lscommand} +\ci{newtheorem}\verb|{|\emph{название}\verb|}[|\emph{счетчик}\verb|]{|% + \emph{текст}\verb|}[|\emph{раздел}\verb|]| +\end{lscommand} +Аргумент \emph{название}~--- это краткое ключевое слово, используемое +для идентификации <<теоремы>>. Аргументом \emph{текст} вы определяете +настоящее название <<теоремы>>, под которым она будет печататься в +документе. + +Аргументы в квадратных скобках необязательны. Оба они используются для +определения того, как нумеровать <<теорему>>. Аргументом +\emph{счетчик} вы можете указать \emph{название} предварительно +объявленной <<теоремы>>. Новая <<теорема>> будет тогда нумероваться в +той же последовательности. Аргумент \emph{раздел} позволяет вам +указать раздел, внутри которого вы хотите нумеровать вашу +<<теорему>>. + +После использования в преамбуле документа команды \ci{newtheorem}, вы +можете пользоваться следующими командами: + +\begin{code} +\verb|\begin{|\emph{название}\verb|}[|\emph{текст}\verb|]|\\ +Это интересная теорема.\\ +\verb|\end{|\emph{название}\verb|}| +\end{code} + +На этом теории должно быть достаточно. Дальнейшие примеры должны +развеять последнюю тень сомнений, и окончательно убедить вас, что +окружение \verb|\newtheorem| слишком сложно, чтобы его можно было +понять:\sloppypar + +\begin{example} +% определения для +% преамбулы документа +\newtheorem{law}{Law} +\newtheorem{jury}[law]{Jury} +% в теле документа +\begin{law} \label{law:box} +Don't hide in the witness box +\end{law} +\begin{jury}[The Twelve] +It could be you! So beware and +see law~\ref{law:box}\end{jury} +\begin{law}No, No, No\end{law} +\end{example} + +Теорема <> использует тот же счетчик, что и теорема +<>. Следовательно, она получит номер в последовательности с +другими теоремами <>. Аргумент в квадратных скобках указывает +заголовок теоремы, или нечто аналогичное. + +\begin{example} +\flushleft +\newtheorem{mur}{Murphy}[section] +\begin{mur} +Если существует два или +более способа сделать +нечто, и один их этих +способов может привести +к катастрофе, то кто-то +обязательно это сделает. +\end{mur} +\end{example} + +Теорема <> получает номер, связанный с номером текущего +раздела. Вы можете также использовать другую структурную единицу, +например, главу или подраздел. + + +\section{Полужирные символы} +\index{полужирные символы} + +В \LaTeX{} довольно непросто получить жирные символы; это, вероятно, +сделано преднамеренно, потому что непрофессионалы слишком часто +злоупотребляют ими. Команда смены шрифта \verb|\mathbf| дает +полужирные символы, но они обычные (прямые), тогда как математические +символы обычно курсивные. Существует команда \ci{boldmath}, но +\emph{она может использоваться только вне математического режима}. То +же относится и к символам. + +\begin{example} +\begin{displaymath} +\mu, M \qquad \mathbf{M} \qquad +\mbox{\boldmath $\mu, M$} +\end{displaymath} +\end{example} + +\noindent Заметьте, что запятая тоже полужирная, что может быть +нежелательным. + +Пакет \pai{amsbsy} (включаемый пакетом \pai{amsmath}), равно как и +пакет \pai{bm} (из набора \texttt{tools}), включает команду +\ci{boldsymbol}. + +\ifx\boldsymbol\undefined\else +\begin{example} +\begin{displaymath} +\mu, M \qquad +\boldsymbol{\mu}, \boldsymbol{M} +\end{displaymath} +\end{example} +\fi + + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort" +%%% End: + + diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/mylayout.sty b/Master/texmf-dist/doc/latex/lshort-russian/src/mylayout.sty new file mode 100644 index 00000000000..f31235631bc --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/mylayout.sty @@ -0,0 +1,373 @@ +%% +%% This is file `mylayout.sty', generated +%% on <1995/7/3> with the docstrip utility (2.2i). +%% +%% The original source files were: +%% +%% layout.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% This file is part of the `tools' bundle +%% in the LaTeX2e distribution. +%% +%% You are not allowed to distribute this file. +%% For distribution of the original source see +%% the copyright notice in the source file, and +%% in the file readme.txt distributed with the +%% tools bundle. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mylayout} + [1995/06/25 v1.1i + Show layout parameters] +\DeclareOption{dutch}{% + \def\Headertext{Kopregel} + \def\Bodytext{Broodtekst} + \def\Footertext{Voetregel} + \def\MarginNotestext{Marge\\Notities} + \def\oneinchtext{een inch} + \def\notshown{niet getoond} + \def\theOr{or} + } +\DeclareOption{english}{% + \def\Headertext{Header} + \def\Bodytext{Body} + \def\Footertext{Footer} + \def\MarginNotestext{Margin\\Notes} + \def\oneinchtext{one inch} + \def\notshown{not shown} + \def\theOr{or} + } +\DeclareOption{french}{% + \def\Headertext{Ent\^{e}te} + \def\Bodytext{Corps} + \def\Footertext{Pied de page} + \def\MarginNotestext{Marge\\Notes} + \def\oneinchtext{un pouce} + \def\notshown{non affich\'{e}} + \def\theOr{or} + } +\DeclareOption{russian}{% + \def\Headertext{\cyr Верхний колонтитул} + \def\Bodytext{\cyr Тело} + \def\Footertext{\cyr Нижний колонтитул} + \def\MarginNotestext{\cyr Маргиналии\\(поля)} + \def\oneinchtext{\cyr 1~дюйм} + \def\notshown{\cyr не показано} + \def\theOr{\cyr или} + } +\DeclareOption{francais}{\ExecuteOptions{french}} +\DeclareOption{verbose}{\let\type\typeout} +\DeclareOption{silent}{\let\type\@gobble} +\def\lay@value{} +\DeclareOption{integers}{% + \renewcommand*{\lay@value}[2]{% + \expandafter\number\csname #1@#2\endcsname pt}} +\DeclareOption{reals}{% + \renewcommand*{\lay@value}[2]{\the\csname #2\endcsname}} +\ExecuteOptions{english,silent,integers} +\ProcessOptions +\@ifundefined{bs}{\newcommand\bs{\char '134 }}% + {\renewcommand\bs{\char '134 }} +\def\ConvertToCount#1#2{% + #1=#2 + \divide #1 by 65536} +\def\SetToHalf#1#2{#1=#2\relax\divide#1by\tw@} +\def\SetToQuart#1#2{#1=#2\relax\divide#1by4} +\def\Identify#1{% + \put(\PositionX,\PositionY){\circle{20}} + \put(\PositionX,\PositionY){\makebox(0,0){\tiny #1}} +} +\def\InsideHArrow#1{{% + \ArrowLength = #1 + \divide\ArrowLength by \tw@ + \advance\ArrowLength by -10 + \advance\PositionX by -10 + \ifnum\ArrowLength<\z@ + \put(\PositionX,\PositionY){\vector(1,0){-\ArrowLength}} + \advance\PositionX by 20 + \put(\PositionX,\PositionY){\vector(-1,0){-\ArrowLength}} + \else + \put(\PositionX,\PositionY){\vector(-1,0){\ArrowLength}} + \advance\PositionX by 20 + \put(\PositionX,\PositionY){\vector(+1,0){\ArrowLength}} + \fi +}} +\def\InsideVArrow#1{{% + \ArrowLength = #1 + \divide\ArrowLength by \tw@ + \advance\ArrowLength by -10 + \advance\PositionY by -10 + \put(\PositionX,\PositionY){\vector(0,-1){\ArrowLength}} + \advance\PositionY by 20 + \put(\PositionX,\PositionY){\vector(0,+1){\ArrowLength}} +}} +\def\OutsideHArrow#1#2#3{{% + \PositionX = #1 + \advance\PositionX by #3 + \put(\PositionX,\PositionY){\vector(-1,0){#3}} + \PositionX = #1 \advance\PositionX-#2 + \advance\PositionX by -#3 + \put(\PositionX,\PositionY){\vector(+1,0){#3}} +}} +\def\OutsideVArrow#1#2#3#4{{% + \PositionY = #1 + \advance\PositionY by -#3 + \put(\PositionX,\PositionY){\vector(0,+1){#3}} + \PositionY = #1 + \advance\PositionY#2 + \advance\PositionY#4 + \put(\PositionX,\PositionY){\vector(0,-1){#4}} +}} +\def\Show#1#2{\bs #2 = \lay@value{#1}{#2}} +\def\Type#1#2{% + \type{#2 = \lay@value{#1}{#2}}} +\newcount\oneinch +\oneinch=72 +\newcount\cnt@paperwidth +\newcount\cnt@paperheight +\ConvertToCount\cnt@paperwidth\paperwidth +\ConvertToCount\cnt@paperheight\paperheight +\newcount\cnt@hoffset +\newcount\cnt@voffset +\ConvertToCount\cnt@hoffset\hoffset +\ConvertToCount\cnt@voffset\voffset +\newcount\cnt@textheight +\newcount\cnt@textwidth +\ConvertToCount\cnt@textheight\textheight +\ConvertToCount\cnt@textwidth\textwidth +\newcount\cnt@topmargin +\newcount\cnt@oddsidemargin +\newcount\cnt@evensidemargin +\ConvertToCount\cnt@topmargin\topmargin +\ConvertToCount\cnt@oddsidemargin\oddsidemargin +\ConvertToCount\cnt@evensidemargin\evensidemargin +\newcount\cnt@headheight +\newcount\cnt@headsep +\ConvertToCount\cnt@headheight\headheight +\ConvertToCount\cnt@headsep\headsep +\newcount\cnt@marginparsep +\newcount\cnt@marginparwidth +\newcount\cnt@marginparpush +\ConvertToCount\cnt@marginparsep\marginparsep +\ConvertToCount\cnt@marginparwidth\marginparwidth +\ConvertToCount\cnt@marginparpush\marginparpush +\newcount\cnt@footskip +\ConvertToCount\cnt@footskip\footskip +\newcount\fheight +\fheight=12 +\newcount\ref@top +\ref@top=\cnt@paperheight \advance\ref@top by -\oneinch +\newcount\ref@hoffset +\newcount\ref@voffset +\ref@hoffset=\cnt@hoffset \advance\cnt@hoffset by \oneinch +\ref@voffset=\cnt@voffset +\cnt@voffset=\ref@top +\advance\cnt@voffset by -\ref@voffset +\newcount\ref@head +\ref@head=\ref@top + \advance\ref@head by -\ref@voffset + \advance\ref@head by -\cnt@topmargin + \advance\ref@head by -\cnt@headheight +\newcount\ref@body +\ref@body=\ref@head + \advance\ref@body by -\cnt@headsep + \advance\ref@body by -\cnt@textheight +\newcount\ref@foot + \ref@foot=\ref@body + \advance\ref@foot by -\cnt@footskip +\newcount\ref@margin +\newcount\ref@marginwidth +\newcount\ref@marginpar +\newcount\Interval +\newcount\ExtraYPos +\newcount\PositionX +\newcount\PositionY +\newcount\ArrowLength +\newcommand\layout{% + \@layout + \if@twoside + \@layout + \fi} +\newcommand\@layout{% + \thispagestyle{empty} + \if@twoside + \ifodd\count\z@ + \typeout{Two-sided document style, odd page.} + \ref@marginwidth=\cnt@oddsidemargin + \ref@marginpar=\oneinch + \advance\ref@marginpar by \ref@hoffset + \advance\ref@marginpar by \cnt@oddsidemargin + \ref@margin\ref@marginpar + \if@reversemargin + \advance\ref@marginpar by -\cnt@marginparsep + \advance\ref@marginpar by -\cnt@marginparwidth + \else + \advance\ref@marginpar by \cnt@textwidth + \advance\ref@marginpar by \cnt@marginparsep + \fi + \else + \typeout{Two-sided document style, even page.} + \ref@marginwidth=\cnt@evensidemargin + \ref@marginpar=\oneinch + \advance\ref@marginpar by \ref@hoffset + \advance\ref@marginpar by \cnt@evensidemargin + \ref@margin\ref@marginpar + \if@reversemargin + \advance\ref@marginpar by \cnt@textwidth + \advance\ref@marginpar by \cnt@marginparsep + \else + \advance\ref@marginpar by -\cnt@marginparsep + \advance\ref@marginpar by -\cnt@marginparwidth + \fi + \fi + \else + \typeout{One-sided document style.} + \ref@marginwidth=\cnt@oddsidemargin + \ref@marginpar=\oneinch + \advance\ref@marginpar by \ref@hoffset + \advance\ref@marginpar by \cnt@oddsidemargin + \ref@margin\ref@marginpar + \if@reversemargin + \advance\ref@marginpar by -\cnt@marginparsep + \advance\ref@marginpar by -\cnt@marginparwidth + \else + \advance\ref@marginpar by \cnt@textwidth + \advance\ref@marginpar by \cnt@marginparsep + \fi + \fi + \setlength{\unitlength}{.5pt} + \begin{picture}(\cnt@paperwidth,\cnt@paperheight) + \centering + \thicklines + \put(0,0){\framebox(\cnt@paperwidth,\cnt@paperheight){\mbox{}}} + \put(0,\cnt@voffset){\dashbox{10}(\cnt@paperwidth,0){\mbox{}}} + \put(\cnt@hoffset,0){\dashbox{10}(0,\cnt@paperheight){\mbox{}}} + \put(\ref@margin,\ref@head){% + \framebox(\cnt@textwidth,\cnt@headheight)% + {\footnotesize\Headertext}} + \put(\ref@margin,\ref@body){% + \framebox(\cnt@textwidth,\cnt@textheight){\Bodytext}} + \put(\ref@margin,\ref@foot){% + \framebox(\cnt@textwidth,\fheight){\footnotesize\Footertext}} + \put(\ref@marginpar,\ref@body){% + \framebox(\cnt@marginparwidth,\cnt@textheight)% + {\footnotesize\shortstack{\MarginNotestext}}} + \thinlines + \SetToHalf\PositionX\cnt@textwidth + \advance\PositionX by \ref@margin + \PositionY = \ref@body + \advance\PositionY by 50 + \Identify{8} + \InsideHArrow\cnt@textwidth + \SetToHalf\PositionY\cnt@textheight + \advance\PositionY by \ref@body + \PositionX = \cnt@textwidth + \divide\PositionX by 5 + \multiply \PositionX by 4 + \advance\PositionX by \ref@margin + \Identify{7} + \InsideVArrow\cnt@textheight + \PositionY = \ref@foot + \SetToHalf\PositionX\cnt@hoffset + \Identify{1} + \InsideHArrow\cnt@hoffset + \SetToQuart\PositionY\cnt@textheight + \advance\PositionY by \ref@body + \OutsideHArrow\ref@margin\ref@marginwidth{20} + \PositionX = \cnt@hoffset + \advance\PositionX by -30 + \Identify{3} + \SetToQuart\PositionY\cnt@textheight + \advance\PositionY by \ref@body + \advance\PositionY by 30 + \SetToHalf\PositionX\cnt@marginparwidth + \advance\PositionX by \ref@marginpar + \Identify{10} + \InsideHArrow\cnt@marginparwidth + \advance\PositionY by 30 + \if@twoside + \ifodd\count\z@ + \OutsideHArrow\ref@marginpar\cnt@marginparsep{20} + \PositionX = \ref@marginpar + \else + \OutsideHArrow\ref@margin\cnt@marginparsep{20} + \PositionX = \ref@margin + \fi + \else + \OutsideHArrow\ref@marginpar\cnt@marginparsep{20} + \PositionX = \ref@marginpar + \fi + \advance\PositionX by 30 + \Identify{9} + \PositionX = \cnt@textwidth + \divide\PositionX by 8 + \advance\PositionX by \ref@margin + \OutsideVArrow\ref@foot\cnt@footskip{20}{20} + \PositionY = \ref@foot + \advance\PositionY by -30 + \Identify{11} + \PositionX = \cnt@paperwidth + \advance\PositionX by -50 + \PositionY = \cnt@paperheight + \ExtraYPos = \PositionY + \advance\ExtraYPos by -\cnt@voffset + \advance\PositionY by \cnt@voffset + \divide\PositionY by \tw@ + \Identify{2} + \InsideVArrow\ExtraYPos + \Interval = \cnt@textwidth + \divide\Interval by 8 + \PositionX = \ref@margin + \advance\PositionX by \Interval + \Identify{4} + \ExtraYPos = \ref@head + \advance\ExtraYPos\cnt@headheight + \ArrowLength = \PositionY + \advance\ArrowLength-\ExtraYPos + \advance\ArrowLength-\cnt@topmargin + \advance\ArrowLength-10% + \OutsideVArrow\ExtraYPos\cnt@topmargin{20}{\ArrowLength} + \advance\PositionX by \Interval + \Identify{5} + \advance\ArrowLength\cnt@topmargin + \OutsideVArrow\ref@head\cnt@headheight{20}{\ArrowLength} + \advance\PositionX by \Interval + \Identify{6} + \advance\ArrowLength\cnt@headheight + \ExtraYPos=\ref@body + \advance\ExtraYPos\cnt@textheight + \OutsideVArrow\ExtraYPos\cnt@headsep{20}{\ArrowLength} + \end{picture} + + \medskip + \vtop to 0pt{% + \@minipagerestore\footnotesize\cyr\ttfamily + \begin{tabular}{@{}rl@{\hspace{20pt}}rl} + 1 & \oneinchtext\ + \bs\texttt{hoffset} & 2 & \oneinchtext\ + \bs\texttt{voffset} \\ + 3 & \Show{cnt}{oddsidemargin} & 4 & \Show{cnt}{topmargin} \\ + & \theOr{} \bs\texttt{evensidemargin} & & \\ + 5 & \Show{cnt}{headheight} & 6 & \Show{cnt}{headsep} \\ + 7 & \Show{cnt}{textheight} & 8 & \Show{cnt}{textwidth} \\ + 9 & \Show{cnt}{marginparsep}&10& \Show{cnt}{marginparwidth} \\ + 11& \Show{cnt}{footskip} & & \Show{cnt}{marginparpush} + \rlap{(\notshown)}\\ + & \Show{ref}{hoffset} & & \Show{ref}{voffset} \\ + & \Show{cnt}{paperwidth} & & \Show{cnt}{paperheight} \\ + + \end{tabular}\vss} + \Type{ref}{hoffset} + \Type{ref}{voffset} + \Type{cnt}{textheight} + \Type{cnt}{textwidth} + \newpage +} +\endinput + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort2e" +%%% End: + +%% +%% End of file `layout.sty'. diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/overview.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/overview.tex new file mode 100644 index 00000000000..3ff8b31dc1b --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/overview.tex @@ -0,0 +1,113 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Who contributed to this Document +% $Id: overview.tex,v 1.1.1.1 2002/02/26 10:04:21 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Because this introduction is the reader's first impression, I have +% edited very heavily to try to clarify and economize the language. +% I hope you do not mind! I always try to ask "is this word needed?" +% in my own writing but I don't want to impose my style on you... +% but here I think it may be more important than the rest of the book. +% --baron + +\chapter{Предисловие} + +\LaTeX{}~\cite{manual}~--- система верстки, ориентированная на +производство научных математических документов высокого типографского +качества. Система также вполне подходит для производства других видов +документов, от простых писем до полностью сверстанных книг. \LaTeX{} +использует \TeX{} \cite{texbook} в качестве своего механизма верстки. + +Это краткое введение описывает \LaTeXe{} и должно быть достаточно для +большинства применений \LaTeX. Для полного описания системы \LaTeX{} +читайте~\cite{manual,companion}. + +\bigskip +\noindent Это введение разбито на пять глав: +\begin{description} +\item[Глава 1] рассказывает о базовой структуре документов \LaTeX{}. + Вы получите некоторое представление об истории \LaTeX{}. После + чтения этой главы вы должны получить грубое представление о pаботе + \LaTeX{}. +\item[Глава 2] углубляется в детали верстки ваших документов. Она + объясняет большинство важных команд и окружений \LaTeX{}. После + чтения этой главы вы сможет писать первые документы. +\item[Глава 3] объясняет, как верстать формулы в \LaTeX{}. Множество + примеров поможет вам понять, как использовать эту, одну из самых сильных, + сторону \LaTeX{}. В конце этой главы вы найдете таблицы, + перечисляющие большинство известных в \LaTeX{} математических + символов. +\item[Глава 4] рассказывает про генерацию предметного указателя и + библиографии и включение EPS графики. Она объясняет, как пpи помощи + pdf\LaTeX{} создавать документы в фоpмате PDF, а также пpедставляет + несколько дpугих полезных расширений, таких, как пакет XY-pic.\sloppypar +\item[Глава 5] показывает, как использовать \LaTeX{} для создания +графики. Вместо рисования иллюстрации в каком-нибудь графическом редакторе, +записи ее в файл и включения его в \LaTeX{}, вы описываете иллюстрацию, а +\LaTeX{} рисует ее. +\item[Глава 6] содержит потенциально опасные сведения о том, как + менять стандартный макет документа. Она расскажет вам, как + сделать красивый вывод \LaTeX{} ужасным или потpясающим, в + зависимости от ваших способностей. +\end{description} + +\bigskip +\noindent Важно читать главы последовательно. В конце концов, книжка не такая уж +большая. По мере чтения вам встретится большое количество примеров. +Читайте их внимательно, поскольку многое в этой книжке объясняется +именно в тексте пpимеpов. + +\bigskip +\noindent \LaTeX{} работает на большинстве компьютеров, начиная с IBM PC или +Mac, и кончая большими системами UNIX или VMS. В многих +университетских сетях система уже установлена и готова к работе. +Информация о том, как использовать локальную установку \LaTeX{}, +должна быть предоставлена в \guide. Если у вас будут проблемы с +началом работы, попросите о помощи того, кто предоставил вам эту +книжку. Цель ее заключается \emph{не} в том, чтобы обучить вас +установке и настройке системы \LaTeX{}, а в том, чтобы научить, как +писать ваши документы так, чтобы они могли быть обработаны \LaTeX{}. + +\medskip +\noindent Если вам понадобится любой, относящийся к \LaTeX{}, +материал, поищите его на одном из ftp архивов Comprehensive \TeX{} +Archive Network (\texttt{CTAN}). Его основной +адреc~---\texttt{http://www.ctan.org}. Все пакеты можно также получить +с ftp-архива \texttt{ftp://www.ctan.org} и его зеркал по всему миру. +Например, для США это~--- \texttt{ftp://ctan.tug.org}, для +Германии~--- \texttt{ftp://ftp.dante.de}, для Великобритании~--- +\texttt{ftp://ftp.tex.ac.uk}, для России~--- +\texttt{ftp://ftp.radio-msu.net}. Если вы не в одной из этих стран, +выберите ближайший к вам архив.\sloppypar + +Далее в книге вы будете постоянно встречать ссылки на CTAN, обычно +указывающие на полезные программные пакеты и документы. Вместо полной +записи конкретных адресов будет писаться просто \texttt{CTAN:} и далее +адрес в дереве файлов CTAN. + +\noindent Если вы хотите иметь \LaTeX{} на вашем собственном компьютере, +посмотрите на то, что доступно по адресу \CTANref|systems|. + +\vspace{\stretch{1}} +\noindent Если у вас есть мысли по поводу того, что ст\'оит добавить, +удалить или изменить в этом документе, пожалуйста, дайте мне знать. Я +особенно заинтересован в откликах от новичков в \LaTeX{} на тему того, +какие части введения легко понимаемы, и что можно объяснить лучше. + +\medskip +\begin{verse} +\contrib{Tobias Oetiker}{oetiker@ee.ethz.ch}% +\noindent{Department of Information Technology and\\Electrical Engineering, +Swiss Federal Institute of Technology} +\end{verse} +\vspace{\stretch{1}} +\noindent Текущая версия этого документа доступна по адресу\\ +\CTANref|info/lshort|\trfootnote{Текущая версия данного +перевода доступна по адресу \texttt{http://xtalk.msk.su/tex}, а также на +\texttt{CTAN}.}. \endinput + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort2e" +%%% End: diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex new file mode 100644 index 00000000000..093026140a0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/spec.tex @@ -0,0 +1,1022 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Specialities of the LaTeX system +% $Id: spec.tex,v 1.1.1.1 2002/02/26 10:04:21 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Специальные возможности} +\begin{intro} + При сборке большого документа \LaTeX{} поможет вам некоторыми + специальными функциями, например, генерацией предметного указателя, + управлением библиографией и тому подобными. Более подробное описание + специальных возможностей и расширений \LaTeX{} находится в + {\normalfont\manual} и в {\normalfont\companion}. +\end{intro} + + +\section{Включение \EPSi{} графики}\label{eps} + +\LaTeX{} имеет базовые средства для работы с плавающими объектами, +такими, как иллюстрации и таблицы, при помощи окружений \ei{figure} и +\ei{table}. + +Существует также несколько способов создавать собственно +графику\index{графика} средствами базового \LaTeX{} или его +расширений. К сожалению, большинство пользователей находит их трудными +для понимания, поэтому здесь эти способы не pассматpиваются. +Дополнительная информация приведена в \companion{} и в \manual{}. + +Более простой метод получения графики в документе~--- это создавать ее +специализированными программными пакетами\footnote{Такими, как XFig, + CorelDraw!, Freehand, Gnuplot,~\ldots{}} и включать в документ +готовую графику. Пакеты \LaTeX{} предлагают множество способов это +делать. В этом введении обсуждается только использование графики в +формате \EPSi{} (EPS), поскольку это +довольно просто делается и широко распространено. Чтобы использовать +картинки в формате EPS, вам нужно использовать для вывода +\PSi{} принтер.\footnote{Другая возможность вывода + \PSi{} заключается в использовании программы + \textsc{\wi{GhostScript}}, доступной с + \texttt{\CTAN|support/ghostscript|}. Пользователи Windows и OS/2 могут +обратить внимание на программу \textsc{GSview}.} + +Хороший набор команд включения графики входит в пакет \pai{graphicx} +(автор D.~P.~Carlisle). Он является частью целого семейства +пакетов, называющегося комплектом +``graphics''.\footnote{\CTANref|macros/latex/required/graphics|} + +В предположении, что вы работаете в системе с доступным для вывода +\PSi{}-принтером, и с установленным пакетом +\pai{graphicx}, для включения картинки в ваш документ можете +использовать следующую пошаговую инструкцию:\sloppypar + +\begin{enumerate} +\item Экспортируйте картинку из вашей графической программы в формате + EPS.\footnote{Если ваша программа не имеет экспорта в EPS, можно + попробовать установить драйвер \PSi{}-принтера (скажем, + какого-нибудь Apple LaserWriter) и печатать в файл через этот + драйвер. Если вам повезет, в этом файле будет EPS. Заметьте, что + EPS обязан содержать не больше одной страницы. Некоторые + принтерные драйверы нужно в явном виде настраивать для генерации EPS.} +\item В преамбуле документа загрузите пакет \pai{graphicx} при помощи +\begin{lscommand} +\verb|\usepackage[|\emph{драйвер}\verb|]{graphicx}| +\end{lscommand} +\noindent где \emph{драйвер}~--- это название вашего конвертера DVI в +\PSi{}. Самый широко используемый называется +\texttt{dvips}. Название драйвера требуется потому, что не существует +стандарта включения графики в \TeX{}. Зная название \emph{драйвера}, +\pai{graphicx} может выбрать правильный способ вставить информацию о +графике в \eei{.dvi}~файл так, чтобы драйвер ее понял и смог +корректно вставить \eei{.eps}~файл. +\item Для включения \emph{файла} в ваш документ пользуйтесь командой + \begin{lscommand} +\ci{includegraphics}\verb|[|\emph{опция}=\emph{значение}, \ldots\verb|]{|\emph{файл}\verb|}| +\end{lscommand} +Необязательный параметр принимает вид списка разделенных запятыми пар +\emph{опций} и соответствующих \emph{значений}. \emph{Опции} можно +использовать для изменения ширины, высоты, поворота включаемой +графики. Таблица~\ref{keyvals} перечисляет самые важные опции. +\end{enumerate} + +\begin{table}[htb] +\caption{Названия опций пакета \textsf{graphicx}} +\label{keyvals} +\begin{lined}{9cm} +\begin{tabular}{@{}ll} +\texttt{width}& масштабирует графику до указанной ширины\\ +\texttt{height}& масштабирует графику до указанной высоты\\ +\texttt{angle}& поворачивает графику против часовой стрелки\\ +\texttt{scale}& масштабирует графику\\ +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +Возможно, пример сделает это понятнее: +\begin{code} +\begin{verbatim} +\begin{figure} +\begin{center} +\includegraphics[angle=90, width=0.5\textwidth]{test} +\end{center} +\end{figure} +\end{verbatim} +\end{code} +Здесь включается графика, записанная в файл \texttt{test.eps}. Она +\emph{сначала} поворачивается на 90 градусов и \emph{затем} +масштабируется до конечной ширины в 0.5 ширины стандартного +абзаца. Пропорции сохраняются, поскольку не указано конкретной высоты. +Параметры высоты и ширины могут также быть указаны в абсолютных +размерах. Обратитесь к таблице~\ref{units} на +странице~\pageref{units}. Если вы хотите знать об этом больше, +прочтите \cite{graphics} и~\cite{eps}. + + +\section{Библиография} + +Окружение \ei{thebibliography} генерирует +\index{библиография}библиографию. Каждый элемент начинается с +\begin{lscommand} +\ci{bibitem}\verb|[|\emph{метка}\verb|]{|\emph{маркер}\verb|}| +\end{lscommand} +Затем \emph{маркер} используется для дальнейших ссылок на книгу, +статью или труд. +\begin{lscommand} +\ci{cite}\verb|{|\emph{маркер}\verb|}| +\end{lscommand} + +Если вы не используете опцию \emph{метка}, элементы библиографии +нумеруются автоматически. Параметр после команды +\verb|\begin{thebibliography}| устанавливает максимальную ширину этих + номеров. В следующем примере \verb|{99}| указывает \LaTeX{}, что ни + один из номеров элементов не будет шире, чем число `99'. + +\fvset{xrightmargin=0.6\textwidth} + +\begin{example} +Partl~\cite{pa} предложил, +чтобы \ldots + +\begin{thebibliography}{99} +\bibitem{pa} H.~Partl: +\emph{German \TeX}, +TUGboat Volume~9, Issue~1 ('88) +\end{thebibliography} +\end{example} + +\fvset{xrightmargin=0.5\textwidth} + +\chaptermark{Специальные возможности} % we need to fix the damage done by the + %bibliography example. + +\thispagestyle{fancyplain} + +Для использования в б\'оль\-ших проектах обратите внимание на программу +Bib\TeX{}. Она входит в большинство поставок \TeX{}. Bib\TeX{} +позволяет вам поддерживать библиографическую базу данных и извлекать +из нее ссылки, имеющие отношение к тому, что вы цитировали в вашем +труде. Визуальное представление библиографий, генерируемых Bib\TeX{}, +основано на концепции стилей, что позволяет вам создавать +библиографии, следуя любому из существующих стилей библиографии. + + +\section{Указатели} +\label{sec:indexing} + +Полезной особенностью многих книг является их предметный +указатель\index{предметный указатель}. Указатели могут создаваться +автоматически при помощи \LaTeX{} и сопровождающей программы +\texttt{makeindex}.\footnote{На системах, не поддерживающих длинные + имена файлов, программа может называться \texttt{makeidx}.} В этом +введении будут изложены только базовые команды генерации указателя. +Более глубокое изложение смотрите в~\companion. \index{программа + makeindex}\index{пакет makeidx} + +Для включения возможностей \LaTeX{} в преамбуле должен загружаться +пакет \pai{makeidx}: +\begin{lscommand} +\verb|\usepackage{makeidx}| +\end{lscommand} +\noindent а специальные команды должны быть разрешены помещением в +преамбулу команды +\begin{lscommand} + \ci{makeindex} +\end{lscommand} + +Содержимое указателя создается командами +\begin{lscommand} + \ci{index}\verb|{|\emph{ключ}\verb|}| +\end{lscommand} +\noindent где \emph{ключ} является элементом указателя. Вы вводите +команды указателя в том месте текста, куда этот элемент должен +указывать. Таблица~\ref{index} объясняет синтаксис аргумента +\emph{ключ} несколькими примерами. + +\begin{table}[!tp] +\caption{Примеры синтаксиса ключей указателя} +\label{index} +\begin{center} +\begin{tabular}{@{}lll@{}} + \textbf{Пример} &\textbf{Вид указателя} &\textbf{Комментарий}\\\hline + \rule{0pt}{1.05em}\verb|\index{hello}| &hello, 1 &Обычный элемент\\ +\verb|\index{hello!Peter}| &\hspace*{2ex}Peter, 3 &Подчиненный `hello' элемент\\ +\verb|\index{Sam@\textsl{Sam}}| &\textsl{Sam}, 2& Форматированный ключ\\ +\verb|\index{Lin@\textbf{Lin}}| &\textbf{Lin}, 7& То же\\ +\verb.\index{Jenny|textbf}. &Jenny, \textbf{3}& Форматированная страница\\ +\verb.\index{Joe|textit}. &Joe, \textit{5}& То же\\ +\verb.\index{eolienne@\'eolienne}. &\'eolienne, 4& Акцентиpованные буквы +\end{tabular} +\end{center} +\end{table} + +По мере обработки входного файла \LaTeX{}, каждая команда +\verb|\index| записывает соответствующий элемент указателя вместе с +номером текущей страницы в специальный файл. Файл имеет то же имя, что +и входной файл \LaTeX{}, но другое расширение имени (\verb|.idx|). +Этот \eei{.ind}-файл затем обрабатывается программой +\texttt{makeindex}. + +\begin{lscommand} + \texttt{makeindex} \emph{filename} +\end{lscommand} + +Программа \texttt{makeindex} генерирует отсортированный указатель с +тем же именем, но, на этот раз, с расширением \eei{.ind}. + +Если теперь повторно обработать входной файл, этот отсортированный +указатель включается в документ в то место, где \LaTeX{} находит +команду +\begin{lscommand} + \ci{printindex} +\end{lscommand} + +Пакет \pai{showidx}, входящий в \LaTeXe{}, печатает все элементы +указателя на левом поле текста. Это весьма полезно при проверке текста +и сверке указателя. + +Заметим, что команда \ci{index}, будучи использована неосторожно, +может повлиять на вид верстки. + +\begin{example} +Мое Слово \index{Слово}. В отличие +от Слово\index{Слово}. Отметьте +положение точки. +\end{example} + +\section{Настраиваемые колонтитулы} +\label{sec:fancy} + +Пакет \pai{fancyhdr},\footnote{Доступный из + \CTANref|/tex-archive/macros/latex/contrib/supported/fancyhdr|.} +написанный Piet van~Oostrum, предоставляет несколько простых команд, +позволяющих вам настраивать верхние и нижние колонтитулы документа. +Если вы сейчас взглянете на верх этой страницы, то увидите одно их +возможных применений этого пакета. + +\begin{figure}[!htbp] +\begin{lined}{\textwidth} +\begin{verbatim} +\documentclass{book} +\usepackage{fancyhdr} +\pagestyle{fancy} +% этим мы убеждаемся, что заголовки глав и +% разделов используют нижний регистр. +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\fancyhf{} % убираем текущие установки для колонтитулов +\fancyhead[LE,RO]{\bfseries\thepage} +\fancyhead[LO]{\bfseries\rightmark} +\fancyhead[RE]{\bfseries\leftmark} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\addtolength{\headheight}{0.5pt} % оставляем место для линейки +\fancypagestyle{plain}{% + \fancyhead{} % на обычных страницах убираем колонтитулы + \renewcommand{\headrulewidth}{0pt} % и линейку +} +\end{verbatim} +\end{lined} +\caption{Пример настройки \pai{fancyhdr}} \label{fancyhdr} +\end{figure} + +Сложность в настройке колонтитулов в том, чтобы включить туда вещи +вроде заголовков раздела или главы. \LaTeX{} достигает этого в два +этапа. В определениях колонтитулов можно использовать команды +\ci{rightmark} и \ci{leftmark}, представляющих заголовки текущей +главы и раздела, соответственно. Значения этих двух команд меняются +при обработке команд \ci{chapter} или \ci{section}. + +Для большей гибкости команды \ci{chapter} и ей подобные не +переопределяют \ci{rightmark} и \ci{leftmark} сами, а вызывают еще +одну команду, называющуюся \ci{chaptermark}, \ci{sectionmark} или +\ci{subsectionmark}, ответственную за переопределение \ci{rightmark} +и \ci{leftmark}.\sloppypar + +Так что, если вы хотите изменить вид названия главы в верхнем +колонтитуле, вы просто переопределяете команду \ci{chaptermark}. +\cih{sectionmark}\cih{subsectionmark} + +Рисунок~\ref{fancyhdr} показывает, как можно настроить пакет +\pai{fancyhdr} так, чтобы колонтитулы выглядели почти так, как они +выглядят у этого буклета. В любом случае вам рекомендуется +ознакомиться с документацией к пакету по адресу, упомянутому в сноске. + + +\section{Пакет verbatim} + +Ранее в этом введении вы познакомились с \emph{окружением} +\ei{verbatim}. В этом разделе вы узнаете про \emph{пакет} +\pai{verbatim}. Пакет \pai{verbatim} представляет из себя повторную +реализацию окружения \ei{verbatim} с исправлением некоторых его +ограничений. Само по себе это не замечательно,\trfootnote{Это для + американцев не замечательно. Для нас интересно то, что пакет + \pai{verbatim} включает команду \cih{verbatim"@font}\texttt{\bs verbatim@font}, позволяющую + использовать произвольный шрифт, например, русский, что невозможно в + окружении \ei{verbatim} без модификации стандартного поведения + \LaTeX{}.} но, кроме того, в него +была добавлена некоторая функциональность, и вот почему пакет здесь +упоминается. Пакет \pai{verbatim} предоставляет команду + +\begin{lscommand} +\ci{verbatiminput}\verb|{|\emph{файл}\verb|}| +\end{lscommand} + +\noindent которая позволяет вам включать текстовый файл в ваш +документ, как если бы его содержимое находилось внутри окружения +\ei{verbatim}. + +Так как пакет \pai{verbatim} входит в комплект `tools', вы найдете его +установленным на большинстве систем. Если вы хотите узнать о нем +больше, обязательно прочитайте \cite{verbatim}. + +\section{Загрузка и установка пакетов \LaTeX{}}\label{sec:Packages} + +Большинство дистрибутивов \LaTeX{} включают большой набор +предустановленных стилевых пакетов, но в Сети доступно намного +больше. Основное место для поиска стилевых пакетов в Интернете~--- +CTAN (\verb|http://www.ctan.org/|). + +Пакеты, такие, как \pai{geometry}, \pai{hyphenat} и многие другие, +обычно состоят из двух файлов: файла с расширением \texttt{.ins} и +второго, с расширением \texttt{.dtx}. Часто к ним прилагается файл +\texttt{readme.txt} с кратким описанием пакета. Конечно, сначала нужно +прочесть этот файл. + +В любом случае, после того, как вы скопировали файлы пакета на вашу +машину, вам нужно обработать их так, чтобы, во-первых, ваш \TeX{} +узнал о наличии нового пакета и, во-вторых, вы получили необходимую +документацию. Вот как выполняется первая часть: + +\begin{enumerate} +\item Обработайте \LaTeX{} файл \texttt{.ins}. На выходе вы получите файл + \eei{.sty}. +\item Поместите файл \eei{.sty} туда, где ваш дистрибутив ищет эти + файлы. Обычно это подкаталоги каталога + \texttt{\ldots/\emph{localtexmf}/tex/latex}. +\item Обновите базу имен файлов вашего дистрибутива. Команда зависит + от конкретного дистрибутива: для teTeX и fpTeX~--- \texttt{texhash}, + для web2c~--- \texttt{maktexlsr}, для MikTeX~--- \texttt{initexmf + -update-fndb}, или используя графические интерфейсы. +\end{enumerate} + +\noindent Теперь вы можете из файла \texttt{.dtx} получить +документацию: + +\begin{enumerate} +\item Обработайте \LaTeX{} файл \texttt{.dtx}. На выходе вы получите + файл \texttt{.dvi}. Заметьте, что вам может быть нужно запустить + \LaTeX{} несколько раз, чтобы получить правильные перекрестные + ссылки. +\item Проверьте, не сгенеровал ли \LaTeX{}, кроме всего прочего, файл + \texttt{.idx}. Если нет, то переходите к пункту~\ref{step:final}. +\item Для генерации предметного указателя, выполните команду:\\ + \fbox{\texttt{makeindex -s gind.ist \textit{имя}}}\\ + (где \textit{имя}~--- имя основного файла без расширения). +\item Снова обработайте \LaTeX{} файл \texttt{.dtx} \label{step:next} +\item В конце концов, для удобства чтения сгенерируйте файл + \texttt{.ps} или \texttt{.pdf}.\label{step:final} +\end{enumerate} + +Иногда вы обнаружите, что генерируется также файл \texttt{.glo} +(глоссарий). В этом случае между шагами~\ref{step:next} и +\ref{step:final} выполните команду: + +\noindent\texttt{makeindex -s gglo.ist -o \textit{имя}.gls \textit{имя}.glo} + +\noindent и еще раз запустить \LaTeX{} с файлом \texttt{.dtx}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Chapter on pdfLaTeX +% French original by Daniel Flipo 14/07/2001 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Работа с pdf\LaTeX{}}\label{sec:pdftex}\index{PDF} +\secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}% + +PDF~--- формат гипертекстовых\index{гипертекст} документов. Так же, +как на веб-страницах, некоторые слова в документе отмечаются как +гиперссылки. Они ведут к другим точкам документа или к другим +документам. Если вы ткнете мышкой в такую гиперссылку, то попадете в +точку назначения ссылки. В контексте \LaTeX{} это означает, что все +появления в тексте команд \ci{ref} и \ci{pageref} становятся +гиперссылками. Кроме того, оглавление, предметный указатель и другие +аналогичные структуры становятся наборами гиперссылок. + +Б\'ольшая часть веб-страниц сегодня пишется на языке HTML +\emph{(HyperText Markup Language, язык гипертекстовой разметки)}. Для +научных документов этот формат имеет два серьезных недостатка: +\begin{enumerate} +\item Включение в HTML математических формул, вообще говоря, не + поддерживается. Несмотря на наличие такого стандарта, большинство + используемых сегодня Интернет-навигаторов его не поддерживают или не + имеют необходимых шрифтов. +\item Печать HTML-документов возможна, но результаты сильно зависят от + используемой платформы и навигатора. Результат и близко не подходит + к тому качеству, которое мы привыкли ожидать в мире \LaTeX{}. +\end{enumerate} + +Было множество попыток создать трансляторы из \LaTeX{} в +HTML. Некоторые из них были даже довольно успешны в том смысле, что +они могут генерировать корректные веб-страницы из обычных файлов +\LaTeX{}. Но все из них для получения результата предпринимают +множество упрощений. Когда вы начинаете использовать сложные +возможности \LaTeX{} и внешние пакеты, такие трансляторы обычно +начинают давать сбои. Авторы, желающие сохранить уникально +типографское качество своих документов даже публикуясь на WWW, +обращаются к PDF \emph{(Portable Document Format, формат мобильных + документов)}, который сохраняет верстку документа и позволяет +использовать гипертекстовую навигацию. Большинство современных +веб-навигаторов имеют встроенные средства для просмотра документов в +формате PDF. + +Даже несмотря на наличие средств просмотра форматов DVI и \PSi{} почти +на любой платформе, вы увидите, что гораздо более распространены +\wi{Acrobat Reader} и \wi{xpdf}, служащие для просмотра +PDF-документов. Поэтому, предоставляя PDF-версии ваших документов, вы +делаете их более доступными для потенциальных читателей. + +\subsection{PDF-документы для WWW} + +Создание PDF-файла из исходного текста в \TeX{} очень просто +благодаря программе pdf\TeX{}, разработанной +H\`an~Th\'{\^e}~Th\`anh. pdf\TeX{} генерирует PDF аналогично тому, как +\TeX{} генерирует DVI. Существует также pdf\LaTeX{}, генерирующий PDF +из исходного теста +\LaTeX{}.\index{pdftex@pdf\TeX}\index{pdftex@pdf\LaTeX} + +И pdf\TeX{}, и pdf\LaTeX{} автоматически устанавливаются большинством +современных дистрибутивов \TeX{}, таких, как te\TeX{}, fp\TeX{}, +Mik\TeX{}, \TeX{}Live и CMac\TeX{}. + +Для генерации PDF вместо DVI достаточно вместо команды \texttt{latex + file.tex} использовать команду \texttt{pdflatex file.tex}. Там, где +\LaTeX{} не запускается из командной строки, вы можете найти +специальную кнопку в \TeX{}ControlCenter. + +В \LaTeX{} размер бумаги определяется при помощи необязательных +параметров команды \ci{documentclass}, например, \texttt{a4paper} или +\texttt{letterpaper}. Этот механизм работает и в pdf\LaTeX{}, но, +помимо этого, pdf\TeX{} должен знать также и физический размер бумаги, +а не только размер области, используемой для верстки.\index{размер + бумаги} Если вы используете пакет \pai{hyperref} +(см. стр.~\pageref{ssec:pdfhyperref}), размер бумаги будет установлен +автоматически. В ином случае вам нужно сделать это вручную, поместив в +преамбулу документа следующие строчки: +\begin{code} +\begin{verbatim} +\pdfpagewidth=\paperwidth +\pdfpageheight=\paperheight +\end{verbatim} +\end{code} + +Следующий раздел более детально поясняет разницу между <<нормальным>> +\LaTeX{} и pdf\LaTeX{}. Основные отличия сосредоточены в трех +областях: в используемых шрифтах, в форматах включаемых изображений и +в методах ручного формирования гиперссылок. + +\subsection{Шрифты} + +\wi{pdf\LaTeX} может работать с любыми видами шрифтов (растровые +шрифты PK, TrueType, \PSi{} type~1\dots), но основной для \LaTeX{} +формат, растровые шрифты PK, делают документ, просматриваемый на +экране при помощи Acrobat Reader, очень коряво выглядящим. Для +генерации нормально отображаемых документов лучше всего +использовать шрифты \PSi{} Type~1. + +\PSi{} Type~1 версии шрифтов Computer Modern и AMSFonts были +произведены компаниями Blue Sky Research и Y\&Y, Inc., которые потом +передали авторские права на них Американскому Математическому Обществу +(AMS). В начале 1997 года эти шрифты были сделаны публично доступными, +и в настоящее время включены в большинство дистрибутивов \TeX{}. + +Однако, если вы используете \LaTeX{} для создания документов на +языках, отличных от английского, вам может быть нужно использовать +шрифты EC, LH или CB (см. обсуждение шрифтов \texttt{OT1} на +стр.~\pageref{OT1}). Владимир Волович создал шрифтовой пакет cm-super, +который охватывает полные наборы шрифтов EC/TC, EC Concrete, EC Bright +и LH. Он доступен по адресу \CTANref|fonts/ps-type1/cm-super|, а также +включен в дистрибутивы \TeX{}Live7 и Mik\TeX{}. Аналогично, греческие +шрифты CB в формате Type~1, созданные Apostolos +Syropoulos, доступны по адресу \CTANref|fonts/greek/cb|. К сожалению, +оба эти набора не отличаются типографским качеством Type~1 CM шрифтов +от Blue Sky/Y\&Y. Хинты (hints) в них сгенерированы автоматически, и +потому документы могут на экране выглядеть не так красиво, как при +использовании Type~1 CM шрифтов Blue Sky/Y\&Y. На устройствах с +высоким разрешением они дают результаты, идентичные оригинальным +растровым шрифтам EC/LH/CB. + +Если вы создаете документы на латинице, у вас есть несколько других +возможностей: +\begin{itemize} +\item Использовать пакет \pai{aeguill}, известный также как + \emph{Almost European Computer Modern with Guillemets}. Просто + поместите в преамбулу строчку + \verb+\usepackage{aeguill}+\paih{aeguill} для использования + виртуальных шрифтов AE вместо шрифтов EC. +\item Использовать пакет \pai{mltex}, который, однако, работает, + только если ваш pdf\TeX{} скомпилирован с опцией \wi{mltex}. +\end{itemize} + +Виртуальный набор шрифтов AE, аналогично системе {Ml\TeX}, заставляет +\TeX{} верить, что он имеет полные 256-символьные шрифты, создавая +большинство недостающих знаков из шрифта CM и переупорядочивая их в +кодировку EC, позволяя таким образом использовать высококачественные +CM шрифты в формате Type~1, доступные на большинстве систем. Поскольку +шрифт теперь имеет кодировку T1, для европейских языков, основанных на +латинице, нормально работает механизм переносов. Единственный +недостаток этого подхода~--- в том, что искусственные символы AE не +работают в функции поиска Acrobat Reader, так что вы не сможете искать +слова с акцентированными символами. + +Для русского языка аналогичным решением будет использование +виртуальных шрифтов C1, доступных по адресу +\texttt{ftp://ftp.vsu.ru/pub/tex/font-packs/c1fonts}. Эти шрифты +комбинируют стандартные шрифты CM Type~1 из набора Bluesky со шрифтами +CMCYR Type~1 из наборов Paradissa и BaKoMa, доступных на +CTAN. Поскольку шрифты Paradissa содержат только русские буквы, шрифты +C1 не имеют других кириллических символов. + +Иным решением может быть переключение на другие \PSi{} Type~1 +шрифты. Некоторые из них даже поставляются с каждой копией Acrobat +Reader. Из-за того, что эти шрифты имеют другие метрики символов, ваша +верстка изменится. Обычно текст начинает занимать больше места, так +как CM шрифты очень компактны. Кроме того, общая визуальная +согласованность документа будет хуже, так как шрифты Times, Helvetica +и Courier (основные кандидаты на такую замену) не были спроектированы +работать вместе в одном документе, как это было сделано в шрифтах +Computer Modern. + +Для этой цели существуют два готовых набора шрифтов: пакет \pai{pxfonts}, +базирующийся в качестве основного на шрифте \emph{Palatino}, и пакет +\pai{txfonts}, базирующийся на шрифте \emph{Times}. Чтобы использовать +эти пакеты, поместите в преамбулу следующие строчки: +\begin{code} +\begin{verbatim} +\usepackage[T1]{fontenc} +\usepackage{pxfonts} +\end{verbatim} +\end{code} + +Замечание: после компиляции исходного текста вы можете увидеть в +\texttt{.log}-файле строчки наподобие следующей: +\begin{verbatim} +Warning: pdftex (file eurmo10): Font eurmo10 at ... not found +\end{verbatim} +Они означают, что не был найден определенный шрифт, использованный в +документе. Вам придется устранить эту проблему, так как результирующий +PDF-документ может \emph{вообще не показывать страницы с + отсутствующими символами}. + +Вся эта непростая проблема со шрифтами, особенно отсутствие хорошего +набора шрифтов EC, равного по качеству шрифтам CM в формате Type~1, +занимает умы множества людей, так что постоянно появляются новые +решения. + +\subsection{Использование графики} +\label{ssec:pdfgraph} + +Включение графики в документ лучше всего работает при помощи пакета +\pai{graphicx} (см. стр.~\pageref{eps}). С указанием значения +\texttt{pdftex} в опции \emph{driver} этот пакет успешно работает с +pdf\LaTeX{}: +\begin{code} +\begin{verbatim} +\usepackage[pdftex]{color,graphicx} +\end{verbatim} +\end{code} +В приведенном примере включен также пакет \pai{color}, поскольку +использование цвета в веб-документах вполне естественно. + +Это все были хорошие новости, а теперь~--- плохие: графика в формате +\EPSi{} не работает с pdf\LaTeX{}. Если вы не зададите расширение +файла в команде \ci{includegraphics}, пакет \pai{graphicx} выберет +подходящий файл, основываясь на значении опции \emph{driver}. Для +значения \texttt{pdftex} это будут форматы \texttt{.png}, +\texttt{.pdf}, \texttt{.jpg}, \texttt{.mps} (\MP\index{metapost@\MP}) +и \texttt{.tif}~--- но \emph{не} \texttt{.eps}. + +Простой способ обхода этой проблемы~--- сконвертировать ваши файлы EPS +в формат PDF утилитой \texttt{epstopdf}, присутствующей во многих +системах. Для векторной графики это замечательное решение. Для растров +(фотографий, сканированных документов) это не идеально, потому что +формат PDF сам по себе поддерживает включение растровых изображений +формата PNG и JPEG. Формат PNG хорош для снимков экрана и других +изображений с небольшим количеством цветов. Формат JPEG хорош для +фотографий из-за своей компактности. + +Иногда может быть желательно вообще не рисовать геометрические фигуры, +а описать их на языке специальных команд, таком, как +\MP\index{metapost@\MP}, включенном в большинство дистрибутивов +\TeX{}. В комплекте вы найдете полное руководство по его +использованию. + +\subsection{Гиперссылки} +\label{ssec:pdfhyperref} + +Пакет \pai{hyperref} превратит все внутренние ссылки документа в +гиперссылки. Для этого необходимо некоторое шаманство, в частности, +команда \verb+\usepackage[pdftex]{hyperref}+ должна быть +\emph{последней} командой в преамбуле вашего документа. + +Для настройки поведения пакета \pai{hyperref} мы можете использовать: +\begin{itemize} +\item разделенный запятыми список опций \pai{hyperref}, после опции + \texttt{pdftex}\\ + \verb+\usepackage[pdftex]{hyperref}+ +\item отдельные команды + \verb+\hypersetup{+\emph{опции}\verb+}+. +\end{itemize} + +Единственная обязательная опция~--- \texttt{pdftex}, остальные лишь +позволяют изменять поведение \pai{hyperref} по +умолчанию.\footnote{Стоит заметить, что пакет \pai{hyperref} не + ограничен работой с pdf\TeX{}. Его можно настроить для внедрения в + нормальную выдачу DVI специфичной для PDF информации. Она потом + попадает в PS-файл, генерируемый программой \texttt{dvips}, и, + наконец, используется Adobe Distiller, который можно использовать + для преобразования PS-файлов в формат PDF.} В следующем списке +значения по умолчанию приведены прямым шрифтом: + +\begin{description} + \item [\texttt{bookmarks (=true,\textit{false})}] показывает или + прячет полосу закладок при просмотре документа + \item [\texttt{unicode (=false,\textit{true})}] позволяет + использовать в закладках нелатинские символы + \item [\texttt{pdftoolbar (=true,\textit{false})}] показывает или + прячет линейку инструментов Acrobat + \item [\texttt{pdfmenubar (=true,\textit{false})}] показывает или + прячет меню Acrobat + \item [\texttt{pdffitwindow (=true,\textit{false})}] меняет + начальное увеличение документа (страница размером в окно Acrobat) + \item [\texttt{pdftitle (=\{text\})}] устанавливает заголовок, + отображаемый Acrobat в окне \texttt{Document Info} + \item [\texttt{pdfauthor (=\{text\})}] задает автора PDF-документа + \item [\texttt{pdfnewwindow (=true,\textit{false})}] определяет, + должно ли открываться новое окно, если гиперссылка ведет в другой + документ + \item [\texttt{colorlinks (=false,\textit{true})}] окружает ссылки + цветными рамками (\texttt{false}) или меняет цвет текста ссылок + (\texttt{true}). Цвет можно настроить следующими опциями (показаны + значения по умолчанию): + \begin{description} + \item [\texttt{linkcolor (=red)}] цвет внутренних ссылок (разделы, + страницы и т.п.), + \item [\texttt{citecolor (=green)}] цвет ссылок на литературу, + \item [\texttt{filecolor (=magenta)}] цвет ссылок на файлы, + \item [\texttt{urlcolor (=cyan)}] цвет ссылок на URL (почта, WWW). + \end{description} +\end{description} + +\vspace{\baselineskip} + +Если вас устраивают значения по умолчанию: +\begin{code} +\begin{verbatim} +\usepackage[pdftex]{hyperref} +\end{verbatim} +\end{code} + +Чтобы открыть окно закладок и раскрасить ссылки (значения +\texttt{=true} можно опускать): +\begin{code} +\begin{verbatim} +\usepackage[pdftex,bookmarks,colorlinks]{hyperref} +\end{verbatim} +\end{code} + +Когда PDF-документы предназначаются для печати, цветные ссылки лучше +не использовать, потому что они окажутся на бумаге серыми, затрудняя +чтение. Лучше использовать цветные рамки, которые не печатаются: +\begin{code} +\begin{verbatim} +\usepackage{hyperref} +\hypersetup{colorlinks=false} +\end{verbatim} +\end{code} +\noindent или делать ссылки черными: +\begin{code} +\begin{verbatim} +\usepackage{hyperref} +\hypersetup{colorlinks,% + citecolor=black,% + filecolor=black,% + linkcolor=black,% + urlcolor=black,% + pdftex} +\end{verbatim} +\end{code} + +Если вам нужно задать информацию для секции \texttt{Document Info}: +\begin{code} +\begin{verbatim} +\usepackage[pdfauthor={Pierre Desproges}% + pdftitle={Des femmes qui tombent},% + pdftex]{hyperref} +\end{verbatim} +\end{code} + +\vspace{\baselineskip} + +В дополнение к автоматически генерируемым гиперссылкам, возможно +вставлять ссылки в явной форме с помощью команды +\begin{lscommand} +\ci{href}\verb|{|\emph{url}\verb|}{|\emph{text}\verb|}| +\end{lscommand} + +Код +\begin{code} +\begin{verbatim} +Веб-сайт \href{http://www.ctan.org}{CTAN}. +\end{verbatim} +\end{code} +\noindent генерирует на выходе ``\href{http://www.ctan.org}{CTAN}''; +при нажатии мышью на слово ``\textcolor{magenta}{CTAN}'' вы попадете +на веб-сайт CTAN. + +Если ссылка ведет не на URL, а на локальный файл, вы тоже можете +пользоваться командой \ci{href}: +\begin{verbatim} + Полный текст документа находится \href{manual.pdf}{здесь}. +\end{verbatim} +\noindent что сгенерирует текст ``Полный текст документа находится +\textcolor{cyan}{здесь}.'' Нажатие на слово +``\textcolor{cyan}{здесь}'' откроет файл \texttt{manual.pdf}. (Имя +файла рассматривается относительно положения текущего документа.) + +Автор статьи может облегчить читателю отсылку откликов, используя +команду \ci{href} внутри команды \ci{author} на титульной странице +документа: +\begin{code} +\begin{verbatim} +\author{Mary Oetiker $<$\href{mailto:mary@oetiker.ch}% + {mary@oetiker.ch}$>$ +\end{verbatim} +\end{code} +Заметим, что ссылка с почтовым адресом дополняет адрес, приведенный +собственно на странице. Это сделано потому, что ссылка\\ +\verb+\href{mailto:mary@oetiker.ch}{Mary Oetiker}+\\ +будет удобна из-под Acrobat Reader, но будет невидима после печати +документа на бумаге. + +\subsection{Проблемы со ссылками} + +Когда сбрасываются счетчики, например, когда команда \ci{mainmatter} +из класса документов \texttt{book} сбрасывает счетчик номера страницы +в~1, генерируются сообщения наподобие такого: +\begin{verbatim} +! pdfTeX warning (ext4): destination with the same identifier + (name{page.1}) has been already used, duplicate ignored +\end{verbatim} +Происходит это потому, что во вводной части книги уже была страница +номер~1, и все ссылки на ``страницу 1'' будут уже не уникальными, +отсюда и сообщение ``\verb+duplicate+ has been \verb+ignored+.'' + +Избавиться от этого можно, задав \texttt{hyperref} опцию +\texttt{plainpages=false}. К сожалению, поможет она только в отношении +счетчика страниц. Еще более радикальной мерой может быть использование +опции \texttt{hypertexnames=false}, но после этого перестанут работать +ссылки на страницы из предметного указателя. + +\subsection{Проблемы с закладками} + +Текст закладок не всегда выглядит так, как вам бы этого хотелось. В +закладках допустим гораздо меньший набор символов, чем в нормальном +\LaTeX{}, поскольку они являются ``просто текстом''. Обычно hyperref +замечает связанные с этим проблемы и выводит предупреждение: +\begin{code} +\begin{verbatim} +Package hyperref Warning: +Token not allowed in a PDFDocEncoded string: +\end{verbatim} +\end{code} + +Вы можете обойти эту проблему, предоставив текстовую строчку для +закладки взамен проблемного текста: +\begin{lscommand} +\ci{texorpdfstring}\verb|{|\emph{текст \TeX{}а}\verb|}{|\emph{текст закладки}\verb|}| +\end{lscommand} + +Математические выражения являются первыми кандидатами на такую замену: +\begin{code} +\begin{verbatim} +\section{\texorpdfstring{$E=mc^2$}% + {E\ =\ mc\texttwosuperior}} +\end{verbatim} +\end{code} +\noindent что превращает \verb+\section{$E=mc^2$}+ в ``E=mc2'' для +цели создания закладки. + +Цвета тоже плохо себя ведут в закладках: +\begin{code} +\verb+\section{\textcolor{red}{Red !}}+ +\end{code} +\noindent выдает строку ``redRed!''. Команда \verb+\textcolor+ +игнорируется, но ее аргумент (red) печатается. + +Гораздо лучший результат получается так: +\begin{code} +\verb+\section{\texorpdfstring{\textcolor{red}{Red !}}{Red\ !}}+ +\end{code} + + +\section{Совместимость исходных текстов \LaTeX{} и pdf\LaTeX{}} +\label{sec:pdfcompat} + +В идеале ваш документ должен одинаково хорошо компилироваться как +\LaTeX{}, так и pdf\LaTeX{}. Основная проблема тут~--- включение +графики. Простым решением является \emph{повсеместное умолчание} +расширения файлов в команде \ci{includegraphics}. В этом случае +компилятор автоматически выбирает файл требуемого формата из текущего +каталога. Все, что нужно будет сделать,~--- это создать подходящие +версии графических файлов. \LaTeX{} будет выбирать \texttt{.eps}, а +pdf\LaTeX{} постарается включить файлы с расширениями \texttt{.png}, +\texttt{.pdf}, \texttt{.jpg}, \texttt{.mps} или \texttt{.tif} (в +указанном порядке). + +Для случаев, когда вам все же нужно будет использовать разный код для +обычной и PDF-версии документа, можно где-то в самом начале документа +сделать следующее: +\begin{code} +\begin{verbatim} +\newif\ifPDF +\ifx\pdfoutput\undefined\PDFfalse +\else\ifnum\pdfoutput > 0\PDFtrue + \else\PDFfalse + \fi +\fi +\end{verbatim} +\end{code} +Здесь определена специальная команда, позволяющая легко писать +условный код: +\begin{code} +\begin{verbatim} +\ifPDF + \usepackage[T1]{fontenc} + \usepackage{aeguill} + \usepackage[pdftex]{graphicx,color} + \usepackage[pdftex]{hyperref} +\else + \usepackage[T1]{fontenc} + \usepackage[dvips]{graphicx} + \usepackage[dvips]{hyperref} +\fi +\end{verbatim} +\end{code} +В этом примере пакет hyperref включен даже в не-PDF-версии. Сделано +это для того, чтобы команда \ci{href} работала в любом случае, и ее +использование не надо было оборачивать в условные операторы. + +Заметим, что в современных дистрибутивах \TeX{} (например, в +\TeX{}Live), выбор \texttt{pdftex} или \texttt{dvips} при вызове +\pai{graphicx} и \pai{color} происходит автоматически в соответствии с +настройками конфигурационных файлов \texttt{graphics.cfg} и +\texttt{color.cfg}. + +\section{Создание презентаций при помощи \pai{pdfscreen}} +\label{sec:pdfscreen} +\secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr} +Результаты вашей работы вы можете демонстрировать на доске, +проектором, или прямо с вашего ноутбука при помощи одной из +презентационных программ. + +\wi{pdf\LaTeX} с пакетом \pai{pdfscreen} позволяет вам создавать +презентации в PDF, столь же красивые и живые, как и в +\emph{PowerPoint}, но много более мобильные, поскольку Acrobat Reader +существует на более широком спектре систем. + +Пакет \pai{pdfscreen} использует пакеты \pai{graphicx}, \pai{color} и +\pai{hyperref} с опциями, настроенными для экранной презентации. + +\begin{figure}[htbp] +\begin{verbatim} +\documentclass[pdftex,12pt]{article} +%%% misc extensions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[latin1]{inputenc} +\usepackage[english]{babel} +\usepackage[T1]{fontenc} +\usepackage{aeguill} +%%% pdfscreen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[screen,panelleft,chocolate]{pdfscreen} +% Screen Format +\panelwidth=25mm +%% height width +\screensize{150mm}{200mm} +%% left right top bottom +\marginsize{42mm}{8mm}{10mm}{10mm} +% Color or image for background +\overlayempty +\definecolor{mybg}{rgb}{1,0.9,0.7} +\backgroundcolor{mybg} +% Logo +\emblema{MyLogo} +%%% For PPower4 (post-processor) %%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{pause} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +\begin{slide} +\begin{itemize} +\item Good News\dots \pause +\item Bad News +\end{itemize} +\end{slide} +\end{document} +\end{verbatim} +% \begin{center} +% \includegraphics[width=.8\textwidth]{pdfscr} + \caption{Пример входного файла pdfscreen} + \label{fig:pdfscr} +% \end{center} +\end{figure} + +Для создания таких документов обычно используется класс +\texttt{article}. Рис.~\ref{fig:pdfscr} показывает пример входного +файла. Сначала загружается пакет \pai{pdfscreen} с соответствующими +опциями: +\begin{description} +\item[\texttt{screen}]: экранная презентация. Для бумажной презентации + пользуйтесь опцией \texttt{print}. +\item[\texttt{panelright}] размещает панель навигации в правой части + экрана. Если панель нужна слева, пользуйтесь опцией + \texttt{panelleft}. Если она не нужна вообще, используйте + \texttt{nopanel}. +\item[\texttt{french}] или любой другой поддерживаемый язык. Текст на + навигационных кнопках выводится на соответствующем языке. Эта опция + не зависит от опций пакета \pai{babel}. Если ваш язык не + поддерживается \pai{pdfscreen}, вы все же можете локализовать кнопки + панели при помощи файла \texttt{pdfscreen.cfg}, см., например, + \texttt{pdfscreen.cfg.specimen}. +\item[\texttt{chocolate}] цветовая схема навигационной панели. Другие + варианты: \texttt{gray}, \texttt{orange}, \texttt{palegreen}, + \texttt{bluelace} и \texttt{blue}, используемый по умолчанию. +\end{description} + +Далее настраивается формат экрана. Поскольку презентация всегда +разворачивается на полный экран, это можно использовать для настройки +размера шрифта: +\begin{description} +\item[\ci{panelwidth}] определяет ширину навигационной панели +\item[\ci{screensize}\textmd{\texttt{\{}\emph{ширина}\texttt{\}\{}\emph{высота}\texttt{\}}}] + определяет ширину и высоту экрана, включая навигационную панель +\item[\ci{marginsize}\textmd{\texttt{\{}\emph{левое}\texttt{\}\{}\emph{правое}\texttt{\}\{}\emph{верхнее}\texttt{\}\{}\emph{нижнее}\texttt{\}}}] + определяет поля документа. В приведенном примере документ не + центрируется, поскольку номера разделов остаются на левом поле. +\end{description} + +Можно использовать фоновое изображение в любом из поддерживаемых +pdf\TeX{} форматов командой +\begin{lscommand} +\ci{overlay}\verb|{|\emph{изображение}\verb|}| +\end{lscommand} +\noindent или, если вы предпочитаете пустой фон, можно задать его цвет +командой +\begin{lscommand} +\ci{background}\verb|{|\emph{цвет}\verb|}| +\end{lscommand} +Наконец, если вы хотите поместить на навигационную панель эмблему +вашей организации, пользуйтесь командой +\begin{lscommand} +\ci{emblema}\verb|{|\emph{файл-с-эмблемой}\verb|}| +\end{lscommand} + +Если вы верите в убедительность последовательной демонстрации пунктов +вашего рассказа, можете использовать пакет \pai{pause}. Он предлагает +команду \ci{pause}. Ее можно помещать в текст в те места, где вы +хотите задержать отображение вашего документа. Пакет \pai{pause} +является частью системы \texttt{PPower4} ($P^4$: \emph{PDF + Presentation Post-Processor}), которая берет документ, +сгенерированный pdf\TeX{}, и заставляет его петь, плясать и собирать +деньги. Командная строчка выглядит так: +\begin{lscommand} +\verb+ppower4 xy.pdf xyz.pdf+ +\end{lscommand} + +Для управления тем, что отражается на каждом слайде, пользуйтесь +окружением \verb+\begin{slide}+ \ldots \verb+\end{slide}+. Содержимое +каждого слайда отображается вертикально центрированным на своей +странице. + +Компилируя приведенный пример, мы получим ошибку: +\begin{verbatim} +! pdfTeX warning (dest): name{contents} has been + referenced but does not exist, replaced by a fixed one +\end{verbatim} +Причина тут в том, что на навигационной панели есть кнопка, ведущая к +оглавлению, а наш пример оглавления не имеет. + +Если вам захочется отображать оглавление прямо на навигационной +панели, используйте \pai{pdfscreen} с опцией +\texttt{paneltoc}. Понятно, это будет удовлетворительно выглядеть +только если ваше оглавление содержит немного коротких +заголовков. Можно задавать дополнительные короткие заголовки для ваших +разделов квадратными скобками в командах секционирования. + +Это короткое введение пробежало только по самым верхам возможностей +\pai{pdfscreen} и \texttt{PPower4}. Каждый из них включает собственное +подробное руководство. + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort2e" +%%% End: diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/t-fvrbex.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/t-fvrbex.tex new file mode 100644 index 00000000000..c59e52b4b23 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/t-fvrbex.tex @@ -0,0 +1,213 @@ +%% +%% This is file `t-fvrbex.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fvrb-ex.dtx (with options: `t-fvrbex') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from t-fvrbex.tex. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file fvrb-ex.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +%% Packages `fvrb-ex' (`fvrb-ex', `hbaw' and `hcolor') +%% +%% Denis Girou (CNRS/IDRIS - France) +%% March 27, 1998 +%% +%% File `t-fvrbex' +%% +\documentclass{article} + +\newif\ifpstricks +\IfFileExists{pstricks.sty} +{\usepackage[bawcolor,pstricks]{fvrb-ex}\pstrickstrue} +{\usepackage[bawcolor]{fvrb-ex}} + +\begin{document} + +\title{Test file for the `\textsf{fvrb-ex}' package} +\author{Denis Girou\\CNRS/IDRIS\\Orsay -- France\\ + {\footnotesize email: Denis.Girou@idris.fr}} +\date{Version 1.2\\March 27, 1998} + +\maketitle + +\RecustomVerbatimEnvironment{Verbatim}{Verbatim} + {gobble=2,commentchar=ё,numbers=left,numbersep=3pt,frame=single} + +\section{\texttt{Example} environment} + +\begin{Verbatim} + \begin{Example} + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Example} +\end{Verbatim} + +\begin{Example} + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{Example} + +\begin{Verbatim} + \begin{Example}[frame=lines,framerule=1mm,numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{Example} +\end{Verbatim} + +\begin{Example}[frame=lines,framerule=1mm,numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{Example} + +\section{\texttt{CenterExample} environment} + +\begin{Verbatim} + \begin{CenterExample}[frame=single,numbers=right] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{CenterExample} +\end{Verbatim} + +\begin{CenterExample}[frame=single,numbers=right] + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{CenterExample} + +\begin{Verbatim} + \begin{CenterExample}[frame=lines,numbers=left] + ^^a7HLa^^b5First^^b6 verbatim line. + ^^a7HLb^^b5Second^^b6 verbatim line. + ^^a7HLCBWz^^b5Third^^b6 verbatim line. + \end{CenterExample} +\end{Verbatim} + +\begin{CenterExample}[frame=lines,numbers=left] + ^^a7HLa^^b5First^^b6 verbatim line. + ^^a7HLb^^b5Second^^b6 verbatim line. + ^^a7HLCBWz^^b5Third^^b6 verbatim line. +\end{CenterExample} + +\section{\texttt{SideBySideExample} environment} + +\begin{Verbatim} + \begin{SideBySideExample}[xrightmargin=5cm,frame=lines, + numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. + \end{SideBySideExample} +\end{Verbatim} + +\begin{SideBySideExample}[xrightmargin=5cm,frame=single,numbers=left] + First verbatim line. + Second verbatim line. + Third verbatim line. +\end{SideBySideExample} + +\ifpstricks % If PSTricks is available + +\section{\texttt{PCenterExample} environment} + +\begin{Verbatim} + \fvset{frame=lines,framerule=0.5mm,numbers=left} + + \begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} + \end{PCenterExample} + + \showgrid + \begin{PCenterExample}(-1,-1)(1,1) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} + \end{PCenterExample} +\end{Verbatim} + +{\fvset{frame=lines,framerule=0.5mm,numbers=left} +\begin{PCenterExample}(-0.5,-0.5)(0.5,0.5) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} +\end{PCenterExample} +\showgrid +\begin{PCenterExample}(-1,-1)(1,1) + \setlength{\unitlength}{1cm} + \put(0,0){\circle{1}} +\end{PCenterExample} +} + +\section{\texttt{PSideBySideExample} environment} + +\begin{Verbatim} + \fvset{frame=single,xrightmargin=5cm} + \begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse*[linecolor=yellow](2,1) + \end{PSideBySideExample} + \showgrid + \begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=dashed](2,1) + \end{PSideBySideExample} +\end{Verbatim} + +{\fvset{frame=single,xrightmargin=5cm} +\begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse*[linecolor=yellow](2,1) +\end{PSideBySideExample} + +\showgrid +\begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=dashed](2,1) +\end{PSideBySideExample} +} + +\begin{Verbatim} + \fvset{frame=single,xrightmargin=5cm} + \begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=^^a7HLCBWe^^b5dashed^^b6](2,1) + \end{PSideBySideExample} + \begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) + \psellipse[linestyle=^^a7HLe^^b5dotted^^b6](2,1) + \end{PSideBySideExample} +\end{Verbatim} + +{\fvset{frame=single,xrightmargin=5cm} +\begin{PSideBySideExample}(-2,-1)(2,1) + \psellipse[linestyle=^^a7HLCBWe^^b5dashed^^b6](2,1) +\end{PSideBySideExample} +\begin{PSideBySideExample}[numbers=right](-2,-1)(2,1) + \psellipse[linestyle=^^a7HLe^^b5dotted^^b6](2,1) +\end{PSideBySideExample} + +\else % If PSTricks is not available +\begin{quote} + \section{\texttt{PCenterExample} and \texttt{PSideBySideExample} +environments} + + \textbf{\large Warning!} These two environments are not demonstrated here, +because PSTricks was not found on this platform. +\end{quote} +\fi + +\end{document} +\endinput +%% +%% End of file `t-fvrbex.tex'. diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/things.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/things.tex new file mode 100644 index 00000000000..c4fb31d00c7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/things.tex @@ -0,0 +1,809 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Things you need to know +% $Id: things.tex,v 1.1.1.1 2002/02/26 10:04:20 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Это нужно знать} +\begin{intro} + Первая часть этой главы содержит краткий обзор философии и истории + \LaTeX{}. Вторая часть главы фокусируется на основных структурах + документов \LaTeX{}. После чтения этой главы вы должны иметь общее + представление о том, как работает \LaTeX{}. В дальнейшем это поможет + вам объединить всю новую информацию в единую картину. +\end{intro} + + +\section{Названия} +\subsection{\TeX} + +\sloppy{}\TeX{}~--- это компьютерная программа, созданная Дональдом Кнутом +(\index{Knuth, Donald E.}Donald E.~Knuth)~\cite{texbook}. Она +предназначена для верстки текста и математических формул. Кнут начал +писать \TeX{} в 1977 году для изучения потенциала цифрового +печатающего оборудования, которое начало появляться в это время, +надеясь, в особенности, обратить тенденцию ухудшения типографского +качества, которую он видел на примере его собственных книг и статей. +\TeX{}, в том виде, в каком мы его сегодня используем, был выпущен в +1982 году с некоторыми добавлениями в 1989 (лучшая поддержка 8-битных +символов и различных языков). \TeX{} знаменит своей чрезвычайной +стабильностью, работой на различных типах компьютеров и практически +полным отсутствием ошибок. Номер версии \TeX{} сходится к $\pi$ и +сейчас равен $3.14159$. + +\TeX{} произносится как <<тех>>. В среде \texttt{ASCII} \TeX{} +нужно писать как \texttt{TeX}. + +\subsection{\LaTeX} + +\LaTeX{}~--- макропакет, позволяющий авторам верстать и печатать их +работы с высоким типографским качеством, при помощи заранее +определенных, профессиональных макетов. \LaTeX{} был написан +\index{Lamport, Leslie}{\lat Leslie Lamport}~\cite{manual}. В качестве +механизма для верстки он использует \TeX{}. Сейчас \LaTeX{} +поддерживает \index{Mittelbach, Frank}Frank Mittelbach. + +%В 1994 году пакет \LaTeX{} был обновлен командой +%\index{LaTeX3@\LaTeX3}\LaTeX3 во главе с \index{Mittelbach, +% Frank}Frank Mittelbach. В нем были сделаны некоторые давно +%ожидавшиеся улучшения, и вновь объединены все варианты \LaTeX{}, +%разошедшиеся с выпуска много лет назад \index{LaTeX 2.09@\LaTeX{} +% 2.09}версии \LaTeX{}~2.09. Чтобы не путать эту новую версию со +%старой, она называется \index{LaTeX 2e@\LaTeXe}\LaTeXe. Эта +%документация описывает именно \LaTeXe{}. + +\LaTeX{} произносится как <<лэйтех>> или как <<латех>>. Если вы +ссылаетесь на \LaTeX{} в \texttt{ASCII} окружении, пишите +\texttt{LaTeX}. \LaTeXe{} пишется как \texttt{LaTeX2e}. + +%Рисунок \ref{components} на странице~\pageref{components} показывает, +%как работают вместе \TeX{} и \LaTeXe{}. Он взят из \texttt{wots.tex} +%(автор Kees van der Laan). + +%\begin{figure}[btp] +%\begin{lined}{0.8\textwidth} +%\begin{center} +%\input{kees.fig} +%\end{center} +%\end{lined} +%\caption{Составляющие \TeX{} системы}\label{components} +%\end{figure} + +\section{Основы} + +\subsection{Автор, дизайнер и верстальщик} + +Для того, чтобы опубликоваться, авторы отдают свои рукописи в +издательство. Затем один из дизайнеров издательства определяет макет +документа (ширину столбцов, шрифты, интервалы выше и ниже заголовков +и~т.п.). Дизайнер записывает свои инструкции в рукописи и отдает ее +верстальщику, который верстает книгу в соответствии с этими +инструкциями. + +Дизайнер--человек пытается понять, что автор имел в виду, когда писал +свою рукопись. Он определяет заголовки глав, цитаты, примеры, +формулы и прочее, исходя из своего профессионального опыта и из +содержания рукописи. + +В среде \LaTeX, \LaTeX{} берет на себя роль дизайнера книги, используя +\TeX{} в качестве верстальщика. Но \LaTeX~--- это всего лишь +программа, и, следовательно, нуждается в более четких инструкциях. +Автор должен предоставить дополнительную информацию, описывающую +логическую структуру своей работы. Эта информация записывается в текст +в виде <<команд \LaTeX{}>>. + +Это в корне отличается от \wi{WYSIWYG}\footnote{What you see is what + you get.} подхода, принятого в большинстве современных текстовых +процессоров, таких как \emph{MS Word} или \emph{Corel WordPerfect}. В +этих приложениях авторы форматируют документ интерактивно в процессе +набора текста на компьютере. В процессе работы они могут видеть на +экране как будет выглядеть их работа, когда, в конце концов, она будет +напечатана. + +При использовании \LaTeX{} обычно невозможно увидеть итоговую картину во +время печатания текста. Ее, однако, можно посмотреть на экране после +обработки файла \LaTeX. Затем можно внести исправления перед +собственно печатью. + +\subsection{Дизайн макета} + +Типографский дизайн~--- это профессия. Неопытные авторы часто +допускают серьезные ошибки форматирования, предполагая, что дизайн +книги~--- это большей частью вопрос эстетики: <<если документ выглядит +художественно, значит, он хорошо отдизайнен>>. Но, так как документ +предназначен для чтения, а не для вывешивания в картинной галерее, +удобство его чтения и понимания гораздо более важны, нежели красота. +Например: +\begin{itemize} +\item Размер шрифта и нумерация заголовков должны выбираться с тем, + чтобы сделать структуру глав и разделов ясной для читателя. +\item Строка должна быть достаточно короткой, чтобы не напрягать глаза + читателя, и достаточно длинной для красивого заполнения страницы. +\end{itemize} + +С \wi{WYSIWYG} системами авторы часто производят эстетически приятные +документы со слабо выраженной или невыдержанной структурой. \LaTeX{} +предотвращает такие ошибки форматирования, заставляя автора объявлять +\emph{логическую} структуру его документа. Затем уже \LaTeX{} выбирает +наиболее подходящий макет (раскладку) документа. + +\subsection{Преимущества и недостатки} + +Тема, часто обсуждаемая, когда люди из мира \wi{WYSIWYG} встречаются с +пользователями \LaTeX{},~--- <<\wi{преимущества \LaTeX} перед +нормальными текстовыми процессорами>>, или наоборот. Лучшее, что вы +можете сделать, когда начинается такая дискуссия,~--- это пригнуться, +так как она часто выходит из-под контроля. Однако, иногда вы не можете +уклониться~\ldots + + +\medskip\noindent Вот вам некоторое оружие. Основные преимущества +\LaTeX{} перед обычными текстовыми процессорами: +\begin{itemize} + +\item Готовые профессионально выполненные макеты, делающие документы + действительно выглядящими <<как изданные>>. +\item Удобно поддержана верстка математических формул. +\item Пользователю нужно выучить лишь несколько понятных команд, + задающих логическую структуру документа. Ему практически никогда не + нужно возиться собственно с макетом документа. +\item Легко изготавливаются даже сложные структуры, типа примечаний, + оглавлений, библиографий и прочее. +\item Для решения многих типографских задач, не поддерживаемых + напрямую базовым \LaTeX{}, есть свободно распространяемые + дополнительные пакеты. Например, существуют пакеты для включения + \PSi{}-графики или для верстки библиографий в точном + соответствии с конкретными стандартами. Многие из этих + дополнительных компонент описаны в \companion. +\item \LaTeX{} поощряет авторов писать хорошо структурированные + документы, так как именно так \LaTeX{} и работает~--- путем + спецификации структуры. +\item \TeX{}, форматирующее сердце \LaTeXe{}, чрезвычайно мобилен и + свободно доступен. Поэтому система работает практически на всех + существующих платформах. + +% +% Add examples ... +% +\end{itemize} + +\medskip + +\noindent\LaTeX{} имеет также и некоторые недостатки, но, кажется, мне +трудно найти среди них заметные, хотя, я уверен, другие вам найдут их +сотни \texttt{;-)} + +\begin{itemize} +% что за фигня? +% \item \LaTeX{} плохо работает у продавших свою душу~\ldots +\item Хотя предопределенные макеты имеют множество настраиваемых + параметров, создание полностью нового макета документа не очень + просто и занимает много времени.\footnote{Говорят, что это~--- одна + из основных целей будущей системы \LaTeX3.}\index{LaTeX3@\LaTeX3} +\item Очень сложно писать неструктурированные и неорганизованные + документы. +\item Ваша морская свинка может так до конца и не понять концепцию + логической разметки, несмотря на видимые первые успехи. +\end{itemize} + +\section{Исходные файлы \LaTeX{}} + +Исходными данными для \LaTeX{} являются обычный текстовый файл в +\texttt{ASCII}. Его можно создать в любом текстовом редакторе. Он +содержит текст документа вместе с командами, указывающими \LaTeX{}, +как верстать текст. + +\subsection{Пробелы} + +<<Пустые>> символы, такие, как пробел или табуляция, трактуются +\LaTeX{} одинаково, как <<\wi{пробел}>>. \emph{Несколько + последовательных} пустых символов\index{пустые символы} трактуются +как \emph{один} <<пробел>>. Пустые символы в начале строки обычно +игнорируются, а единичный перевод строки воспринимается как +<<пробел>>. \index{пробел!в начале строки} + +Пустая строка между двух строк текста определяет конец +абзаца. \emph{Несколько} пустых строк трактуются так же, как +\emph{одна} пустая строка. Ниже приведен пример. Справа~--- текст из +входного файла, слева~--- форматированный вывод. + +\begin{example} +Неважно, вставляете ли вы +один или несколько +пробелов между словами. + +Пустая строчка начинает +новый абзац. +\end{example} + +\subsection{Спецсимволы} + +Следующие символы являются \index{символы!зарезервированные} +зарезервированными символами, которые либо имеют в \LaTeX{} +специальное значение, либо имеются не во всех шрифтах. Если вы введете +их в текст напрямую, то они обычно не напечатаются, а заставят +\LaTeX{} сделать что--нибудь, вами вовсе не предусмотренное. + +\begin{code} +%\verb.$ & % # _ { } ~ ^ \ . %$ +\verb.# $ % ^ & _ { } ~ \ . %$ +\end{code} + +Как вы позже увидите, эти символы можно использовать в ваших +документах, добавляя к ним префикс <<\verb|\|>>: + +\begin{example} +\# \$ \% \^{} \& \_ \{ \} \~{} +\end{example} + +Прочие символы, как и многие, многие другие, можно набрать +специальными командами в математических формулах или как акценты. Знак~<<\verb|\|>> \emph{нельзя} вводить, добавляя перед ним еще один, так +как эта команда (\verb|\\|) используется для разрыва +строки.\footnote{Вместо этого пользуйтесь командой + \texttt{\$}\ci{backslash}\texttt{\$}. Она дает `$\backslash$'.} + +\subsection{Команды \LaTeX{}} + +Команды\index{команды} \LaTeX{} чувствительны к регистру и принимают +одну из следующих двух форм: + +\begin{itemize} +\item Они начинаются с символа \wi{backslash} <<\verb|\|>> и + продолжаются именем, состоящим только из букв. Имена команд + завершаются пробелом, цифрой или любой другой <<не-буквой>>. +\item Они состоят из <<\verb|\|>> и ровно одного небуквенного символа. +\end{itemize} + +% +% \\* doesn't comply ! +% + +% +% Can \3 be a valid command ? (jacoboni) +% +\label{whitespace} + + +\LaTeX{} игнорирует пробелы после команд. Если вы хотите получить +\index{пробел!после команды}пробел после команды, вы должны поместить +или <<\verb|{}|>> и пробел, или специальную команду пробела после +имени команды. <<\verb|{}|>> не дает \LaTeX{} игнорировать все пробелы +после имени команды. + +\begin{example} +Я слышал, что Кнут разделяет +людей, работающих с \TeX{} +на \TeX{}ников и \TeX пертов.\\ +Сегодня~--- \today +\end{example} + +Некоторые команды нуждаются в \index{параметр}параметре, который +должен быть задан между \index{фигурные скобки}фигурными +скобками~<<\verb|{ }|>> после имени команды. Некоторые команды +поддерживают \wi{необязательные параметры}, которые добавляются после +имени команды в \index{квадратные скобки}квадратных +скобках~<<\verb|[ ]|>>. Следующий пример использует некоторые +команды \LaTeX. Не задумывайтесь над ними, они будут разъяснены позже. + +\begin{example} +Вы можете \textsl{положиться} +на меня! +\end{example} + +\begin{example} +Пожалуйста, начните новую +строчку прямо тут!\newline +Спасибо! +\end{example} + +\subsection{Комментарии} +\index{комментарии} + +Когда в процессе обработки входного файла \LaTeX{} встречает символ +\verb|%|, он игнорирует остаток текущей строки, возврат каретки и все +пробелы в начале следующей строки. + +Этим можно пользоваться для добавления в исходный файл замечаний, +которые не будут выводиться на печать. + +\begin{example} +Это Spercal% + ifragilist% + icexpialidocious +\end{example} + +Знаком \texttt{\%} можно также пользоваться, чтобы разбить длинные строчки в +тех местах, где не разрешаются пробелы или переводы строк. + +\sloppy{}Для более длинных комментариев можно также пользоваться окружением +\ei{comment}, предоставляемым пакетом \pai{verbatim}. Это означает, +что, для использования окружения \ei{comment}, вы должны к преамбуле +вашего документа добавить команду \verb|\usepackage{verbatim}|: + +\begin{example} +Это~--- еще один +\begin{comment} +довольно глупый, +но полезный +\end{comment} +пример вставки комментариев +в ваш документ. +\end{example} + +Заметьте, что это не будет работать внутри сложных окружений, +например, математики. + + +\section{Структура входного файла} + +Когда \LaTeXe{} обрабатывает входной файл, он ожидает от него +следования определенной \index{структура файла}структуре. Так, каждый +входной файл должен начитаться с команды +\begin{code} +\verb|\documentclass{...}| +\end{code} +Она указывает, документ какого типа вы собираетесь писать. После +этого, вы можете включать команды, влияющие на стиль документа в +целом, или загружать \index{пакет}пакеты, добавляющие новые +возможности в систему \LaTeX. Для загрузки такого пакета используется +команда +\begin{code} +\verb|\usepackage{...}| +\end{code} + +Когда вся настройка закончена,\index{преамбула}\footnote{Область между + \texttt{\bs documentclass} и \texttt{\bs + begin$\mathtt{\{}$document$\mathtt{\}}$} называется + \emph{преамбулой}.} вы начинаете тело текста командой + +\begin{code} +\verb|\begin{document}| +\end{code} + +Теперь вы вводите текст с командами \LaTeX. В конце документа вы +добавляете команду +\begin{code} +\verb|\end{document}| +\end{code} +Все, что следует после нее, \LaTeX{} игнорирует. + +Рис.~\ref{mini} показывает содержимое минимального файла для \LaTeXe. +Несколько более сложный \wi{входной файл} дан на +рис.~\ref{document}.\trfootnote{В данный пример вставлен также +минимальный набор конмад, необходимый для поддержки русского +языка. Исторически сложились несколько пакетов русификации \LaTeX, +здесь используется пакет \pai{babel}, являющийся стандартным средством +локализации \TeX{}. Если вы работаете на очень старой системе, +возможно, вам нужно будет пользоваться другими установленными +средствами. Проконсультируйтесь с вашим \guide{} или с +администратором.} + +\begin{figure}[!bp] +\begin{lined}{6cm} +\begin{Verbatim} +\documentclass{article} +\usepackage[koi8-r]{inputenc} +\usepackage[russian]{babel} +\begin{document} +Краткость~--- сестра таланта. +\end{document} +\end{Verbatim} +\end{lined} +\caption{Минимальный файл \LaTeX{}} \label{mini} +\end{figure} + +\begin{figure}[!bp] +\begin{lined}{10cm} +\begin{Verbatim} +\documentclass[a4paper,11pt]{article} +\usepackage[russian]{babel} +\begin{document} +% определяем титул +\author{Б.~Тоботрас} +\title{Минимализм} +\frenchspacing +\begin{document} +% генерируем титул +\maketitle +% вставляем оглавление +\tableofcontents +\section{Начало} +Вот тут и начинается моя замечательная статья. +\section{Конец} +\ldots{} а тут она кончается. +\end{document} +\end{Verbatim} +\end{lined} +\caption{Пример реалистичной журнальной статьи} \label{document} +\end{figure} + +\section{Типичная сессия работы с \LaTeX{}} + +Можно ручаться, что вам уже не терпится попробовать маленький пример +\LaTeX{}-файла, приведенный на странице~\pageref{mini}. Давайте +попробуем. Сам по себе, \LaTeX{} не включает графического +интерфейса. Он~--- просто программа, обрабатывающая указанный входной +файл. Некоторые дистрибутивы \LaTeX{} включают графическую оболочку, +где вы можете выбрать мышкой компиляцию указанного файла. В других системах +вам нужно набирать команды в тексторовм режиме.Предполагается, что на +вашей машине \LaTeX{} установлен и работает\footnote{Это обычно так в + любой современной Unix-системе.}. + +\begin{enumerate} +\item + + Отредактируйте или создайте входной файл \LaTeX{}. Этот файл должен + быть плоским ASCII текстом. В Unix любой редактор создаст вам именно + это. В Windows вы должны убедиться, что вы сохраняете файл в формате + ASCII, или \emph{Plain text}. Выбирая имя для файла, добавьте + расширение \eei{.tex}. + +\item + + Обработайте ваш входной файл \LaTeX{}. Если все пройдет без ошибок, + вы получите файл \texttt{.dvi}. Чтобы получить правильное оглавление + и перекрестные ссылки, вам может понадобиться запустить \LaTeX{} + несколько раз. Если во входном файле есть ошибка, \LaTeX{} укажет + вам на нее и остановит обработку входного файла. Чтобы вернуться в + командную строку, нажмите \texttt{ctrl-D}. + +\begin{lscommand} +\verb+latex foo.tex+ +\end{lscommand} + +\item + Теперь вы можете просмотреть файл \texttt{.dvi}. Это можно сделать + по-разному. Можно посмотреть его на экране командой +\begin{lscommand} +\verb+xdvi foo.dvi &+ +\end{lscommand} +Она работает только в среде Unix с X11. Если вы работаете под + Windows, попробуйте \texttt{yap} (``yet another previewer''). + + Вы таже можете преобразовать файл DVI в \PSi{} для печати или + просмотра при помощи Ghostscript: + +\begin{lscommand} +\verb+dvips -Pcmz foo.dvi -o foo.ps+ +\end{lscommand} + +Если вам повезет, то в составе вашей системы будет программа +\texttt{dvipdf}, которая может преобразовать ваши \texttt{.dvi}-файлы +прямо в PDF. +\begin{lscommand} +\verb+dvipdf foo.dvi+ +\end{lscommand} + + +\end{enumerate} + + +\section{Макеты документов} + +\subsection{Классы документов}\label{sec:documentclass} + +Первое, что \LaTeX{} должен знать при обработке входного файла, это +тип создаваемого автором документа. Он задается командой +\ci{documentclass}. +\begin{lscommand} +\ci{documentclass}\verb|[|\emph{опции}\verb|]{|\emph{класс}\verb|}| +\end{lscommand} +\noindent Здесь \emph{класс} определяет тип создаваемого документа. +Таблица~\ref{documentclasses} перечисляет классы документов, +рассматриваемые в этом введении. В состав \LaTeXe{} входят +дополнительные классы для других документов, включая письма и слайды. +Параметр \emph{\wi{опции}} изменяет поведение класса документа. Опции +должны разделяться запятыми. В таблице~\ref{options} перечислены самые +употребительные опции стандартных классов документов. + +\begin{table}[!bp] +\caption{Классы документов} \label{documentclasses} +\begin{lined}{12cm} +\begin{description} + +\item [\normalfont\texttt{article}] для статей в научных журналах, + презентаций, коротких отчетов, программной документации, приглашений\ldots + \index{класс!article} +\item [\normalfont\texttt{report}] для более длинных отчетов, + содержащих несколько глав, небольших книжек, диссертаций\ldots + \index{класс!report} +\item [\normalfont\texttt{book}] для настоящих книг \index{класс!book} +\item [\normalfont\texttt{slides}] для слайдов. Использует большие + буквы без засечек. Вместо этого можно использовать + Foil\TeX.\footnote{\CTANref|macros/latex/contrib/supported/foiltex|} + \index{класс!slides}\index{foiltex} +\end{description} +\end{lined} +\end{table} + +\begin{table}[!bp] +\caption{Опции классов документов} \label{options} +\begin{lined}{12cm} +\begin{flushleft} +\begin{description} +\item[\normalfont\texttt{10pt}, \texttt{11pt}, \texttt{12pt}] \quad + Устанавливает размер основного шрифта документа. Если ни одна из + этих опций не указана, подразумевается \texttt{10pt}. + \index{шрифт!документа, размер}\index{размер основного шрифта} +\item[\normalfont\texttt{a4paper}, \texttt{letterpaper}\ldots] \quad + Определяет размер листа. По умолчанию подразумевается + \texttt{letterpaper}. Так же могут быть указаны \texttt{a5paper}, + \texttt{b5paper}, \texttt{executivepaper} и \texttt{legalpaper}. + \index{лист!legal}\index{размер листа}\index{лист!A4}\index{лист!letter} + \index{лист!A5}\index{лист!B5}\index{лист!executive} + +\item[\normalfont\texttt{fleqn}] \quad Выключные формулы будут + выровнены влево, а не отцентрированы. + +\item[\normalfont\texttt{leqno}] \quad Формулы нумеруются слева, а не + справа. + +\item[\normalfont\texttt{titlepage}, \texttt{notitlepage}] \quad + Указывает, должна начинаться новая страница после заголовка + документа\index{заголовок документа} или нет. По умолчанию класс + \texttt{article} не начинает новую страницу, а \texttt{report} и + \texttt{book}~--- начинают. \index{лист!титульный} + +\item[\normalfont\texttt{onecolumn}, \texttt{twocolumn}] \quad Заставляет \LaTeX{} + набирать документ в \wi{один столбец} или в \wi{два столбца}. + +\item[\normalfont\texttt{twoside, oneside}] \quad Выбирает одно- или + двусторонний вывод. По умолчанию классы \texttt{article} и + \texttt{report} используют \wi{односторонний вывод}, класс + \texttt{book}~--- \wi{двусторонний вывод}. Заметьте, что опция + \texttt{twoside} \emph{не} заставляет ваш принтер на самом деле + печатать с двух сторон. + +\item[\normalfont\texttt{landscape}] \quad Меняет положение страницы на + ландшафтное. + +\item[\normalfont\texttt{openright, openany}] \quad Делает главы + начинающимися или только на правой странице, или на первой + доступной. Это не работает с классом \texttt{article}, так как он + ничего не знает о главах. Класс \texttt{report} по умолчанию + начинает главы на следующей странице, а класс \texttt{book}~--- на + правой. +\end{description} +\end{flushleft} +\end{lined} +\end{table} + +Пример: Входной файл для документа \LaTeX{} может начинаться строкой +\begin{code} +\ci{documentclass}\verb|[11pt,twoside,a4paper]{article}| +\end{code} +она заставляет \LaTeX{} набирать документ как \emph{статью}, с базовым +размером шрифта \emph{одиннадцать пунктов} и форматировать документ +для \emph{двусторонней} печати на бумаге \emph{формата A4}. + +\subsection{Пакеты} +\index{пакет} В процессе написания вашего документа, вы, вероятно, +обнаружите, что в некоторых областях базовый \LaTeX{} не сможет решить +ваши проблемы. Если вы захотите включить в документ +графику\index{графика}, \wi{цветной текст} или исходный код программы +из внешнего файла, вам нужно будет расширить возможности \LaTeX{}. +Такие расширения называются пакетами. Пакеты активизируются командой +\begin{lscommand} +\ci{usepackage}\verb|[|\emph{опции}\verb|]{|\emph{пакет}\verb|}| +\end{lscommand} +\noindent Где \emph{пакет}~--- это имя пакета, а \emph{опции}~--- +список ключевых слов, включающих специальные свойства пакета. +Некоторые пакеты включены в основную поставку \LaTeXe{} (см. +таблицу~\ref{packages}). Другие предоставляются отдельно. +Дополнительная информация об установленных у вас пакетах может +содержаться в \guide{}. Основной источник информации о пакетах +\LaTeX{}~--- это \companion{}. Она содержит описания сотен пакетов +вместе с информацией о том, как писать ваши собственные расширения для +\LaTeXe{}. + + +\begin{table}[btp] +\caption{Некоторые из распространяемых с \LaTeX{} пакетов} \label{packages} +\begin{lined}{11cm} +\begin{description} +\item[\normalfont\pai{doc}] Позволяет документировать программы на \LaTeX{}.\\ + Описан в \texttt{doc.dtx}\footnote{Этот файл должен быть установлен + на вашей системе, и вы можете получить \texttt{dvi} файл, + напечатав \texttt{latex doc.dtx} в любом каталоге, где вы имеете + права на запись. То же самое относится ко всем прочим файлам, + упомянутым в этой таблице.} и в \companion. + +\item[\normalfont\pai{exscale}] Предоставляет масштабированные версии + расширенных математических шрифтов.\\ + Описан в \texttt{ltexscale.dtx}. + +\item[\normalfont\pai{fontenc}] Указывает, какую кодировку + шрифта\index{кодировка шрифта} + должен использовать \LaTeX{}.\\ + Описан в \texttt{ltoutenc.dtx}. + +\item[\normalfont\pai{ifthen}] Предоставляет команды вида `если + \ldots, то выполнять \ldots, иначе выполнять \ldots'.\\ Описан в + \texttt{ifthen.dtx} и в \companion. + +\item[\normalfont\pai{latexsym}] Чтобы подключить шрифт специальных + символов \LaTeX{}, нужно использовать пакет \texttt{latexsym}. + Описан в \texttt{latexsym.dtx} и в \companion. + +\item[\normalfont\pai{makeidx}] Предоставляет команды для генерации + указателей. Описан в разделе~\ref{sec:indexing} и в \companion. + +\item[\normalfont\pai{syntonly}] Обрабатывает документ, не печатая + его. + +\item[\normalfont\pai{inputenc}] Позволяет указать входную кодировку, + такую как ASCII, ISO Latin-1, ISO Latin-2, 437/850 IBM + code pages, Apple Macintosh, Next, ANSI-Windows или определяемую + пользователем. Описан в \texttt{inputenc.dtx}. +\end{description} +\end{lined} +\end{table} + +\clearpage + +\subsection{Стили страницы} + +\LaTeX{} поддерживает три предопределенных комбинации верхнего +колонтитула и нижнего +колонтитула\index{колонтитул!верхний}\index{колонтитул!нижний}~--- так +называемые \wi{стили страницы}. Параметр \emph{стиль} команды +\index{стиль страницы!plain@\texttt{plain}}\index{plain@\texttt{plain}}% +\index{стиль страницы!headings@\texttt{headings}}\index{headings@\texttt{headings}}% +\index{стиль страницы!empty@\texttt{empty}}\index{empty@\texttt{empty}}% +\begin{lscommand} +\ci{pagestyle}\verb|{|\emph{стиль}\verb|}| +\end{lscommand} +\noindent определяет, какой из них использовать. +Предопределенные стили страницы перечислены в таблице~\ref{pagestyle}. + +\begin{table}[!hbp] +\caption{Предопределенные стили страницы \LaTeX} \label{pagestyle} +\begin{lined}{12cm} +\begin{description} + +\item[\normalfont\texttt{plain}] печатает номера страниц внизу + страницы в середине нижнего колонтитула. Этот стиль установлен по + умолчанию. + +\item[\normalfont\texttt{headings}] печатает название текущей главы и + номер страницы в верхнем колонтитуле каждой страницы, а нижний + колонтитул остается пустым. (Этот стиль использован в данном + документе.) + +\item[\normalfont\texttt{empty}] делает и верхние, и нижние колонтитулы + пустыми. + +\end{description} +\end{lined} +\end{table} + +Возможно сменить стиль текущей страницы командой +\begin{lscommand} +\ci{thispagestyle}\verb|{|\emph{стиль}\verb|}| +\end{lscommand} +Описание того, как создавать ваши собственные стили колонтитулов, +смотрите в \companion{}, а также в разделе~\ref{sec:fancy} на +странице~\pageref{sec:fancy}. +% +% Pointer to the Fancy headings Package description ! +% + +\section{Встречающиеся типы файлов} + +Работая с \LaTeX{}, вы вскоре начнете путаться в куче файлов с +различными расширениями\index{расширение}. Ниже перечислены различные +\wi{типы файлов}, используемые при работает с \TeX{}. Заметьте, что +это не полный список расширений, но, если вы найдете не упомянутое +расширение, которое считаете важным,~--- уведомите, пожалуйста, +автора. + +%% \begin{description} +%% \item[\eei{.tex}] Входной файл \LaTeX{} или \TeX{}. Компилируется +%% командой \texttt{latex}. +%% \item[\eei{.sty}] Макропакет \LaTeX{}. Этот файл загружается в +%% документ командой \ci{usepackage}. +%% \item[\eei{.dtx}] Документированный \TeX{}. Это~--- основной формат +%% распространения стилевый файлов \LaTeX{}. Если вы обработаете файл +%% \texttt{.dtx}, вы получите документированный макрокод пакета, +%% содержащегося в этом файле. +%% \item[\eei{.ins}] Инсталлятор для файлов, содержащихся в +%% соответствующем файле \texttt{.dtx}. После получения пакета из +%% Интернета, вы обычно получаете файлы \texttt{.dtx} и +%% \texttt{.ins}. Запустите \LaTeX{} с файлом \texttt{.ins}, чтобы +%% распаковать файл \texttt{.dtx}. +%% \item{\eei{.fd}] Файл описания шрифта, описывающий шрифт для \LaTeX{}. +%% \item[\eei{.cls}] Файл класса, определяющий вид вашего +%% документа. Выбирается командой \ci{documentclass}. +%% \end{description} + +Следующие файлы генерируются, когда \LaTeX{} обрабатывает входной +файл: + +\begin{description} +\item[\eei{.dvi}] Device Independent file (файл, не зависящий от + устройства). Это~--- основной результат запуска \LaTeX{}. Содержимое + его можно увидеть при помощи программы отображения DVI, или + распечатать программой \texttt{dvips} или аналогичной. +\item[\eei{.log}] Содержит детальный отчет о том, что происходило в + последний прогон компиляции. +\item[\eei{.toc}] Хранит заголовки всех разделов. Читается в следующий + проход компиляции и используется при генерации оглавления. +\item[\eei{.lof}] Аналог \texttt{.toc} для списка иллюстраций. +\item[\eei{.lot}] То же, для списка таблиц. +\item[\eei{.aux}] Еще один файл, передающий информацию между проходами + компиляции. Кроме все прочего, используется для генерации + перекрестных ссылок. +\item[\eei{.idx}] Если ваш документ содержит предметный указатель, + \LaTeX{} помещает все слова для указателя в этот файл. Обработайте + его программой \texttt{makeindex}. Подробнее смотрите в + разделе~\ref{sec:indexing} на странице~\pageref{sec:indexing}. +\item[\eei{.ind}] Обработанный файл \texttt{.idx}, готовый ко + включению в ваш документ при следующем проходе компиляции. +\item[\eei{.ilg}] Журнал работы \texttt{makeindex}. +\end{description} + + +% Package Info pointer +% +% + + + + +% +% Add Info on page-numbering, ... +% \pagenumbering + +\section{Большие проекты} +При работе с большими документами вам может быть удобно разделить +входной файл на несколько частей. \LaTeX{} содержит две команды, +которые помогают это делать. + +\begin{lscommand} +\ci{include}\verb|{|\emph{файл}\verb|}| +\end{lscommand} +\noindent Эту команду можно использовать в теле документа, чтобы +включить в него содержимое другого файла. Заметьте, что \LaTeX{} +начнет новую страницу, прежде, чем обрабатывать материал, содержащийся +в \emph{файле}. + +Вторая команда может использоваться только в преамбуле. Она указывает + \LaTeX{} читать только некоторые из включенных (\verb|\include|) + файлов. + +\begin{lscommand} +\ci{includeonly}\verb|{|\emph{filename}\verb|,|\emph{filename}% +\verb|,|\ldots\verb|}| +\end{lscommand} +После выполнения в преамбуле документа этой команды будут выполняться +только те команды \ci{include}, чьи имена файлов перечислены в +аргументе команды \ci{includeonly}. + +Команда \ci{include} начинает верстку включаемого текста на новой +странице. Это удобно при использовании \ci{includeonly}, потому что +границы страниц не будут двигаться, даже когда некоторые включаемые +файлы пропускаются. Иногда это неудобно, и в этом случае вы можете +использовать команду + +\begin{lscommand} +\ci{input}\verb|{|\emph{filename}\verb|}| +\end{lscommand} +\noindent Она просто включает содержимое указанного файла. + +Для быстрой проверки документа используйте пакет \pai{syntonly}. Он +заставляет \LaTeX{} пробежать по документу, проверяя синтаксис и +использование команд, но не генерируя выходного файла DVI. \LaTeX{} в +этом режиме работает быстрее, экономя ваше время. Синтаксис очень +прост: + +\begin{verbatim} +\usepackage{syntonly} +\syntaxonly +\end{verbatim} + +Когда вы захотите получить выходной файл, просто закомментируйте +вторую строчку, добавив знак процента. + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort" +%%% End: diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/title.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/title.tex new file mode 100644 index 00000000000..1c0cdfa8981 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/title.tex @@ -0,0 +1,75 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: The title page +% $Id: title.tex,v 1.2 2003/03/19 20:57:47 oetiker Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx\pdfoutput\undefined % We're not running pdftex +\else +\pdfbookmark{Title Page}{title} +\fi +\newlength{\centeroffset} +\setlength{\centeroffset}{-0.5\oddsidemargin} +\addtolength{\centeroffset}{0.5\evensidemargin} +%\addtolength{\textwidth}{-\centeroffset} +\thispagestyle{empty} +\vspace*{\stretch{1}} +\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} +\flushright +{\Huge\bfseries Не очень краткое\\ +введение в \LaTeXe + +} +\noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex] +\hfill\emph{\Large или \LaTeXe{} за \pageref{verylast} минут} +\end{minipage}} + +\vspace{\stretch{1}} +\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} +\flushright +{\bfseries +Tobias Oetiker\\[1.5ex] +Hubert Partl, Irene Hyna и Elisabeth Schlegl\\[3ex]} +Версия~4.12, 13 April, 2003\\[3cm] +Перевод: Б.~Тоботрас, 22 мая 2003~г. +\end{minipage}} + +%\addtolength{\textwidth}{\centeroffset} +\vspace{\stretch{2}} + + +\pagebreak +\begin{small} + +% \selectlanguage{english} + + Copyright \copyright 1995-2002 Tobias Oetiker and all the Contributers to + LShort. All rights reserved. + + This document is free; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This document is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\@. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this document; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +% \selectlanguage{russian} + +\end{small} + + +\endinput + +% + +% Local Variables: +% TeX-master: "lshort2e" +% mode: latex +% mode: flyspell +% End: diff --git a/Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex b/Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex new file mode 100644 index 00000000000..635c516c728 --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-russian/src/typeset.tex @@ -0,0 +1,1635 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Typesetting Part of LaTeX2e Introduction +% $Id: typeset.tex,v 1.3 1998/03/26 15:36:54 oetiker Exp oetiker $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Верстка текста} + +\begin{intro} +После прочтения предыдущей главы вы должны представлять, из чего +состоит документ \LaTeX{}. Вторая глава заполняет эту структуру всем +необходимым для производства реальных материалов. +\end{intro} + +\section{Структура текста и языка} +\secby{Hanspeter Schmid}{hanspi@schmid-werren.ch} + +Основная цель написания текста~--- передать читателю идеи, информацию +или знания. Читатель лучше поймет текст, если эти идеи +структурированы, и намного лучше увидит и почувствует эту структуру, +если типографская форма отражает логическую и смысловую структуру +содержания. + +\LaTeX{} отличается от других систем верстки в том, что вам нужно лишь +задавать ему логическую и смысловую структуру текста. Он затем +выбирает типографскую форму текста в соответствии с <<правилами>>, +заданными в файле класса документа и в различных стилевых файлах. + +Самый важный элемент текста в \LaTeX{} (и в наборе вообще)~--- +абзац. Он называется <<элементом текста>>, потому что абзац является +той типографской формой, в которую облекается одна связная мысль или +идея. В следующих разделах вы узнаете, как вы можете вызвать перевод +строки, например, при помощи \texttt{\bs\bs} и начало абзаца, +например, оставив пустую строку. Поэтому, если начинается новая мысль, +должен начинаться новый абзац, а, если нет,~--- используйте переводы +строки. Если вы сомневаетесь в вашем разбиении на абзацы, подумайте о +вашем тексте как о носителе идей и мыслей. Если вы начали новый абзац, +продолжая изложение той же мысли,~--- убирайте начало нового +абзаца. Если на протяжении абзаца начинается совершенно новая +мысль~--- разбивайте его на два. + +Большинство людей совершенно не понимает важности разумного разбиения +текста на абзацы. Многие не задумываются о значении разрыва абзацев +или, особенно в \LaTeX{}, начинают абзацы, не зная этого. Последнюю +ошибку особенно легко сделать, когда в текст включаются +уравнения. Посмотрите на следующие примеры и разберитесь, почему +иногда в них используются пустые строчки (разрывы параграфов), а +иногда~--- нет. (Если вы еще не понимаете всех команд достаточно, +чтобы понять примеры, прочтите, пожалуйста, эту и следующую главы и +затем вернитесь к примерам снова.) + +% Example 1 +\begin{example} +\ldots когда Эйнштейн +ввел свою формулу +\begin{equation} + e = m \cdot c^2 \; , +\end{equation} +которая является самой +широко известной и самой +мало понятной физической +формулой. +\end{example} + +% Example 2 +\begin{example} +\ldots откуда следует +закон тока Кирхгофа: +\begin{equation} + \sum_{k=1}^{n} I_k = 0 \; . +\end{equation} + +Закон напряжения Кирхгофа +может быть выведен \ldots +\end{example} + +% Example 3 +\begin{example} +\ldots который имеет +несколько преимуществ. + +\begin{equation} + I_D = I_F - I_R +\end{equation} +является ядром совершенно +другой модели транзистора. +\ldots +\end{example} + +Следующая, более маленькая, единица текста~--- предложение. В +английском тексте после точки, завершающей предложение, ставится +б\'ольший пробел, чем после точки, стоящей после сокращения. \LaTeX{} +старается определить, какую из них вы имели в виду. Если он ошибается, +вы должны ему подсказать. Это объяснено далее в этой главе. + +Структура текста охватывает даже отдельные части +предложений. Большинство языков использует очень сложные правила +пунктуации, но во многих языках (включая немецкий и английский) вы +расставите почти все запятые на места, просто помня, что они означают: +короткую остановку в потоке изложения. Если вы не уверены в своих +запятых, прочтите предложение вслух, останавливаясь на каждой +запятой. Если где-то это прозвучит странно, уберите эту запятую, если +вы почувствуете необходимость остановки в другом месте, вставьте +запятую.\trfootnote{Все это мало применимо для русского, но я решил не + выбрасывать этих абзацев из перевода, вдруг они кому-нибудь помогут писать + по-английски.} + +Наконец, абзацы текста должны быть также логично структурированы на +более высоком уровне, объединяясь в главы, разделы, и так +далее. Однако, типографский эффект записи, например, +\verb|\section{|\texttt{Структура текста и языка}\verb|}| +обычно достаточно очевиден, чтобы было сразу ясно, как использовать +эти высокоуровневые структуры. + +\section{Разбиение на строки и страницы} + +\subsection{Выровненные абзацы} + +Книги часто верстаются так, чтобы все строчки имели одинаковую длину. +\LaTeX{} вставляет необходимые разрывы строк\index{разрывы строк} и +пробелы между словами, оптимизируя форматирование абзаца как целого. +При необходимости он также переносит слова, которые не помещаются на +строке. От класса документа зависит то, как верстаются абзацы. Обычно +каждый абзац начинается с красной строки, а дополнительного интервала +между ними нет. Подробности смотрите в разделе~\ref{parsp}. + +В некоторых случаях может быть необходимо указать \LaTeX{} разорвать +строку: +\begin{lscommand} +\ci{\bs} или \ci{newline} +\end{lscommand} +\noindent начинают новую строку, не начиная нового абзаца. + +\begin{lscommand} +\ci{\bs*} +\end{lscommand} +\noindent запрещает, кроме того, разрыв страницы после вставленного +разрыва строки. + +\begin{lscommand} +\ci{newpage} +\end{lscommand} +\noindent начинает новую страницу. + +\begin{lscommand} +\ci{linebreak}\verb|[|\emph{n}\verb|]|, +\ci{nolinebreak}\verb|[|\emph{n}\verb|]|, +\ci{pagebreak}\verb|[|\emph{n}\verb|]| и +\ci{nopagebreak}\verb|[|\emph{n}\verb|]| +\end{lscommand} +\noindent разрывают строку, запрещают разрыв строки, разрывают +страницу и запрещают разрыв страницы, соответственно. Необязательный +аргумент \emph{n} позволяет автору влиять на их действие. Он может +быть равен числу от нуля до четырех. Устанавливая \emph{n} в значение, +меньшее~4, вы оставляете \LaTeX{} возможность игнорировать вашу +команду, если результат будет очень плох. Не путайте эти команды +<<разрыва (break)>> с командами <<начала (new)>>. Даже если вы +зададите команду <<разрыва>>, \LaTeX{} попытается выровнять правую +границу страницы и общую высоту страницы, как описано в следующей +секции. Если вы действительно хотите начать <<новую строчку>>, +используйте соответствующую команду. + +\LaTeX{} всегда пытается производить наилучшее из возможных разбиений +строк. Если он не может найти способ разбить строки в соответствии со +своими стандартами, он позволяет одной строке выступать из абзаца +вправо. \LaTeX{} затем выводит диагностику (<<\wi{overfull hbox}>>) во +время обработки входного файла. Чаще всего это случается, когда +\LaTeX{} не может найти место для переноса слова.\footnote{Хотя + \LaTeX{} и дает вам предупреждение, такие строки не всегда легко + найти. Если вы в команде \ci{documentclass} используете опцию + \texttt{draft}, такие строки будут отмечены толстой черной линией на + правых полях.} Давая команду \ci{sloppy}, вы можете сказать, чтобы +\LaTeX{} несколько ослабил свои стандарты. Тогда он сможет +предотвратить такие слишком длинные строки, увеличивая интервалы между +словами~--- даже если конечный вывод будет не оптимален. В этом случае +пользователь получит предупреждение (<<\wi{underfull hbox}>>). В +большинстве случаев результат выглядит не очень хорошо. Команда +\ci{fussy} действует в обратную сторону. + + +\subsection{Переносы} \label{hyph} + +\LaTeX{} переносит слова, когда это необходимо. Если алгоритм +переносов не находит правильных точек переноса, вы можете исправить +положение, сказав \TeX{} об исключении при помощи следующих команд. + +Команда +\begin{lscommand} +\ci{hyphenation}\verb|{|\emph{список слов}\verb|}| +\end{lscommand} +\noindent вызывает перенос слов, перечисленных в ее аргументе, только +в местах, отмеченных <<\verb|-|>>. Эта команда должна даваться в +преамбуле входного файла, и должна содержать только слова, состоящие +из обычных букв. Правила переноса запоминаются для языка, активного в +момент обратки команды \ci{hyphenation}. Это значит, что, если вы +поместите ее в преамбулу документа, она будет влиять на английские +переносы. Если вы поместите ее после команды \verb|\begin{document}|, + используя при этом поддержку национальных языков, например, + \pai{babel}, то переносы будут запомнены для языка, + активизированного при помощи \pai{babel}. + + Следующий пример разрешает переносы в слове <>, так же, + как и в слове <>, и запрещает переносы в словах + <>, <> и <>. В аргументе не допускаются + специальные символы. + +Пример: +\begin{code} +\verb|\hyphenation{FORTRAN Hy-phen-a-tion}| +\end{code} + +Команда \ci{-} вставляет в слово выборочный перенос. Он также +становится единственной разрешенной точкой переноса в этом слове. Эта +команда в особенности полезна для слов, содержащих специальные символы +(например, символы с акцентами), потому что \LaTeX{} не переносит +такие слова автоматически. +%\footnote{Unless you are using the new +%\wi{DC fonts}.} + +\begin{example} +I think this is: su\-per\-cal\-% +i\-frag\-i\-lis\-tic\-ex\-pi\-% +al\-i\-do\-cious +\end{example} + +Несколько слов можно удержать вместе на одной строке командой +\begin{lscommand} +\ci{mbox}\verb|{|\emph{текст}\verb|}| +\end{lscommand} +\noindent Она будет в любом случае сохранять свой аргумент вместе. + +\begin{example} +Номер моего телефона скоро сменится. +Он будет \mbox{0116 291 2319}. + +Параметр +\mbox{\emph{имя файла}} должен +содержать имя файла. +\end{example} + +Команда~\ci{fbox} аналогична команде \ci{mbox}, но вокруг ее +содержимого будет нарисована видимая рамка. + +\section{Специальные строки} + +В некоторых предыдущих примерах вы уже встречали простые команды +\LaTeX{} для набора специальных текстовых строк: + +\vspace{2ex} + +\noindent +\begin{tabular}{@{}lll@{}} +Команда & Пример & Описание\\ +\hline +\ci{today} & \today & Текущая дата на текущем языке\\ +\ci{TeX} & \TeX & Название вашей любимой системы верстки\\ +\ci{LaTeX} & \LaTeX & Название \LaTeX \\ +\ci{LaTeXe} & \LaTeXe & Текущая инкарнация \LaTeX\\ +\end{tabular} + + +\section{Специальные буквы и символы} + +\subsection{Знаки кавычек} + +Для набора кавычек\index{кавычки} вы \emph{не должны} использовать +знак~\verb|"|\index{""@\texttt{""}}, как на пишущей машинке. При +верстке существуют специальные знаки открывающей и закрывающей +кавычек. В \LaTeX{} используйте два знака~\verb|`| в качестве +открывающей кавычки и два знака~\verb|'| в качестве +закрывающей.\trfootnote{При верстке обычно требуются две пары кавычек, + на случай <<\glqq кавычек\grqq{} в кавычках>>. При верстке на + русском языке обычно вместо ``таких'' и `таких' кавычек используют + <<эти>> и \glqq эти\grqq. Какими командами они задаются~--- зависит + от используемой русификации, но обычно это \ci{flqq}, \ci{frqq} + (вместо этой пары часто используют лигатуры \texttt{<{}<} и + \texttt{>{}>}\index{<<}\index{>>}) и \ci{glqq}, \ci{grqq}.} + +\begin{example} +``Пожалуйста, нажмите клавишу `x' '' +\end{example} + +\subsection{Тире и дефисы} + +\LaTeX{} знает про четыре вида \wi{тире}. Три из них вы можете +получить различным числом последовательных знаков~\verb|-|. Четвертое +на самом деле не тире вовсе, а математический знак минус: + +\index{-} \index{--} \index{---} \index{-@$-$} +\index{математический!минус} + +\begin{example} +мальчик-с-пальчик, X-лучи\\ +страницы 13--67\\ +да~--- или нет?\\ +$0$, $1$ и $-1$ +\end{example} + +Эти тире называются так: \texttt{-} \wi{дефис}, \texttt{-{}-} +\wi{короткое тире}, \texttt{-{}-{}-} \wi{длинное тире} и \verb|$-$| +\wi{знак минуса}.\index{тире!короткое}\index{тире!длинное} + + +\subsection{Тильда ($\sim$)} +\index{www}\index{URL}\index{тильда} + +Тильда часто встречается в WWW-адресах. Для генерации ее в \LaTeX{} +можно использоват \verb|\~|, но результат (\~) будет не тем, что вам +нужен. Взамен попробуйте вот что: + +\begin{example} +http://www.rich.edu/\~{}bush \\ +http://www.clever.edu/$\sim$demo +\end{example} + + +\subsection{Знак градуса ($\circ$)} + +Как напечатать \wi{знак градуса} в \LaTeX{}? + +\begin{example} +Температура уже +$-30\,^{\circ}\mathrm{C}$. +Скоро наступит сверхпроводимость. +\end{example} + +%\subsection{Символ Евро \texorpdfstring{(\EUR)}{}} +\subsection{Символ Евро \texorpdfstring{(\texteuro)}{}} +В наше время, говоря о валюте, вам понадобится символ +евровалюты. Многие современные шрифты содержат символ Евро. После +загрузки пакета \pai{textcomp} в преамбуле документа +\begin{lscommand} +\ci{usepackage}\verb|{textcomp}| +\end{lscommand} +\noindent вы можете пользоваться командой +\begin{lscommand} +\ci{texteuro} +\end{lscommand} +\noindent для доступа к этому символу. + +Если ваш шрифт не имеет собственного символа Евро, или вам не +нравится, как он выглядит, у вас есть еще два выхода. + +Первый~--- использование пакета \pai{eurosym}. Он предоставляет +официальный символ Евро: +\begin{lscommand} +\ci{usepackage}\verb|[|\emph{official}\verb|]{eurosym}| +\end{lscommand} + +Если вы предпочитаете официальному символ Евро, соответствующий вашему +шрифту, вместо опции \texttt{official} используйте опцию \texttt{gen}. + +Пакет \pai{marvosym} включает множество разных символов, в том числе и +Евро, доступный таким образом: +\begin{lscommand} +\ci{EUR} +\end{lscommand} + +\begin{example} +Символы \texteuro{}, +\euro{} и \EUR{} все +выглядят по-разному. +\end{example} + +\subsection{Многоточие ( \ldots )} + +На пишущей машинке \wi{точка} или \wi{запятая} занимают то же +пространство, что и любая другая буква. Напечатанные в книге, эти +символы занимают очень мало места и верстаются очень близко к +предшествующей букве. Поэтому вы не можете ввести \wi{многоточие} +просто напечатав три точки, так как расстояние между ними будет +неправильным. Кроме того, для многоточия есть специальная команда, +называющаяся + +\begin{lscommand} +\ci{ldots} +\end{lscommand} +\index{...@\ldots} + +\begin{example} +Не так ... а вот так:\\ +Нью-Йорк, Токио, Будапешт, \ldots +\end{example} + +\subsection{Лигатуры} + +Некоторые комбинации букв верстаются не просто набором разных букв +друг за другом, а с использованием специальных +символов.\trfootnote{Лигатуры широко используются при верстке текстов на + английском языке. Насколько мне известно, при верстке на русском + языке лигатур не используется. Однако, механизм лигатур \TeX{} + используется для генерации, например, кавычек и тире.} +\begin{code} +{\large ff fi fl ffi\ldots}\quad +вместо\quad {\large f{}f f{}i f{}l f{}f{}i \ldots} +\end{code} +Эти так называемые \index{лигатура}лигатуры могут быть запрещены +вставкой \ci{mbox}\verb|{}| между двумя соответствующими буквами. Это +может быть необходимо для слов, образованных из двух частей. +\begin{example} + \Large Не ``shelfful''\\ + а ``shelf\mbox{}ful'' +\end{example} + +\subsection{Акценты и специальные символы} + +\LaTeX{} поддерживает использование \index{акценты}акцентов и +специальных символов\index{специальные символы} из многих языков. +Таблица~\ref{accents} показывает всевозможные акценты в применении к +букве о. Понятно, что ее месте могут быть и другие буквы. + +Чтобы поместить знак акцента над буквами i или j, точки над ними +должны быть удалены. Это достигается набором \verb|\i| и \verb|\j|. +\begin{example} + H\^otel, na\"\i ve, \'el\`eve,\\ + sm\o rrebr\o d, !`Se\~norita!,\\ + Sch\"onbrunner Schlo\ss{} + Stra\ss e +\end{example} + +\begin{table}[!hbp] +\caption{Акценты и специальные символы} \label{accents} +\begin{lined}{10cm} +\begin{tabular}{*4{cl}} +\A{\`o} & \A{\'o} & \A{\^o} & \A{\~o} \\ +\A{\=o} & \A{\.o} & \A{\"o} & \B{\c}{c}\\[6pt] +\B{\u}{o} & \B{\v}{o} & \B{\H}{o} & \B{\c}{o} \\ +\B{\d}{o} & \B{\b}{o} & \B{\t}{oo} \\[6pt] +\A{\oe} & \A{\OE} & \A{\ae} & \A{\AE} \\ +\A{\aa} & \A{\AA} \\[6pt] +\A{\o} & \A{\O} & \A{\l} & \A{\L} \\ +\A{\i} & \cm{\j} & \verb|\j| & \cm{!`} & \verb|!`| & \cm{?`} & \verb|?`| +\end{tabular} +\index{i и j без точек@\cm{\i} и \cm{\j} без точек}\index{буквы!европейские} +\index{ae@\ae}\index{акценты!umlaut}\index{акценты!grave}\index{акценты!acute} +\index{oe@\oe} + +\bigskip +\end{lined} +\end{table} + +\section{Поддержка иностранных языков} +\index{другие языки}Если вам нужно писать документы на отличных от +английского языках, то \LaTeX{} должен быть соответствующим образом +сконфигурирован в двух пунктах: + +\begin{enumerate} +\item Все генерируемые автоматически текстовые + строки\footnote{Содержание, Список иллюстраций, Библиография \ldots} + должны быть переведены на другой язык. Для многих языков эти + изменения достигаются использованием пакета \pai{babel} (автор + Johannes Braams). + +\item \LaTeX{} должен знать \wi{правила переноса} для нового + языка. Подключение правил переноса к \LaTeX{} более сложно. Оно + включает перестроение форматного файла с другими разрешенными + образцами переноса. Ваш \guide{} должен содержать больше информации + об этом. + +\item Специфичные для языка типографские правила. Скажем, для + французского перед каждым символом двоеточия (:) должен стоять + пробел. +\end{enumerate} + +Если ваша система уже соответствующим образом сконфигурирована, вы +можете активизировать пакет \pai{babel} добавлением команды +\begin{lscommand} +\ci{usepackage}\verb|[|\emph{язык}\verb|]{babel}| +\end{lscommand} +\noindent после команды \verb|\documentclass|. Какие \emph{язык}и +поддерживает ваша система, также может быть указано в \guide{}. +\texttt{Babel} автоматически активизирует правильные правила переноса +для выбираемых вами языков. Если форматный файл вашего \LaTeX{} не +поддерживает переносов для выбранного языка, \texttt{babel} будет +работать, но запретит переносы, что негативно скажется на внешнем виде +документа. + +Для некоторых языков \pai{babel} вводит новые команды, упрощающие ввод +специальных символов. Например, \wi{немецкий язык} содержит множество +диакритических знаков (\"a\"o\"u). С использованием \pai{babel} вы +можете вводить \"o, печатая \verb|"o| вместо~\verb|\"o|. + +Если вы вызываете \pai{babel}, указывая несколько языков, +\begin{lscommand} +\ci{usepackage}\verb|[|\emph{язык1}\verb|,|\emph{язык2}\verb|]{babel}| +\end{lscommand} + +\noindent то для выбора текущего языка используйте команду + +\begin{lscommand} +\ci{selectlanguage}\verb|{|\emph{язык1}\verb|}| +\end{lscommand} + +%Input Encoding +\newcommand{\ieih}[1]{% +\index{кодировка!входная!#1@\texttt{#1}}% +\index{входная кодировка!#1@\texttt{#1}}% +\index{#1@\texttt{#1}}} +\newcommand{\iei}[1]{% +\ieih{#1}\texttt{#1}} +%Font Encoding +\newcommand{\feih}[1]{% +\index{кодировка!шрифта!#1@\texttt{#1}}% +\index{кодировка шрифта!#1@\texttt{#1}}% +\index{#1@\texttt{#1}}} +\newcommand{\fei}[1]{% +\feih{#1}\texttt{#1}} + +Большинство современных компьютерных систем позволяет вам вводить специальные +символы прямо с клавиатуры. \LaTeX{} может обрабатывать такие +символы при помощи пакета \pai{inputenc}: + +\begin{lscommand} +\ci{usepackage}\verb|[|\emph{кодировка}\verb|]{inputenc}| +\end{lscommand} + +При использовании этого пакета вы должны понимать, что другие могут +неправильно видеть ваши входные файлы на своем компьютере из-за +использования другой кодировки. Например, немецкий акцент \"a в +системе IBM~OS/2 кодируется как 132, а на некоторых Unix системах, +использующих кодировку ISO-LATIN~1,~--- как 228. Поэтому используйте +эту возможность с осторожностью. В зависимости от вашей системы, могут +использоваться, например, следующие кодировки: + +\begin{center} +\begin{tabular}{l | r} +Операционная система & Кодировка\\ +\hline +Mac & \texttt{applemac} \\ +Unix & \texttt{latin1} \\ +Windows & \texttt{ansinew} \\ +DOS, OS/2 & \texttt{cp850} +\end{tabular} +\end{center} + +Если вы пишете многоязычный документ с конфликтующими входными +кодировками, можно переключиться на Unicode при помощи пакета +\pai{ucs}: +\begin{lscommand} +\ci{usepackage}\verb|{ucs}|\\ +\ci{usepackage}\verb|[|\iei{utf8}\verb|]{inputenc}| +\end{lscommand} +Это позволит вам генерировать файлы \LaTeX{} в \iei{utf8}, +многобайтовой кодировке, где каждый символ кодируют от одного до +четырех байт. + +Иной случай~--- с кодировкой шрифта. Она определяет, в какой позиции в +пределах шрифта \TeX{} находится каждая буква. Множество входных +кодировок можно отобразить на одну кодировку шрифта, что уменьшает +число необходимых наборов шрифтов. Кодировки шрифтов обрабатываются +пакетом \pai{fontent}:\label{fontenc} +\begin{lscommand} +\ci{usepackage}\verb|[|\emph{кодировка}\verb|]{fontenc}| +\index{кодировка шрифта} +\end{lscommand} +\noindent где \emph{кодировка}~--- требуемая кодировка шрифта. Можно +одновременно загружать несколько кодировок. + +Кодировка \LaTeX{} по умолчанию~--- \fei{OT1}, кодировка оригинального +шрифта \TeX{} Computer Modern. Она содержит только 128 символов +7-битного набора символов ASCII. Когда требуются акцентированные +символы, \TeX{} создает их, комбинируя нормальный символ с акцентом. +Несмотря на то, что результирующая верстка выглядит прекрасно, этот +подход не дает автоматическим переносам работать внутри слов, +использующих акцентированные символы. Кроме того, некоторые знаки +латинских языков не получается создать таким образом, не говоря уже о +буквах не-латинских алфавитов, скажем, греческого или кириллицы. + +Для борьбы с этими ограничениями было создано несколько 8-битных +наборов шрифтов, похожих на CM. \emph{Extended Cork} (EC) шрифты в +кодировке \fei{T1} содержат специальные символы для большинства +акцентированных букв, используемых в европейских языках, основанных на +латинице. Набор шрифтов LH содержит символы языков, основанных на +кириллице. Ввиду большого числа кириллических знаков, они организованы +в четыре кодировки шрифтов: \fei{T2A}, \fei{T2B}, \fei{T2C} и +\fei{X2}.\footnote{Перечень языков, поддерживаемых каждой из этих + кодировок можно найти в \cite{cyrguide}.} Пакет CB содержит шрифты в +кодировке \fei{LGR} для набора греческих текстов. + +Используя эти шрифты, вы можете улучшить или вообще сделать возможными +переносы в не-английских документах. Еще одно преимущество +использования новых CM-подобных шрифтов~--- в том, что они +предоставляют шрифты семейства CM во всех яркостях, формах и оптически +масштабированных размерах шрифта. + +\subsection{Поддержка португальского} +\secby{Demerson Andre Polli}{polli@linux.ime.usp.br} + +Для включения переносов и смены автоматически генерируемого текста на +португальский\index{Португальский}, пользуйтесь командой +\begin{lscommand} +\verb|\usepackage[portuguese]{babel}| +\end{lscommand} +Или, для работы с бразильскими текстами, ставьте в качестве языка +\texttt{brazilian}\index{Бразильский}. + +Поскольку в португальском множество акцентированных букв, вам может +быть удобно использовать +\begin{lscommand} +\verb|\usepackage[latin1]{inputenc}| +\end{lscommand} +для того, чтобы корректно их вводить. Для работы переносов задайте +\begin{lscommand} +\verb|\usepackage[T1]{fontenc}| +\end{lscommand} + +Преамбулу, необходимую для работы с португальским языком, смотрите в +таблице~\ref{portuguese}. Заметьте, что мы здесь используем кодировку +latin1, так что эта преамбула не будет работать на Mac или в +DOS. Просто подставьте кодировку, правильную для вашей системы. + +\begin{table}[btp] +\caption{Преамбула для португальских документов} \label{portuguese} +\begin{lined}{5cm} +\begin{verbatim} +\usepackage[portugese]{babel} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\end{verbatim} +\bigskip +\end{lined} +\end{table} + +\subsection{Поддержка французского} +\secby{Daniel Flipo}{daniel.flipo@univ-lille1.fr} + +Несколько советов для создания в \LaTeX{} +французских\index{Французский} документов. Загрузите поддержку +французского языка командой + +\begin{lscommand} +\verb|\usepackage[frenchb]{babel}| +\end{lscommand} + +Заметьте, что по историческим причинам название опции \pai{babel} для +французского языка~--- \emph{frenchb} или \emph{francais}, а не +\emph{french}. + +Это включит французские переносы, если ваша \LaTeX{}-система правильно +настроена. Кроме того, весь автоматический текст будет тоже +французским: \verb+\chapter+ печатает Chapitre, \verb+\today+ печатает +текущую дату по-французски, и так далее. Становится доступным набор +новых команд, позволяющих легче набирать французские тексты. Для +пояснения смотрите таблицу~\ref{cmd-french}. + +\begin{table}[!htbp] +\caption{Специальные команды для французского языка} \label{cmd-french} +\begin{lined}{9cm} +%%\selectlanguage{french} +\begin{tabular}{ll} +\verb+\og guillemets \fg{}+ \quad &\og guillemets \fg \\[1ex] +\verb+M\up{me}, D\up{r}+ \quad &M\up{me}, D\up{r} \\[1ex] +\verb+1\ier{}, 1\iere{}, 1\ieres{}+ \quad &1\ier{}, 1\iere{}, 1\ieres{}\\[1ex] +\verb+2\ieme{} 4\iemes{}+ \quad &2\ieme{} 4\iemes{}\\[1ex] +\verb+\No 1, \no 2+ \quad &\No 1, \no 2 \\[1ex] +\verb+20~\degres C, 45\degres+ \quad &20~\degres C, 45\degres \\[1ex] +\verb+\bsc{M. Durand}+ \quad &\bsc{M.~Durand} \\[1ex] +\verb+\nombre{1234,56789}+ \quad &\nombre{1234,56789} +\end{tabular} +%%\selectlanguage{english} +\bigskip +\end{lined} +\end{table} + +Вы также заметите изменение вида списков. Чтобы полностью изучить +изменения, вносимые \pai{babel} при работе с французским, прогоните +через \LaTeX{} файл \texttt{frenchb.dtx} и прочтите полученный +\texttt{frenchb.dvi}. + +\subsection{Поддержка немецкого} + +Несколько советов тем, кому нужно создавать в \LaTeX{} +немецкие\index{Немецкий} документы. Загрузите поддержку немецкого +языка командой + +\begin{lscommand} +\verb|\usepackage[german]{babel}| +\end{lscommand} + +Это включит немецкие переносы, если ваша \LaTeX{}-система правильно +настроена. Кроме того, автоматически генерируемый текст станет +немецким, например, ``Chapter'' станет ``Kapitel''. Включается набор +новых команд, ускоряющих набор немецкого текста, даже если не +используется пакет \pai{inputenc}. Для пояснения смотрите +таблицу~\ref{german}. С использованием inputenc все это становится не +нужным, но ваш текст сможет использовать только одну кодировку. + +\begin{table}[!htbp] +\caption{Специальные символы немецкого языка} \label{german} +\begin{lined}{8cm} +%%\selectlanguage{german} +\begin{tabular}{*2{ll}} +\verb|"a| & "a \hspace*{1ex} & \verb|"s| & "s \\[1ex] +\verb|"`| & "` & \verb|"'| & "' \\[1ex] +\verb|"<| or \ci{flqq} & "< & \verb|">| or \ci{frqq} & "> \\[1ex] +\ci{flq} & \flq & \ci{frq} & \frq \\[1ex] +\ci{dq} & " \\ +\end{tabular} +%%\selectlanguage{english} +\bigskip +\end{lined} +\end{table} + +В немецких книгах часто встречаются французские знаки кавычек +(\flqq{}guillemets\frqq). Немецкие типографы, однако, используют их +по-другому. Цитата в немецкой книге обычно выглядит \frqq{}так\flqq. В +немецкоговорящей части Швейцарии типографы используют +\flqq{}guillemets\frqq так же, как и во Франции. + +Большая проблема связана с командами типа \verb+\flq+: в шрифтах OT1 +(а они включаются по умолчанию) эти кавычки выглядят как +математический символ ``$\ll$'', от чего у типографов будет +истерика. Шрифты в кодировке T1, с другой стороны, имеют требуемые +символы. Так что, если вам нужны такие кавычки, убедитесь, что +включили кодировку T1 (\verb|\usepackage[T1]{fontenc}|). + +\subsection[Поддержка корейского]{Поддержка + корейского\footnotemark}\label{support_korean}% +\footnotetext{% +Рассматриваются несколько моментов, касающихся корейских пользователей +\LaTeX{}. Этот раздел написал Karnes Kim от имени корейской команды +переводчиков lshort. Раздел переведен на английский Shun Jungshik и +сокращен Tobi Oetiker.} + +Используя \LaTeX{} для набора корейского языка\index{Корейский}, нам +нужно разрешить три проблемы: + +\begin{enumerate} +\item Нужно научиться редактировать входные файлы на корейском. Они + должны быть в формате плоского текста, но, поскольку символы + корейского языка не входят в набор US-ASCII, они будут странно + выглядеть в стандартных редакторах ASCII. Две самых популярных + кодировки корейских текстовых файлов~--- EUK-KR и ее совместимое + расширение, используемое в корейской системе MS Windows, + CP949/Windows-949/UHC. Эти кодировки включают ASCII как + подмножество, аналогично кодировкам ISO-8859-\textit{x}, EUC-JP, + Shift\_JIS и Big5. С другой стороны, слоги Hangul, знаки Hanjas + (используемые в Корее китайские символы), Hangul Jamos, хиракана, + катакана, греческие, кириллица и прочие символы из KS~X~1001 + представляются двумя байтами. Первый байт имеет установленным + старший бит. До середины 90-х годов установка корейского окружения в + нелокализованной ОС требовала значительных усилий и времени. Вы + можете просмотреть сильно устаревший \url{http://jshin.net/faq}, + чтобы получить представление об этиъ усилиях. В наше время все три + основные операционные системы (Mac OS, Unix, Windows) включают + вполне приличную многоязыковую поддержку и возможности + интернационализации, так что редактирование корейских текстов уже не + является проблемой, даже в нелокализованной системе. + +\item \TeX{} и \LaTeX{} были изначально созданы для письменностей, + имеющих в алфавите не более 256 символов. Для того, чтобы они + работали с языками, где гораздо больше символов, например, + корейским\footnote{Корейский алфавит Hangul~--- буквенная + письменность с 14 основными согласными и 10 основными гласными + (Jamos). В отличие от латиницы или кириллицы, отдельные символы + должны быть размещены в прямоугольных блоках примерно такого же + размера, как и китайские. Каждый блок представляет слог. Из этого + небольшого количества гласных и согласных можно сформировать + бесконечное число слогов. Однако, современные орфографические + стандарты (как в Южной Корее, так и в Северной) налагают некоторые + ограничения на формирование этих блоков. Следовательно, существует + конечное число орфографически правильных слогов. Корейские кодировки + символов определяют индивидуальные коды для каждого из этих слогов + (KS~X~1001:1998 и KS~X~1002:1992). Таким образом, Hangul, будучи + буквенным, трактуется, тем не менее, так же, как письменности Китая + и Японии, с тысячами идеографических знаков. Стандарт + ISO~10646/Unicode предлагает оба способа представления Hangul, + использумых в \emph{современной} Корее, кодируя, в дополнение ко + всем орфографически разрешенным слогам Hangul + (\url{http://www.unicode.org/charts/PDF/UAC00.pdf}), еще и + Conjoining Hangul Jamos (алфавит: + \url{http://www.unicode.org/charts/PDF/U1100.pdf}). Одна из самых + устрашающих задач в наборе корейского текста в \LaTeX{} и + аналогичных системых~--- поддержка средневековых корейских (а, + возможно, и будущих корейских) слогов, которые можно представить + только комбинацией знаков Jamos в Unicode. Есть надежда, что будущие + варианты \TeX, например, $\Omega$ и $\Lambda$ в конце концов + предоставят решение для этой задачи, так что корейские лингвисты и + историки смогут сбежать из MS Word, где уже есть довольно неплохая + поддержка средневекового корейского.} и китайским, был разработан + механизм подшрифтов. Он делит единый шрифт CJK с тысячами или + десятками тысяч знаков на набор подшрифтов с 256 знаками в + каждом. Для корейского языка есть три широко используемых пакета: + \wi{H\LaTeX} (автор Un~Koanghi), \wi{h\LaTeX{}p} (автор + Cha~Jaechoon) и \wi{пакет CJK} (автор Werner~Lemberg).\footnote{% + Их можно получить по адресам \CTANref|language/korean/HLaTeX/|\\ + \CTANref|language/korean/CJK/| и + \texttt{http://knot.kaist.ac.kr/htex/}} +H\LaTeX{} и h\LaTeX{}p специфичны для корейского языка и предлагают + корейскую локализацию, помимо шрифтовой поддержки. Оба они + обрабатывают входные файлы в кодировке EUK-KR. H\LaTeX{} может + обрабатывать файлы в кодировках CP949/Windows-949/UHC и UTF-8, если + используется вместе с $\Lambda$, $\Omega$. + +Пакет CJK не специфичен для корейского языка. Он обрабатывает входные +файлы в UTF-8, а также в различных кодировках CJK, включая EUK-KR и +CP949/Windows-949/UHC. Его можно использовать для набора документов с +многоязычным содержанием (особенно китайским, японским и +корейским). Пакет CJK не содержит корейской локализации, аналогичной +той, что есть в H\LaTeX{}, и также не содержит такого множества +специальных корейских шрифтов. + +\item Конечная цель использования программ набора, включая \TeX{},~--- + получить документы, сверстанные <<эстетически>> + удовлетворительно. Можно утверждать, что наиболее важный элемент + верстки~--- это набор хорошо спроектированных шрифтов. Дистрибутив + H\LaTeX{} включает \index{корейский шрифт!UHC шрифт}UHC \PSi{} + шрифты десяти различных семейств и TrueType шрифты + Munhwabu\footnote{Министерство культуры Кореи} пяти различных + семейств. Пакет CJK работает с набором шрифтов, использовавшихся в + старых версиях H\LaTeX{}, а также может использовать TrueType шрифт + cyberbit компании Bitstream. +\end{enumerate} + +Для загрузки пакета H\LaTeX{} поместите в преамбуле следующее: +\begin{lscommand} +\verb+\usepackage{hangul}+ +\end{lscommand} + +Эта команда включает корейскую локализацию. Заголовки глав, разделов, +подразделов, оглавления и перечня иллюстраций будут переведены на +корейский, и форматирование документа изменится так, чтобы следовать +принятым в Корее правилам. Пакет также предоставляет автоматический +<<выбор частиц>>. В корейском языке существуют пары постфиксных +частиц, грамматически эквивалентных, но отличных по форме. Какая +частица из пары корректна, зависит от того, заканчивается ли +предыдущий слог на гласную или согласную. (На самом деле, правило чуть +сложнее, но общая идея такова.) Корейцам не составляет никакого труда +выбирать правильную частицу, однако невозможно заранее определить, +какую частицу использовать в ссылках и других местах с автоматически +генерируемым текстом, меняющимся при редактировании +документа. Вставлять при каждом изменении текста правильную частицу +везде вручную~--- решение совершенно ужасное. H\LaTeX{} автоматизирует +этот процесс. + +Если вам не нужна корейская локализация, а вы просто хотите набрать +корейский текст, поместите взамен в преамбулу следующее: +\begin{lscommand} +\verb+\usepackage{hfont}+ +\end{lscommand} + +Полная и подробная информация о верстке корейского текста при помощи +H\LaTeX{} приведена в \emph{Руководстве по H\LaTeX}. Смотрите веб-сайт +группы корейских пользователей \TeX{} (KTUG) по адресу +\url{http://www.ktug.or.kr/}. Существует также корейский перевод +настоящего документа. + + +\subsection{Поддержка кириллицы} +\secby{Maksym Polyakov}{polyama@myrealbox.com} + +Пакет \pai{babel}, начиная с версии~3.7, включает поддержку +кодировок~\fei{T2*} и поддержку верстки болгарских, русских и +украинских текстов с использованием кириллических +символов.\index{Болгарский}\index{Русский}\index{Украинский} + +Поддержка кириллицы основана на стандартных механизмах \LaTeX{}: +пакетах \pai{fontenc} и \pai{inputenc}. Но, если вам нужно +использовать кириллицу в математическом режиме, загрузите до пакета +\pai{fontenc} пакет \pai{mathtext}:\footnote{Если вы пользуетесь + пакетами \AmS-\LaTeX{}, загружайте их также до пакетов \pai{fontenc} + и \pai{babel}.} +\begin{lscommand} +\verb+\usepackage{mathtext}+\\ +\verb+\usepackage[+\fei{T1}\verb+,+\fei{T2A}\verb+]{fontenc}+\\ +\verb+\usepackage[+\iei{koi8-r}\verb+]{inputenc}+\\ +\verb+\usepackage[english,bulgarian,russian,ukranian]{babel}+ +\end{lscommand} + +Вообще говоря, \pai{babel} автоматически выберет кодировку шрифтов по +умолчанию. Для трех перечисленных языков это будет \fei{T2A}. Однако, +документы не ограничены только одной кодировкой шрифта. Для +многоязыковых документов, использующих языки, базирующиеся на +кириллице и латинице, имеет смысл явно подключить латинскую кодировку +шрифтов. \pai{babel} позаботится о переключении на правильную +кодировку, когда вы меняете язык в документе. + +В дополнение ко включению переносов, трансляции автоматически +генерируемых строк и активации некоторых специфичных для языка +типографских правил (например, \ci{frenchspacing}), \pai{babel} +предоставляет несколько команд для верстки в соответствии со +стандартами болгарского, русского или украинского языков. + +Для всех трех языков предоставляется специфическая пунктуация: +кириллическое тире для теста (оно слегка \'уже латинского тире и +окружено крошечными пробелами), тире для прямой речи, кавычки и +команды управления переносами. Смотрите таблицу~\ref{Cyrillic}. + +% Table borrowed from Ukrainian.dtx +\begin{table}[htb] + \begin{center} + \index{""-@\texttt{""}\texttt{-}} + \index{""---@\texttt{""}\texttt{-}\texttt{-}\texttt{-}} + \index{""=@\texttt{""}\texttt{=}} + \index{""`@\texttt{""}\texttt{`}} + \index{""'@\texttt{""}\texttt{'}} + \index{"">@\texttt{""}\texttt{>}} + \index{""<@\texttt{""}\texttt{<}} + \caption[Болгарский, русский и украинский]{Дополнительные + определения, вводимые опциями \pai{babel} для болгарского, + русского и украинского языков}\label{Cyrillic} + \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}} + \hline + \verb="|= & запрещает лигатуру в этой позиции. \\ + \verb|"-| & дефис, разрешающий переносить остаток слова. \\ + \verb|"---| & кириллическое тире в обычном тексте. \\ + \verb|"--~| & кириллическое тире в составных фамилиях. \\ + \verb|"--*| & кириллическое тире для обозначения прямой речи. \\ + \verb|""| & как |"-|, но не генерирует знака дефиса + (для составных слов с дефисом, например, |x-""y|.\\ + \verb|"~| & отмечает составное слово без разрыва. \\ + \verb|"=| & отмечает составное слово с разрывом, разрешая перенос в + словах-компонентах. \\ + \verb|",| & пробел для инициалов с разрешением переноса в следующей + за ними фамилии. \\ + \verb|"`| & немецкая левая двойная кавычка + (выглядит так: ,\kern-0.08em,). \\ + \verb|"'| & немецкая правая двойная кавычка (выглядит так: ``). \\%'' + \verb|"<| & французская левая двойная кавычка (выглядит так: $<\!\!<$). \\ + \verb|">| & французская правая двойная кавычка (выглядит так: $>\!\!>$). \\ + \hline + \end{tabular} + \end{center} +\end{table} + +Русская и украинская опции пакета \pai{babel} вводят команды +\ci{Asbuk} и \ci{asbuk}, которые работают аналогично командам +\ci{Alph} и \ci{alph}, но генерируют прописные и строчные буквы +русского или украинского алфавитов (в зависимости от текущего языка +документа). Болгарская опция \pai{babel} вводит команды \ci{enumBul} и +\ci{enumLat} (\ci{enumEng}), которые заставляют \ci{Alph} и \ci{alph} +генерировать буквы либо болгарского, либо латинского (английского) +алфавитов. По умолчанию генерируются болгарские буквы. + +%Finally, math alphabets are redefined and as well as the commands for math +%operators according to Cyrillic typesetting traditions. + +\section{Пробелы между словами} + +Для получения ровного правого края вывода \LaTeX{} вставляет различные +интервалы между словами. В конце предложения он вставляет слегка +больший интервал, делая текст более читабельным.\trfootnote{В + соответствии с традициями верстки, принятыми в английском + языке.} \LaTeX{} предполагает, что +предложения заканчиваются точками, вопросительными или +восклицательными знаками. Если точка следует за буквой в верхнем +регистре, она не считается концом предложения, так как точки после +букв верхнего регистра обычно используются для сокращений. + +Любое исключение из этих предположений должно быть явно оговорено +автором. Знак~<<\verb|\|>> перед пробелом дает в результате пробел, +который не будет увеличен. Знак~<<\verb|~|>> дает пробел, который не +может увеличиться и который, кроме того, запрещает разрыв строки. +Команда \verb|\@| перед точкой указывает, что эта точка заканчивает +предложение, несмотря на то, что стоит за буквой верхнего регистра. +\cih{"@} \index{~@ \verb.~.} \index{тильда@тильда (\verb.~.)} +\index{точка, пробел после} + +\begin{example} +Mr.~Smith was happy to see her\\ +cf.~Fig.~5\\ +I like BASIC\@. What about you? +\end{example} + +Дополнительный пробел после точек можно запретить командой +\begin{lscommand} +\ci{frenchspacing} +\end{lscommand} +\noindent которая указывает \LaTeX{} \emph{не} вставлять пробела после +точки более, чем после обычных символов. Это обычно для языков, +отличных от английского, за исключением библиографий. Если вы +используете \ci{frenchspacing}, команда \verb|\@| не нужна. + +\section{Заголовки, главы и разделы} + +Чтобы помочь читателю ориентироваться в вашей работе, вы должны +разделять ее на главы, разделы и подразделы. \LaTeX{} поддерживает это +специальными командами, принимающими в качестве аргумента заголовок +раздела. Ваше дело~--- использовать их в надлежащем порядке. + +Класс \texttt{article} включает следующие команды секционирования: + +\begin{code} +\ci{section}\verb|{...} |\ci{paragraph}\verb|{...}|\\ +\ci{subsection}\verb|{...} |\ci{subparagraph}\verb|{...} |\\ +\ci{subsubsection}\verb|{...}| +\end{code} + +В классах \texttt{report} и \texttt{book} вы можете использовать +дополнительную команду \ci{chapter}\verb|{...}|. + +Если вы хотите разбить ваш документ на части без изменения нумерации +разделов/глав, используйте команду \ci{part}\verb|{...}|. + +Так как глав (chapters) в классе \texttt{article} нет, то +статьи довольно легко добавлять в книгу в качестве глав. Интервалы +между разделами, нумерация и размер шрифта заголовков устанавливаются +\LaTeX{} автоматически. + +Две из команд секционирования~--- особенные: +\begin{itemize} +\item Команда \ci{part} не влияет на последовательность нумерования + глав. +\item Команда \ci{appendix} аргумента не имеет. Она просто начинает + нумеровать главы буквами вместо цифр.\footnote{В классе + \texttt{article} меняется нумерация разделов.} +\end{itemize} + + + +\LaTeX{} создает оглавление, беря заголовки разделов и номера страниц +из предыдущего цикла компиляции документа. Команда +\begin{lscommand} +\ci{tableofcontents} +\end{lscommand} +\noindent вставляет оглавление в то место, где она вызвана. Чтобы +получить правильное \wi{оглавление}, новый документ должен быть +обработан \LaTeX{} дважды. В особых случаях может быть необходим и +третий проход. Когда это потребуется, \LaTeX{} вас предупредит. + +Все вышеперечисленные команды секционирования существуют также в +вариантах со звездочкой. Такой вариант получается добавлением \verb|*| +к имени команды. Они генерируют заголовки разделов, которые не +нумеруются и не включаются в оглавление. Например, команда +\verb|\section{Справка}| становится \verb|\section*{Справка}|.\sloppypar + +Обычно заголовки разделов появляются в оглавлении точно в том же виде, +в каком они вводятся в тексте. Иногда это невозможно из-за того, что +заголовок слишком длинен для оглавления. Элемент оглавления может в +этом случае указываться необязательным аргументом перед собственно +заголовком. +\begin{code} +\verb|\chapter[Заголовок для оглавления]{Это~--- длинный,|\\ +\verb| длинный и очень нудный заголовок, появляющийся в тексте}| +\end{code} + +Титульный лист +\index{лист!титульный}\index{титульный лист} +документа в целом генерируется при помощи команды +\begin{lscommand} +\ci{maketitle} +\end{lscommand} +\noindent Его содержимое должно быть определено командами +\begin{lscommand} + \ci{title}\verb|{...}|, \ci{author}\verb|{...}| и + \ci{date}\verb|{...}| +\end{lscommand} +\noindent до момента вызова \verb|\maketitle|. Аргумент команды +\ci{author} может содержать несколько имен, разделенных командами +\ci{and}. + +Пример некоторых из упомянутых команд может быть найден на +иллюстрации~\ref{document} на странице~\pageref{document}. + +Помимо описанных выше команд секционирования, \LaTeXe{} вводит три +дополнительных команды для использования с классом \texttt{book}. +Они полезны для деления вашей публикации. Команды изменяют заголовки +глав и нумерацию страниц так, как это ожидается от +книги: + +\begin{description} +\item[\ci{frontmatter}] должна быть самой первой командой после + \verb|\begin{document}|. Она переключает нумерацию страниц на + использование римских цифр. Для вводной части часто используют + команды секционирования со звездочками (например, + \verb|\chapter*{Предисловие}|), чтобы \LaTeX{} не нумеровал эти + разделы. + \item[\ci{mainmatter}] указывается сразу перед первой главой + книги. Она включает нумерацию страниц цифрами и сбрасывает счетчик + страниц. + \item[\ci{appendix}] отмечает начало дополнительного материала в + вашей книге. После этой команды главы будут нумероваться буквами. + \item[\ci{backmatter}] указыватеся перед самыми последними частями + книги, например, перед библиографией и предметным указателем. В + стандартных классах документов видимого эффекта она не имеет. +\end{description} + +\section{Перекрестные ссылки} + +В книгах, отчетах и статьях часто встречаются \wi{перекрестные ссылки} +на иллюстрации, таблицы и отдельные части текста. Для этого \LaTeX{} +предоставляет следующие команды: +\begin{lscommand} +\ci{label}\verb|{|\emph{метка}\verb|}|, \ci{ref}\verb|{|\emph{метка}\verb|}| +и \ci{pageref}\verb|{|\emph{метка}\verb|}| +\end{lscommand} +\noindent где \emph{метка}~--- выбранный пользователем +идентификатор. \LaTeX{} заменяет \verb|\ref| номером раздела, +подраздела, иллюстрации, таблицы или уравнения, где была использована +соответствующая команда \verb|\label|. \verb|\pageref| печатает номер +страницы, соответствующей команде \verb|\label|.\footnote{Заметьте, что + эти команды не знают, на что именно они ссылаются. \ci{label} просто + сохраняет последний автоматически генерируемый номер.} Так же, как +и в случае с заголовками разделов, здесь также используются номера из +предыдущего прохода. + +\begin{example} +Ссылка на этот +раздел~\label{sec:this} +выглядит так: <<см. +раздел~\ref{sec:this} на +стр.~\pageref{sec:this}.>> +\end{example} + +\section{Сноски} + +Команда +\begin{lscommand} +\ci{footnote}\verb|{|\emph{текст сноски}\verb|}| +\end{lscommand} +\noindent печатает сноску внизу текущей страницы. Сноски всегда должны +помещаться после слова или предложения, к которым они относятся. В +русском языке сноски, относящиеся к предолжению, должны ставиться +сразу перед точкой или запятой\footnote{Заметьте, что сноски отвлекают + читателя от основного текста документа. Все всегда читают сноски, + потому что мы~--- любопытные создания. Поэтому старайтесь включать + все, что вы хотите сказать, в основной текст документа.}. +%не понял юмора. BT. + +\begin{example} + Пользователи \LaTeX{} + часто употребляют + сноски.\footnote{% + Это~--- сноска.} +\end{example} + + +\section{Выделенные слова} + +В рукописи, напечатанной на машинке, \texttt{важные слова выделяются + \underline{подчеркиванием}}: + +\begin{lscommand} +\ci{underline}\verb|{|\emph{текст}\verb|}| +\end{lscommand} + +В печатных изданиях, однако, эти слова выделяются \emph{курсивом}. Команда для +переключения на шрифт \emph{выделения} называется +\begin{lscommand} +\ci{emph}\verb|{|\emph{текст}\verb|}| +\end{lscommand} +\noindent Ее аргументом является текст для +выделения\index{выделение}. Что на самом деле делает эта команда, +зависит от контекста: + +\begin{example} +Если вы используете +\emph{выделение в уже +выделенном тексте, то +\LaTeX{} использует +\emph{прямой} шрифт.} +\end{example} + +Отметьте отличие между командами \emph{выделения} и смены +\emph{шрифта}: + +\begin{example} +\textit{Вы можете также + \emph{выделить} текст, + набрав его курсивом,} +\textsf{шрифтом без + \emph{засечек}} +\texttt{или в стиле + \emph{пишущей машинки}.} +\end{example} + +\section{Окружения} \label{env} + +Для верстки специальных видов текста \LaTeX{} определяет множество +\index{окружение}окружений для разных типов форматирования: +\begin{lscommand} +\ci{begin}\verb|{|\emph{название}\verb|}|\quad + \emph{текст}\quad +\ci{end}\verb|{|\emph{название}\verb|}| +\end{lscommand} +\noindent где \emph{название} определяет окружение. Окружения можно +вызывать внутри окружений, соблюдая порядок вызова и возврата: +\begin{code} +\verb|\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}| +\end{code} + +\noindent В следующих разделах рассказывается обо всех важных +окружениях. + +\subsection{Список, перечисление и описание} + +Окружение \ei{itemize} подходит для простых списков, окружение +\ei{enumerate}~--- для нумерованных списков, а окружение +\ei{description}~--- для описаний. +\cih{item} + +\begin{example} +\flushleft +\begin{enumerate} +\item Вы можете как угодно +смешивать окружения списков: +\begin{itemize} +\item Но это может смотреться +глупо. +\item[-] С минусом. +\end{itemize} +\item Поэтому помните: +\begin{description} +\item[Глупые] вещи не станут +умнее от помещения в список. +\item[Умные] вещи, однако, +вполне можно представить +списком. +\end{description} +\end{enumerate} +\end{example} + +\subsection{Выравнивание влево, вправо и по центру} + +Окружения \ei{flushleft} и \ei{flushright} форматируют абзацы, +выровненные влево или вправо.\index{выравнивание!вправо или влево} +Окружение \ei{center} дает центрированный текст. Если вы не +используете \ci{\bs} для указания разрывов строк, \LaTeX{} определит +их автоматически. + +\begin{example} +\begin{flushleft} + Этот текст\\ выровнен влево. + \LaTeX{} не старается сделать + все строки одинаковой длины. +\end{flushleft} +\end{example} + +\begin{example} +\begin{flushright} + Этот текст\\ выровнен вправо. + \LaTeX{} не старается сделать + все строки одинаковой длины. +\end{flushright} +\end{example} + +\begin{example} +\begin{center} + В центре\\Земли +\end{center} +\end{example} + +\subsection{Цитаты и стихи} + +Окружение \ei{quote} полезно для цитат, важных фраз и примеров. + +\begin{example} +Типографское правило для +длины строки: +\begin{quote} + Обычно строки должны + содержать не больше + 66~символов. +\end{quote} + +Поэтому \LaTeX{} делает такими +широкими поля страниц. Поэтому +в газетах часто применяют набор +в несколько колонок. +\end{example} + +Существуют еще два похожих окружения: \ei{quotation} и \ei{verse}. +Окружение \texttt{quotation} полезно для более длинных цитат, +охватывающих несколько абзацев, потому что оно начинает абзацы с +красной строки. Окружение \texttt{verse} используют для стихов, где +важны разрывы строк. Строки разделяются при помощи \ci{\bs} в конце +строки и пустой строки после каждой строфы. + +\begin{example} +Я знаю только одно английское +стихотворение наизусть: про +Шалтая-Болтая: +\begin{flushleft} +\begin{verse} +Humpty Dumpty sat on a wall:\\ +Humpty Dumpty had a great fall.\\ +All the King's horses and all +the King's men\\ +Couldn't put Humpty together +again. +\end{verse} +\end{flushleft} +\end{example} + +\subsection{Буквальное воспроизведение} + +Текст, заключенные между \verb|\begin{|\ei{verbatim}\verb|}| и +\verb|\end{verbatim}| будет напрямую напечатан, как набранный на +пишущей машинке, со всеми пробелами и возвратами каретки, без +выполнения каких бы то ни было команд \LaTeX{}. + +Внутри абзаца аналогичную функцию выполняет команда +\begin{lscommand} +\ci{verb}\verb|+|\emph{текст}\verb|+| +\end{lscommand} +\noindent Здесь <<\verb|+|>>~--- это только пример +символа-ограничителя. Вы можете использовать любой символ, кроме букв, +<<\verb|*|>> или пробела. Многие примеры на \LaTeX{} в этом буклете +набраны этой командой. + +\begin{example} +Команда \verb|\ldots| \ldots + +\begin{verbatim} +10 PRINT "HELLO WORLD "; +20 GOTO 10 +\end{verbatim} +\end{example} + +\begin{example} +\begin{verbatim*} +вариант окружения +verbatim со +звездочкой выделяет +пробелы в тексте +\end{verbatim*} +\end{example} + +Команду \ci{verb} тоже можно использовать аналогичным образом со +звездочкой: + +\begin{example} +\verb*|вот так :-) | +\end{example} + +Окружение \texttt{verbatim} и команду \verb|\verb| нельзя использовать +внутри параметров других команд. + + +\subsection{Таблицы} + +Окружение \ei{tabular} используют для верстки таблиц, возможно, с +горизонтальными и вертикальными линиями. \LaTeX{} автоматически +определяет ширину столбцов. + +Аргумент \emph{спецификация} команды +\begin{lscommand} +\verb|\begin{tabular}[|\emph{позиция}\verb|]{|\emph{спецификация}\verb|}| +\end{lscommand} +\noindent определяет формат таблицы. Используйте \texttt{l} для +столбца текста, выровненного влево, \texttt{r} для текста, +выровненного вправо и \texttt{c} для центрированного текста, +\verb|p{|\emph{ширина}\verb|}| для столбца, содержащего выровненный +текст с переносом строк, и \verb.|. для вертикальной линии. + +\emph{Позиция} определяет вертикальное положение всего табличного +окружения: \texttt{t}, \texttt{b} и \texttt{c} означают выравнивание +по верхнему краю, нижнему краю или по центру окружения. + +Внутри окружения \texttt{tabular} знак~<<\verb|&|>> переходит к +следующему столбцу, команда~\ci{\bs} начинает новую строку, а +\ci{hline} вставляет горизонтальную линию.\index{"|@\verb."|.} Вы +можете добавлять неполные линии при помощи команды +\ci{cline}\verb|{j-i}|, где \texttt{j} и \texttt{i}~--- номера +столбцов, над которыми должна проходить линия. + +\begin{example} +\begin{tabular}{|r|l|} +\hline +7C0 & шестнадцатеричное \\ +3700 & восьмеричное \\ \cline{2-2} +11111000000 & двоичное \\ +\hline \hline +1984 & десятичное \\ +\hline +\end{tabular} +\end{example} + +\begin{example} +\begin{tabular}{|p{4.7cm}|} +\hline +Добро пожаловать в абзац в +рамочке. Надеемся, вам всем +тут понравится.\\ +\hline +\end{tabular} +\end{example} + +Разделитель столбцов можно задать конструкцией \verb|@{...}|. Эта +команда удаляет пробел между столбцами и заменяет его на то, что +включено в фигурные скобки. Одно из частых использований этой команды +показано ниже, при рассказе о проблеме выравнивания по десятичной +точке. Другое возможно использование~--- для подавления ведущего +пробела в таблице при помощи \verb|@{}|: + +\begin{example} +\begin{tabular}{@{} l @{}} +\hline +нет ведущего пробела\\ +\hline +\end{tabular} +\end{example} + +\begin{example} +\begin{tabular}{l} +\hline +ведущий пробел слева и справа\\ +\hline +\end{tabular} +\end{example} + +% +% This part by Mike Ressler +% + +\index{выравнивание!по десятичной точке} Поскольку встроенный способ +выровнять числовые столбцы по десятичной точке +отсутствует,\footnote{Если на вашей системе установлен комплект + `tools', обратите внимание на пакет \pai{dcolumn}.} мы можем +<<обмануть>> \TeX{} и добиться этого при помощи двух столбцов: +выровненной вправо целой части и выровненной влево дробной. Команда +\verb|@{.}| в строке \verb|\begin{tabular}| заменяет нормальный пробел + между столбцами просто на <<.>>, давая эффект одного столбца, + выровненного по десятичной точке. Не забудьте заменить в ваших + числах точку на разделитель столбцов (\verb|&|)! Метку столбца можно + поместить над нашим числовым <<столбцом>> командой \ci{multicolumn}: + +\begin{example} +\begin{tabular}{c r @{.} l} +Выражение с $\pi$ & +\multicolumn{2}{c}{Значение} \\ +\hline +$\pi$ & 3&1416 \\ +$\pi^{\pi}$ & 36&46 \\ +$(\pi^{\pi})^{\pi}$ & 80662&7 \\ +\end{tabular} +\end{example} + +\begin{example} +\begin{tabular}{|c|c|} +\hline +\multicolumn{2}{|c|}{Ene} \\ +\hline +Mene & Muh! \\ +\hline +\end{tabular} +\end{example} + +Материал, набираемый в окружении \texttt{tabular}, всегда верстается +на одной странице. Если вам нужно набирать длинные таблицы, +используйте окружения \pai{supertabular} или \pai{longtable}. + +\section{Плавающие объекты} +Большинство публикаций в наши дни содержат множество иллюстраций и +таблиц. Эти элементы нуждаются в специальном обращении с ними, так как +они не могут быть разбиты между страницами. Одним из выходов было бы +начинать новую страницу каждый раз, когда встречается иллюстрация или +таблица, слишком большая, чтобы поместиться на текущей странице. Этот +подход привел бы к тому, что страницы оставались бы частично пустыми, +что смотрится очень плохо. + +Для решения этой проблемы любая иллюстрация или таблица, не умещающаяся +на текущей странице, может `плавать', перемещаясь на следующую +страницу в процессе заполнения текстом текущей. \LaTeX{} предлагает +для плавающих объектов\index{плавающие объекты} два окружения, одно для таблиц и одно для +иллюстраций. Чтобы полностью использовать их преимущества, важно +примерно представлять, как \LaTeX{} обрабатывает плавающие +объекты. Иначе они могут стать источником разочарования из-за того, +что \LaTeX{} помещает их не туда, куда вы хотите. + +Давайте вначале рассмотрим команды, предоставляемые \LaTeX{} для +плавающих объектов. + +Любой материал, включенный в окружения \ei{figure} или \ei{table}, +трактуется как плавающий. Оба окружения имеют необязательный +параметр +\begin{lscommand} +\verb|\begin{figure}[|\emph{спецификация размещения}\verb|]| или\\ +\verb|\begin{table}[|\emph{спецификация размещения}\verb|]| +\end{lscommand} +\noindent называемый \emph{спецификацией размещения}. Этот параметр +используется для указания \LaTeX{}, куда можно перемещать плавающий +объект. \emph{Спецификация размещения} конструируется путем собирания +в строчку \emph{ключей размещения плавающего объекта}. См. +таблицу~\ref{tab:permiss}. + +\begin{table}[!bp] +\caption{Ключи размещения плавающего объекта}\label{tab:permiss} +\noindent \begin{minipage}{\textwidth} +\medskip +\begin{center} +\begin{tabular}{@{}cp{10cm}@{}} +Ключ&Разрешает помещать объект \ldots\\ +\hline +\rule{0pt}{1.05em}\texttt{h} & \emph{здесь же}, в том самом месте +текста, где он появился. Обычно используется для маленьких объектов.\\[0.3ex] +\texttt{t} & \emph{наверху} страницы\\[0.3ex] +\texttt{b} & \emph{внизу} страницы\\[0.3ex] +\texttt{p} & на \emph{специальной странице}, содержащей только +плавающие объекты.\\[0.3ex] +\texttt{!} & не рассматривать большинство внутренних +параметров,\footnote{Таких, как максимальное число плавающих объектов, + разрешенных на одной странице} которые могут предотвратить +размещение этого объекта. +\end{tabular} +\end{center} +\end{minipage} +\end{table} + +Замечание: \texttt{0pt} и \texttt{1.05em}~--- единицы измерения длин +\TeX{}. Подробности о единицах и размерностях смотрите в +таблице~\ref{units} на странице~\pageref{units}. + + +Например, таблицу можно начать следующей строкой: +\begin{code} +\verb|\begin{table}[!hbp]| +\end{code} +\noindent Спецификация размещения \index{спецификация размещения} \verb|[!hbp]| позволяет +\LaTeX{} разместить таблицу прямо по месту (\texttt{h}), или внизу той +же страницы (\texttt{b}), или на выделенной странице (\texttt{p}), и +все это~--- даже если это будет смотреться не так уж хорошо +(\texttt{!}). Если никакой спецификации размещения не задано, +стандартные классы предполагают \verb|[tbp]|. + +\LaTeX{} размещает каждый встреченный плавающий объект в соответствии +с заданной автором спецификацией. Если объект нельзя поместить на +текущей странице, он откладывается, помещаясь в очередь +иллюстраций\index{иллюстрации} или в очередь +таблиц.\index{таблицы}\footnote{Эти очереди подчиняются дисциплине + \emph{fifo}: `первым вошел~--- первым вышел'.} Когда начинается +новая страница, \LaTeX{} проверяет, можно ли заполнить специальную +страницу плавающими объектами из очередей. Если нет, то первый объект +из каждой очереди считается только что встретившимся в тексте: +\LaTeX{} снова пытается разместить их в соответствии с их +спецификациями (за исключением `h', что уже невозможно). Новые +встреченные в тексте плавающие объекты помещаются в соответствующие +очереди. \LaTeX{} сохраняет порядок, в котором встретились плавающие +объекты соответствующего типа. Поэтому иллюстрация, которую не удается +разместить, отталкивает все дальнейшие иллюстрации к концу документа. +Следовательно: + +\begin{quote} + Если \LaTeX{} не размещает плавающие объекты, как вы этого ожидаете, + то часто это только один объект устроил затор в одной из очередей. +\end{quote} + +Хотя и возможно задавать в \LaTeX{} конкретную спецификацию размещения +плавающего объекта, это может вызвать проблемы. Если объект не +помещается в указанном месте, он <<застревает>>, блокируя последующие +плавающие объекты. В частности, никогда не используйте ключ +\texttt{[h]}; это настолько плохо, что в современных версиях \LaTeX{}, +он автоматически заменяется \texttt{[ht]}. + +\bigskip +\noindent После объяснения этих механизмов остается еще несколько +замечания про окружения \ei{table} и \ei{figure}. Командой + +\begin{lscommand} +\ci{caption}\verb|{|\emph{текст заголовка}\verb|}| +\end{lscommand} + +\noindent вы можете задать заголовок для объекта. Увеличивающийся +номер и строка <<Рисунок>> или <<Таблица>> добавляются \LaTeX{}. + +Две команды + +\begin{lscommand} +\ci{listoffigures} и \ci{listoftables} +\end{lscommand} + +\noindent работают аналогично команде \verb|\tableofcontents|, печатая +список иллюстраций или таблиц, соответственно. В этих списках +заголовки повторяются целиком. Если вы используете длинные заголовки, +то вы должны предоставить их краткий вариант для включения в списки. +Это делается помещением краткого варианта в квадратные скобки после +команды \verb|\caption|. +\begin{code} +\verb|\caption[Короткий]{Дддддллллллиииинннннныыыыыыыыыыыыыыййй}| +\end{code} + +При помощи \verb|\label| и \verb|\ref| можно делать ссылки из вашего +текста на плавающий объект. + +Следующий пример рисует квадрат и вставляет его в документ. Подобную +технику можно использовать, чтобы оставить в документе место под +изображения, которые вы вставите позже. + +\begin{code} +\begin{Verbatim} +Рисунок~\ref{white} является примером Поп-Арта. +\begin{figure}[!hbp] +\makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}} +\caption{Пять на пять сантиметров} \label{white} +\end{figure} +\\\end{Verbatim} +\end{code} + +\noindent В этом примере \LaTeX{} будет \emph{очень сильно}~(\texttt{!}) стараться +разместить иллюстрацию прямо \emph{по + месту}~(\texttt{h}).\footnote{Предполагая, что очередь иллюстраций + пуста} Если это невозможно, он попытается разместить ее \emph{внизу + страницы}~(\texttt{b}). Если ему не удастся поместить иллюстрацию на +текущей странице, он выяснит, можно ли создать страницу плавающих +объектов, содержащую эту иллюстрацию и, возможно, некоторые таблицы из +очереди таблиц. Если для отдельной страницы материала еще не +накопилось, \LaTeX{} начинает новую страницу и снова рассматривает +иллюстрацию, как если бы она только что появилась в тексте. + +В определенных случаях может быть необходимо использовать команду +\begin{lscommand} +\ci{clearpage} или даже \ci{cleardoublepage} +\end{lscommand} + +\noindent Она указывает \LaTeX{} немедленно разместить все плавающие +объекты, остававшиеся в очередях, и затем начать новую страницу. +\ci{cleardoublepage}, помимо этого, начинает новую правостороннюю +страницу. + +Позже вы узнаете, как включать в ваши документы \LaTeX{} рисунки в +формате \textsc{PostScript}. + + +\section{Защита хрупких команд} + +Текст, заданный в аргументах команд наподобие \ci{caption} или +\ci{section}, появляется в документе больше одного раза (например, в +оглавлении, в колонтитулах и в теле документа). Некоторые команды не +работают, будучи использованы в аргументах команд типа \ci{section}. +Их называют хрупкими командами\index{команды!хрупкие}. В частности, +хрупкими являются команды \ci{footnote} или \ci{phantom}. Для того, +чтобы они работали как предполагается, необходимо перед ними поставить +команду \ci{protect}. + +Команда \ci{protect} относится только к команде, непосредственно +следующей за ней; даже не к ее аргументам. В большинстве случаев +лишняя команда \ci{protect} не повредит. + +\begin{code} +\verb|\section{Я внимателен|\\ +\verb| \protect\footnote{и защищаю свои сноски}}| +\end{code} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lshort" +%%% End: -- cgit v1.2.3