From 1990374c1e9958b0ebbce5d2b170bf659c24abe3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 26 Apr 2020 21:34:47 +0000 Subject: optex (26apr20) git-svn-id: svn://tug.org/texlive/trunk@54893 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/luatex/optex/README | 3 + Master/texmf-dist/doc/luatex/optex/optex-doc.pdf | Bin 172562 -> 1147940 bytes Master/texmf-dist/doc/luatex/optex/optex-doc.tex | 1817 +------------------- .../texmf-dist/doc/luatex/optex/optex-techdoc.tex | 250 +++ .../texmf-dist/doc/luatex/optex/optex-userdoc.tex | 1803 +++++++++++++++++++ Master/texmf-dist/tex/luatex/optex/alloc.opm | 71 +- .../texmf-dist/tex/luatex/optex/basic-macros.opm | 97 ++ .../texmf-dist/tex/luatex/optex/basics-macros.opm | 88 - Master/texmf-dist/tex/luatex/optex/bib-iso690.opm | 373 ++-- Master/texmf-dist/tex/luatex/optex/cite-bib.opm | 80 +- Master/texmf-dist/tex/luatex/optex/colors.opm | 155 +- Master/texmf-dist/tex/luatex/optex/doc.opm | 259 +++ Master/texmf-dist/tex/luatex/optex/f-adventor.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-antt.opm | 12 +- .../texmf-dist/tex/luatex/optex/f-baskerville.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-bonum.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-cursor.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-gfsbodoni.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-heros.opm | 250 +-- .../texmf-dist/tex/luatex/optex/f-libertine-s.opm | 9 +- Master/texmf-dist/tex/luatex/optex/f-libertine.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-lido.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-lmfonts.opm | 93 +- Master/texmf-dist/tex/luatex/optex/f-pagella.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-schola.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-technika.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-termes.opm | 8 +- Master/texmf-dist/tex/luatex/optex/f-xcharter.opm | 8 +- Master/texmf-dist/tex/luatex/optex/fams-ini.opm | 67 +- Master/texmf-dist/tex/luatex/optex/fnotes.opm | 71 +- Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm | 93 +- .../texmf-dist/tex/luatex/optex/fonts-preload.opm | 38 +- .../texmf-dist/tex/luatex/optex/fonts-resize.opm | 351 ++-- .../texmf-dist/tex/luatex/optex/fonts-select.opm | 767 +++++---- Master/texmf-dist/tex/luatex/optex/graphics.opm | 133 +- Master/texmf-dist/tex/luatex/optex/hi-syntax.opm | 223 +++ Master/texmf-dist/tex/luatex/optex/hisyntax-c.opm | 66 + .../texmf-dist/tex/luatex/optex/hisyntax-html.opm | 31 + .../tex/luatex/optex/hisyntax-python.opm | 82 + .../texmf-dist/tex/luatex/optex/hisyntax-tex.opm | 38 + Master/texmf-dist/tex/luatex/optex/hyperlinks.opm | 76 +- Master/texmf-dist/tex/luatex/optex/hyphen-lan.opm | 53 +- Master/texmf-dist/tex/luatex/optex/if-macros.opm | 215 ++- Master/texmf-dist/tex/luatex/optex/languages.opm | 40 +- Master/texmf-dist/tex/luatex/optex/lists.opm | 47 +- Master/texmf-dist/tex/luatex/optex/logos.opm | 33 +- Master/texmf-dist/tex/luatex/optex/luatex-ini.opm | 2 +- Master/texmf-dist/tex/luatex/optex/makeindex.opm | 139 +- Master/texmf-dist/tex/luatex/optex/maketoc.opm | 87 +- Master/texmf-dist/tex/luatex/optex/margins.opm | 97 +- Master/texmf-dist/tex/luatex/optex/math-macros.opm | 214 ++- .../texmf-dist/tex/luatex/optex/math-preload.opm | 109 +- .../texmf-dist/tex/luatex/optex/math-unicode.opm | 156 +- Master/texmf-dist/tex/luatex/optex/more-macros.opm | 194 ++- .../texmf-dist/tex/luatex/optex/multicolumns.opm | 13 +- Master/texmf-dist/tex/luatex/optex/optex.ini | 43 +- Master/texmf-dist/tex/luatex/optex/others.opm | 54 +- Master/texmf-dist/tex/luatex/optex/outlines.opm | 28 +- Master/texmf-dist/tex/luatex/optex/output.opm | 114 +- Master/texmf-dist/tex/luatex/optex/parameters.opm | 283 +-- .../texmf-dist/tex/luatex/optex/pdfuni-string.opm | 29 +- .../texmf-dist/tex/luatex/optex/plain-macros.opm | 196 ++- Master/texmf-dist/tex/luatex/optex/prefixed.opm | 197 ++- Master/texmf-dist/tex/luatex/optex/ref-file.opm | 83 +- Master/texmf-dist/tex/luatex/optex/references.opm | 31 +- Master/texmf-dist/tex/luatex/optex/sections.opm | 207 +-- Master/texmf-dist/tex/luatex/optex/slides.opm | 43 +- Master/texmf-dist/tex/luatex/optex/styles.opm | 26 +- Master/texmf-dist/tex/luatex/optex/table.opm | 76 +- Master/texmf-dist/tex/luatex/optex/uni-lcuc.opm | 16 + .../texmf-dist/tex/luatex/optex/unimath-codes.opm | 91 +- Master/texmf-dist/tex/luatex/optex/usebib.opm | 118 +- Master/texmf-dist/tex/luatex/optex/verbatim.opm | 149 +- 73 files changed, 6383 insertions(+), 4292 deletions(-) create mode 100644 Master/texmf-dist/doc/luatex/optex/optex-techdoc.tex create mode 100644 Master/texmf-dist/doc/luatex/optex/optex-userdoc.tex create mode 100644 Master/texmf-dist/tex/luatex/optex/basic-macros.opm delete mode 100644 Master/texmf-dist/tex/luatex/optex/basics-macros.opm create mode 100644 Master/texmf-dist/tex/luatex/optex/doc.opm create mode 100644 Master/texmf-dist/tex/luatex/optex/hi-syntax.opm create mode 100644 Master/texmf-dist/tex/luatex/optex/hisyntax-c.opm create mode 100644 Master/texmf-dist/tex/luatex/optex/hisyntax-html.opm create mode 100644 Master/texmf-dist/tex/luatex/optex/hisyntax-python.opm create mode 100644 Master/texmf-dist/tex/luatex/optex/hisyntax-tex.opm diff --git a/Master/texmf-dist/doc/luatex/optex/README b/Master/texmf-dist/doc/luatex/optex/README index 2c8fa6652c3..6f2d9d5eec5 100644 --- a/Master/texmf-dist/doc/luatex/optex/README +++ b/Master/texmf-dist/doc/luatex/optex/README @@ -8,6 +8,9 @@ See http://petr.olsak.net/optex History: +<0.10> Technical documentation added + \_famdecl instedad \_fontdecl in font family files (incompatible change). +<0.09> Syntax highlighting implemented. <0.08> \numberedpar implmented. \emergencystretch=20pt added as default. \inoval, \incircle, \clipinoval, \clipincircle imlemented. \puttext, \putpic x,y instead -y,x (incompatible change!) diff --git a/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf b/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf index b366233d9f4..7f9ec85ac85 100644 Binary files a/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf and b/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf differ diff --git a/Master/texmf-dist/doc/luatex/optex/optex-doc.tex b/Master/texmf-dist/doc/luatex/optex/optex-doc.tex index 0a1b6b5d8af..b4e41b68747 100644 --- a/Master/texmf-dist/doc/luatex/optex/optex-doc.tex +++ b/Master/texmf-dist/doc/luatex/optex/optex-doc.tex @@ -1,28 +1,25 @@ +%% This is part of OpTeX project, see http://petr.olsak.net/optex -\fontfam[LMfonts] -\typosize[11/13] -\enlang -\margins/1 a4 (2,2,2,2)cm +% Run optex optex-doc (three times) to generate OpTeX documentation. -\catcode`<=13 -\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}} -\everyintt={\catcode`\<=13} -\everytt=\everyintt -\enquotes +\input doc.opm \let\enddocument=\endinput -\def\new{\mnote{\Red$\blacktriangleleft$}} -\fixmnotes\right +\typosize[10/12] -\activettchar` +\let\new=\relax -\hyperlinks{\Blue}{\Green} -\insertoutline{CONTENTS} \outlines{0} +\begingroup \typosize [11/13.5] + +\insertoutline{OpTeX} +\vglue1cm +\centerline{\setfontsize{at50pt}\rm\OpTeX} +\vskip-8mm -\tit \OpTeX/\nl Format Based on Plain \TeX/ and OPmac\fnotemark1 +\tit Format Based on Plain \TeX/ and OPmac\fnotemark1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hfill Version 0.08 +\hfill Version 0.10 \centerline{\it Petr Olšák, 2020} @@ -30,39 +27,39 @@ \centerline{\url{http://petr.olsak.net/optex}} \fnotetext {The OPmac package is a set of simple additional macros to Plain \TeX{}. It -enables users to take advantage of basic \LaTeX/ functionality but keeps +enables users to take advantage of \LaTeX/ functionality but keeps Plain \TeX/ simplicity. See -\url{http://petr.olsak.net/opmac-e.html} for more information about it. -For OPmac users: the red triangle {\Red$\blacktriangleleft$} in the right margin -means that there is a difference from standard OPmac features.} +\url{http://petr.olsak.net/opmac-e.html} for more information about it.} -\notoc\nonum \sec Contents -\maketoc +\bigskip +\noindent +\OpTeX/ is \LuaTeX/ format with Plain \TeX/ and OPmac. Only \LuaTeX/ engine +is supported. -\nonum \sec Introduction -%%%%%%%%%%%% +\OpTeX/ should be a modern Plain \TeX/ with power from OPmac (Fonts +Selection System, colors, graphics, references, hyperlinks, +indexing, bibliography, ...) with preferred Unicode fonts. -\OpTeX/ is \LuaTeX/ format with Plain \TeX/ and OPmac. Only \LuaTeX/ engine -is supported. The main goal of \OpTeX/ is: +The main goal of \OpTeX/ is: \begitems * \OpTeX/ keeps the simplicity (like in Plain \TeX/ and OPmac macros). * There is no old obscurities concerning with various 8-bit encodings and various engines. -* \OpTeX/ provides a powerful font selection system (for Unicode font +* \OpTeX/ provides a powerful Fonts Selection System (for Unicode font families, of course). * \OpTeX/ supports hyphenations of all languages installed in your \TeX/ system. -* All features from OPmac macros are copied. -* Macros are documented in the same place where code is (macros for printing - such documentation will come in the future). +* All features from OPmac macros are copied. For example sorting words in + the Index\fnotemark1, reading `.bib` files directly\fnotemark1, syntax + highlighting\fnotemark1, colors, graphics, hyperlinks, references). + \fnotetext{All these features are implemented by \TeX/ macros, no external + program is needed.} +* Macros are documented in the same place where code is. * User name space of control sequences is separated from internal name space - of \OpTeX/ and primitives (`\foo` versus `\_foo`). + of \OpTeX/ and primitives (`\foo` versus `\_foo`). The name spaces for + macro writers are designed too. \enditems -\OpTeX/ should be a modern Plain \TeX/ with power from OPmac (fonts selection -system, colors, external graphics, references, hyperlinks, indexing, -bibliography, ...) with preferred Unicode fonts. - If you need to customize your document or you need to use something very specific, then you can copy relevant parts of \OpTeX/ macros into your macro file and do changes of these macros here. This is significant difference from @@ -70,1755 +67,45 @@ file and do changes of these macros here. This is significant difference from plenty of non-primitive parameters and syntax hiding \TeX/ internals. The macros from \OpTeX/ are simple and straightforward because they solve only what is explicitly needed, they does not create a new user level for -controlling your document over \TeX/. -And you can use \OpTeX/ macros, understand them an modify them. +controlling your document. We have \TeX. +You can use \OpTeX/ macros, understand them an modify them. \OpTeX/ offers a markup language for authors of texts (like \LaTeX), i.\,e.\ the fixed set of tags to define the structure of the document. This markup is different from the \LaTeX{} markup. It may offer to write the source text of the document somewhat clearer and more attractive. -\new -{\bf Disclaimer:} This software is under construction. It is possible -that some features documented here will be changed in future. +The manual includes two parts: user documentation and technical +documentation. The second part is generated directly from the sources of +\OpTeX/. There are many hyperlinks from one part to second and vice versa. -This manual desribes \OpTeX/ features only. We suppose that user knows \TeX/ -basic principles. They are described in many books. You can see a short +This manual describes \OpTeX/ features only. We suppose that user knows \TeX/ +basics. They are described in many books. You can see a short document \ulink[http://petr.olsak.net/ftp/olsak/optex/tex-nutshell.pdf] {\TeX/ in nutshell} too. +\vfil\break -\sec Starting with \OpTeX/ -%%%%%%%%%%%%%%%%%%%%%%%%% - -\new -\OpTeX/ is compiled as a format for \LuaTeX/. Maybe there is a command -`optex` in your \TeX/ distribution. Then you can write into command line - -\begtt -optex document -\endtt -% -You can try to process `optex op-demo` or `optex optex-doc`. - -If there is no `optex` command, see more information about installation -\OpTeX/ at \url{http://petr.olsak.net/optex}. - -A minimal document should be - -\begtt -\fontfam[LMfonts] -Hello World! \bye -\endtt - -The first line `\fontfam[LMfonts]` tells that Unicode Latin Modern -fonts (derived from Computer Modern) are used. If you omit this line then -preloaded Latin Modern fonts are used but preloaded fonts cannot be in -Unicode\fnote -{This is a technical limitation of \LuaTeX/ for fonts downloaded in formats: -only 8bit fonts can be preloaded.}. -So the sentence `Hello World` will be OK without the first line, but you -cannot print such sentence in another languages (for example `Ahoj světe!`) -where Unicode fonts are needed -because of the characters like `ě` are not mapped correctly in preloaded -fonts. - -A somewhat larger example with common settings should be: - -\begtt \catcode`!=0 -\fontfam[Termes] % selecting Unicode font family Termes (section !ref[fontfam]) -\typosize[11/13] % setting the basic font size and the baselineskip (sec. !ref[sizes]) -\margins/1 a4 (1,1,1,1)in % setting 1in margins for A4 paper (section !ref[marg]) -\cslang % Czech hyphenation patterns (section !ref[lang]) - -Tady je text. -\bye -\endtt -% -You can look at `op-demo.tex` file for more examples. - - -\sec Page layout -%%%%%%%%%%%%%%%% - -\secc[marg] Setting the margins -%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\OpTeX/ declares paper formats a4, a4l (landscape~a4), a5, a5l, b5, letter and -user can declare another own format by `\sdef`: - -\begtt -\sdef{_pgs:b5l}{(250,176)mm} -\sdef{_pgs:letterl}{(11,8.5)in} -\endtt - -The `\margins` command declares margins of the document. This command have -the following parameters: - -\begtt -\margins/ (,,,) - example: -\margins/1 a4 (2.5,2.5,2,2)cm -\endtt - -Parameters are: - -\begitems -* \dots\ `1` or `2` specifies one-page or two-pages design. -* \dots\ paper format (a4, a4l, a5, letter, etc. or user defined). -* , , , \dots\ gives the amount of left, right, - top and bottom margins. -* \dots\ unit used for values , , , . -\enditems - -Each of the parameters , , , can be empty. -If both and are nonempty then `\hsize` is set. Else `\hsize` -is unchanged. If both and are empty then typesetting area is -centered in the paper format. The analogical rule works when or -parameter is empty (`\vsize` instead `\hsize` is used). Examples: - -\begtt -\margins/1 a4 (,,,)mm % \hsize, \vsize untouched, - % typesetting area centered -\margins/1 a4 (,2,,)cm % right margin set to 2cm - % \hsize, \vsize untouched, vertically centered -\endtt - -If `=1` then all pages have the same margins. If `=2` then the -declared margins are true for odd pages. The margins at the even pages are -automaticaly mirrored in such case, it means that is replaced by - and vice versa. - -The `` can be also in the form `(,)` where `` is -optional. If it is missing then `` after margins specification is -used. For example: - -\begtt -\margins/1 (100,200) (7,7,7,7)mm -\endtt -% -declares the paper 100$\times$200\,mm with all four margins 7\,mm. The spaces -before and after parameter are necessary. - -The command `\magscale[]` scales the whole typesetting area. -\new The fixed point of such scaling is the upper left corner of the paper sheet. -Typesetting (breakpoints etc.) is unchanged. All units are relative after -such scaling. Only paper formats dimensions stays unscaled. Example: - -\begtt -\margins/2 a5 (22,17,19,21)mm -\magscale[1414] \margins/1 a4 (,,,)mm -\endtt -% -The first line sets the `\hsize` and `\vsize` and margins for final -printing at a5 format. The setting on the second line centers the scaled -typesetting area to the true a4 paper while breaking points for paragraphs -and pages are unchanged. It may be usable for -review printing. After review is done, the second line can be commented out. - -\secc Concept of default page -%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\OpTeX/ uses for page design very similar \"output routine" like Plain -\TeX/. There is `\headline` followed by \"page body" followed by -`\footline`. The `\headline` is empty by default and it can be used -for running headers repeated on each page. The `\footline` prints -centered page number by default. You can set the `\footline` to empty -using `\nopagenumbers` macro. - -The margins declared by `\margins` macro (documented in the previous -section~\ref[marg]) is concerned to the page body, -i.e.\ the `\headline` and `\footline` are placed to the top and bottom -margins. - -The distance between the `\headline` and the top of the page body is given by -`\headlinedist` register. The distance between bottom of the page body and -the `\footline` is given by `\footlinedist`. The default values are: - -\begtt -\headline = {} -\footline = {\_hss\_rmfixed \_folio \_hss} % \folio expands to page number -\headlinedist = 14pt % from baseline of \headline to top of page body -\footlinedist = 24pt % from last line in pagebody to baseline of footline -\endtt - -The page body should be divided to top insertions (floating tables and -figures) followed by a real text and followed by footnotes. -Typically, only real text is here. - -The `\pgbackground` tokens list is empty by default but it can be used for -creating background of each page (colors, picture, watermark for example). -The macro `\draft` uses this register and puts big text DRAFT as watermark -to each page. You can try it. - -More about the page layout is documented in files `parameters.opm` and -`output.opm`. - -\secc Footnotes and marginal notes -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The Plain \TeX/'s macro `\footnote` can be used as usual. But a new macro -`\fnote{}` is defined. The footnote mark is added automatically and it -is numbered -\new -on each chapter from one\fnote -{You can declare `\fnotenumglobal` if you want footnotes numbered in whole -document from one or `\fnotenumpages` if you want footnotes numbered at each -page from one. Default setting is `\fnotenumchapters`}. -The is scaled to 80 \%. -User can redefine footnote mark or scaling, as shown in the file -`fnotes.opm`. - -The `\fnote` macro is fully applicable only in \"normal outer" paragraph. -It doesn't work inside boxes (tables for example). If you are solving such -case you can use `\fnotemark` inside the box: only the -footnote mark is generated here. When the box is finished you can use -`\fnotetext{}`. This macro puts the to the footnote. -The have to be `1` if only one such command is in the box. -Second `\fnotemark` inside the same box have to have the parameter `2` etc. -The same number of `\fnotetext`s have to be written -after the box as the number of `\fnotemark`s inserted inside the box. -Example: - -\begtt -Text in a paragraph\fnote{First notice}... % a "normal" footnote -\table{...}{...\fnotemark1...\fnotemark2...} % two footnotes in a box -\fnotetext{Second notice} -\fnotetext{Third notice} -... -\table{...}{...\fnotemark1...} % one footnote in a box -\fnotetext{Fourth notice} -\endtt - -The marginal note can be printed by the `\mnote{}` macro. The -is placed to the right margin on the odd pages and it is placed to the left -margin on the even pages. This is done after second \TeX{} run because the -relevant information is stored in an external file and read from it again. -If you need to place the notes only to the fixed margin write -`\fixmnotes\right` or `\fixmnotes\left`. - -The is formatted as a little paragraph with the maximal width -`\mnotesize` ragged left on the left margins or ragged right on the right -margins. The first line of this little paragraph has its vertical position -given by the position of `\mnote` in the text. The exceptions are possible -by setting the `\mnoteskip` register. You can implement such exceptions to -each `\mnote` manually in final printing in order to margin notes do not -overlap. The positive value of `\mnoteskip` shifts the note up and negative -value shifts it down. For example `\mnoteskip=2\baselineskip \mnote{}` -shifts this (and only this) note two lines up. - - -\sec Fonts -%%%%%%%%%% - -\secc[fontfam] Font families -%%%%%%%%%%%%%%%%%%%%%%% - -You can select the font family by `\fontfam[]`. -The argument is case insensitive and spaces are ignored. So, -`\fontfam[LM Fonts]` is equal to `\fontfam[LMfonts]` and it is equal -to `\fontfam[lmfonts]`. Several aliases are prepared, thus -`\fontfam[Latin Modern]` can be used for loading Latin Modern family too. - -If you write `\fontfam[?]` then all font families registered in \OpTeX/ -are listed on the terminal and in the log file. -If you write `\fontfam[catalog]` then a catalog of all fonts registered in -\OpTeX/ and available in your \TeX/ system is printed. The instructions -how to register your own font family is appended in such catalog. - -If the family is loaded then {\em font modifiers} applicable in such font family -are listed on the terminal: (`\caps`, `\cond` for example). -And there are four basic {\em variant selectors} (`\rm`, `\bf`, `\it`, `\bi`). -The usage of variant selectors is the same as in Plain \TeX: -`{\it italics text}`, `{\bf bold text}` etc. - -The font modifiers (`\caps`, `\cond` for example) can -be used before a basic variant selector and they -can be (independently) combined: `\caps\it` or `\cond\caps\bf`. The -modifiers keeps their internal setting until group ends or until another -modifier which negates the previous feature is used. So -`\caps \rm text \it text` uses normal and italics in Caps and SmallCaps. - -\new -There is one special variant selector `\currvar` which does not change the -selected variant but reloads the font due to the (maybe newly -specified) font modifier(s). - -The context between variants `\rm`--`\it` and `\bf`--`\bi` is kept by the `\em` -macro (emphasize text). -It switches from current `\rm` to `\it`, from current `\it` to `\rm`, from -current `\bf` to `\bi` and from current `\bi` to `\bf`. -The italics correction `\/` is inserted automatically. Example: - -\begtt -This is {\em important} text. % = This is {\it important\/} text. -\it This is {\em important} text. % = This is\/ {\rm important} text. -\bf This is {\em important} text. % = This is {\bi important\/} text. -\bi This is {\em important} text. % = This is\/ {\bf important} text. -\endtt - -\new -More about the \OpTeX/ font selection system is written the file -`fonts-select.opm`. You can mix more font families in your document, you can -declare your own variant selectors or modifiers etc. - -\secc[sizes] Font sizes -%%%%%%%%%%%%%%%%%%%%% - -The command `\typosize[/]` sets the font size of text and -math fonts and baselineskip. If one of these two parameters is empty, the -corresponding feature stays unchanged. Don't write the unit of these -parameters. The unit is internally set to `\ptunit` which is 1pt by default. -You can change the unit by the command `\ptunit=`, -for instance `\ptunit=1mm` enlarges all font sizes declared by `\typosize`. -Examples: - -\begtt -\typosize[10/12] % default of Plain TeX -\typosize[11/12.5] % font 11pt, baseline 12.5pt -\typosize[8/] % font 8pt, baseline unchanged -\endtt - -The commands for font size setting described in this section -have local validity. If you put them into a group, -the settings are lost when the group is finished. If you set -something relevant with paragraph shape (baselineskip given by -`\typosize` for example) then you must first finalize the -paragraph and second to close the group: -`{\typosize[12/14] ...... \par}`. - -The command -`\typoscale[/]` -sets the text and math fonts -size and baselineskip as a multiple of the current fonts size and -baselineskip. The factor is written in \"scaled"-like way, it means that 1000 -means factor one. The empty parameter is equal to the parameter 1000, -i.e. the value stays unchanged. Examples: - -\begtt -\typoscale[800/800] % fonts and baselineskip re-size to 80 % -\typoscale[\magstep2/] % fonts bigger 1,44times (\magstep2 expands to 1440) -\endtt - -First usage of `\typosize` or `\typoscale` macro in your document sets so -called {\em main values}, i.\,e.\ main font size and main baselineskip. They are internally -saved in registers `\mainfosize` and `\mainbaselineskip`. - -\new -The `\typoscale` command does scaling in respect to current values by default. -If you want to do it in respect to main values, type `\scalemain` immediately -before `\typoscale` command. - -\begtt -\typosize[12/14.4] % first usage in document, sets main values internally -\typosize[15/18] % bigger font -\scalemain \typoscale[800/800] % reduces from main values, no from current. -\endtt - -The size of the current font can be changed by the command -`\thefontsize[]` or can be rescaled by -`\thefontscale[]`. These macros don't change math fonts sizes nor -baselineskip. - -\new -There is \"low level" `\setfontsize{}` command which behaves like -a font modifier and sets given font size used by next variant selectors. -For example `\setfontsize{at15pt}\currvar` sets current variant to 15pt. - -If you are using a font family with \"optical sizes feature" (i.\,e.\ there -are more recommended sizes of the same font which are not scaled -linearly; good example is Computer Modern aka Latin Modern fonts) -then the recommended size is selected by all mentioned commands automatically. - -More information about resizing of fonts is documented in `fonts-resize.opm` -file. - -\secc Typesetting math -%%%%%%%%%%%%%%%%%%%%% - -\OpTeX/ preloads a collection of 7bit Computer Modern math fonts -and AMS fonts in its format. You can use them in any size and in the -`\boldmath` variant. -% -\new -Most declared text font families (see `\fontfam` in the section~\ref[fontfam]) -are configured with recommended Unicode -math font. This font is automaticlaly loaded unless you specify -`\noloadmath` before first `\fontfam` command. See log file for more -information about loading text font family and Unicode math fonts. If you -prefer another Unicode math font, specify it by `\loadmath{[]}` -or `\loadmath{font-name}` before first `\loadfam` command. - -Hundreds math symbols and operators like in AMS\TeX/ are accessible. -For example `\alpha` $\alpha$, `\geq`~$\geq$, `\sum` $\sum$, -`\sphericalangle` $\sphericalangle$, `\bumpeq`, $\bumpeq$. See AMS\TeX/ -manual for complete list of symbols. - -The following math alphabets are available: - -\begtt \catcode`\$=3 \catcode`/=0 \medmuskip=0mu \adef{ }{ } -\mit % mathematical variables $abc-xyz,ABC-XYZ$ -\it % text italics $/it abc-xyz,ABC-XYZ$ -\rm % text roman $/rm abc-xyz,ABC-XYZ$ -\cal % normal calligraphics $/cal ABC-XYZ$ -\script % script $/script ABC-XYZ$ -\frak % fracture $/frak abc-xyz,ABC-XYZ$ -\bbchar % double stroked letters $/bbchar ABC-XYZ$ -\bf % sans serif bold $/bf abc-xyz,ABC-XYZ$ -\bi % sans serif bold slanted $/bi abc-xyz,ABC-XYZ$ -\endtt - -The last two selectors `\bf` and `\bi` select the sans serif fonts in math regardless -the current text font family. This is common notation for vectors and -matrices. You can re-declare it, see the file `unimath-codes.opm` where math -variants of `\bf` and `\bi` selectors are defined. - -The math fonts can be scaled by `\typosize` and `\typoscale` macros. -Two math fonts collections are prepared: `\normalmath` for normal weight -and `\boldmath` for bold. The first one is set by default. - -\new -You can use `\mathbox{}` inside math mode. It behaves as `{\hbox{}}` -(i.e. the is printed in horizontal non-math mode) -but the size of the is adapted to the context of math size (text or script or -scriptscript). - - -\sec Typical elements of document -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\secc[chap] Chapters and sections -%%%%%%%%%%%%%%%%%%%%%%%%%% - -The document can be divided into chapters, sections and subsections and titled -by `\tit` command. The parameters are separated by the end of current line (no -braces are used): - -\begtt -\tit Document title -\chap Chapter title -\sec Section title -\secc Subsection title -\endtt - -If you want to write a title to more lines in your source file then you can -use percent character before . Such is not -scanned and reading of the title continues at next line. - -The chapters are automatically numbered by one number, sections by two numbers -(chapter.section) and subsections by three numbers. If there are no chapters -then section have only one number and subsection two. - -The implicit design of the titles of chapter etc.\ are implemented in the -macros `\_printchap`, `\_printsec` and `\_printsecc`. A designer can simply change -these macros if he/she needs another behavior. - -The first paragraph after the title of chapter, section and subsection is -not indented but you can type `\let\_firstnoindent=\relax` if you need all -paragraphs indented. - -If a title is so long then it breaks to more lines. It is better to hint the -breakpoints because \TeX/ does not interpret the meaning of the title. -User can put the `\nl` (it means newline) macro to the breakpoints. - -The chapter, section or subsection isn't numbered if the `\nonum` precedes. -And the chapter, section or subsection isn't delivered to the table of -contents if `\notoc` precedes. - -\secc[cap] Another numbered objects -%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Apart from chapters, sections and subsections, there are another -automatically numbered objects: equations, captions for tables and -figures. The user can declare more numbered object. - -If the user writes the `\eqmark` as the last element of the display mode then -this equation is numbered. The equation number is printed in brackets. This number -resets in each section by default. - -If the `\eqalignno` is used, then user can put `\eqmark` to the last column -before `\cr`. For example: - -\begtt -\eqalignno{ - a^2+b^2 &= c^2 \cr - c &= \sqrt{a^2+b^2} & \eqmark \cr} -\endtt - -The next automatically numbered objects are captions which is tagged by `\caption/t` for -tables and `\caption/f` for figures. -The caption text follows. -The `\cskip` can be used between `\caption` text and the real object (table -or figure). You can use two orders: `\cskip ` or -`\cskip `. -The `\cskip` creates appropriate vertical space between them. Example: - -\begtt -\caption/t The dependency of the computer-dependency on the age. -\cskip -\noindent\hfil\table{rl}{ - age & value \crl\noalign{\smallskip} - 0--1 & unmeasured \cr - 1--6 & observable \cr - 6--12 & significant \cr - 12--20 & extremal \cr - 20--40 & normal \cr - 40--60 & various \cr - 60--$\infty$ & moderate} -\endtt - -This example produces: - -\medskip -\caption/t The dependency of the computer-dependency on the age. -\cskip -\noindent\hfil\table{rl}{ - age & value \crl\noalign{\smallskip} - 0--1 & unmeasured \cr - 1--6 & observable \cr - 6--12 & significant \cr - 12--20 & extremal \cr - 20--40 & normal \cr - 40--60 & various \cr - 60--$\infty$ & moderate} -\medskip - -You can see that the word \"Table" followed by a number is added by the macro -`\caption/t`. -The caption text is centered. If it occupies more lines then the -last line is centered. - -The macro `\caption/f` behaves like `\caption/t` but it is intended for -figure captions with independent numbering. -The word (Table, Figure) depends on the actual selected language (see -section~\ref[lang] about languages). - -If you wish to make the table or figure as floating object, you need to use -Plain \TeX/ macros `\midinsert` or `\topinsert` terminated by `\endinsert`. -Example: - -\begtt -\topinsert % table and its caption is printed at the top of the current page - -\endinsert -\endtt - -\new -There are five prepared counters `A`, `B`, `C`, `D` and `E`. -They are reset in each chapter and section\fnote -{This feature can be changed, see the `sections.opm` in the technical documentation.}. -They can be used in context of `\numberedpar {}` -macro. For example: -\begtt -\def\theorem {\numberedpar A{Theorem}} -\def\corollary {\numberedpar A{Corollary}} -\def\definition {\numberedpar B{Definition}} -\def\example {\numberedpar C{Example}} -\endtt -% -Three independent numbers are used in this example. One for Theorems and Corollaries -second for Definitions and third for Examples. The user can write -`\theorem Let $M$ be...` and the new paragraph is started with the text: -{\bf Theorem 2.3.1.} Let $M$ be... -You can add an optional parameter in brackets. For example, -`\theorem [(L'Hôpital's rule)] Let $f$, $g$ be...` -is printed like {\bf Theorem 2.4.2 (L'Hôpital's rule).} Let $f$, $g$ be... - - -\secc References -%%%%%%%%%%%%%%% - -Each automatically numbered object documented in -sections \ref[chap] and \ref[cap] can be referenced -\new -if optional parameter -`[