diff options
author | Karl Berry <karl@freefriends.org> | 2019-07-14 20:48:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-07-14 20:48:21 +0000 |
commit | 43f963c6e7c57e4278ebb7644cef82b408d66f95 (patch) | |
tree | 72aeaeb7f63e0998db6f7e49c6da7c3926212b21 /Master | |
parent | badaed21f7141a96f6f45926f52fbee0d695260c (diff) |
pseudo (14jul19)
git-svn-id: svn://tug.org/texlive/trunk@51641 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/Makefile | 21 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/README.md | 94 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/VERSION | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex | 28 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex | 15 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg | 411 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex | 16 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf | bin | 528156 -> 555540 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex | 113 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pseudo/pseudo.sty | 22 |
12 files changed, 717 insertions, 9 deletions
diff --git a/Master/texmf-dist/doc/latex/pseudo/Makefile b/Master/texmf-dist/doc/latex/pseudo/Makefile index 8b649a353f4..388a7bea2f9 100644 --- a/Master/texmf-dist/doc/latex/pseudo/Makefile +++ b/Master/texmf-dist/doc/latex/pseudo/Makefile @@ -1,5 +1,9 @@ +TARGETS=doc/pseudo.pdf doc/fig/readmefig.svg + LATEX=latexmk -norc -pdf -auxdir=build -outdir=build -FIGS=build/hilitefig.pdf build/pausefig.pdf +FIGS=build/hilitefig.pdf build/pausefig.pdf build/kwfig.pdf + +all: $(TARGETS) doc/pseudo.pdf: build/pseudo.pdf cp $< $@ @@ -16,6 +20,9 @@ build/hilitefig.pdf: doc/fig/hilitefig.tex pseudo.sty build/pausefig.pdf: doc/fig/pausefig.tex pseudo.sty $(LATEX) $< +build/kwfig.pdf: doc/fig/kwfig.tex pseudo.sty + $(LATEX) $< + pseudo.sty: VERSION LICENSE doc/pseudo.tex cat LICENSE | sed -e "s/^/% /" | sed -e "s/^% \$$/%/" > pseudo.sty echo "%" >> pseudo.sty @@ -31,3 +38,15 @@ pseudo.sty: VERSION LICENSE doc/pseudo.tex -e "/^\$$/d" \ -e "p" \ -e "}" >> pseudo.sty + +build/readmecode.tex: doc/fig/readmecode.tex + cp $< $@ + +build/readmefig.pdf: doc/fig/readmefig.tex build/readmecode.tex + $(LATEX) $< + +doc/fig/readmefig.svg: build/readmefig.pdf + pdf2svg $< $@ + +doc/fig/readmecode.tex: README.md + cat $< | sed -n -e "/\\begin{pseudo}\\*$$/,/\\end{pseudo}/p" > $@ diff --git a/Master/texmf-dist/doc/latex/pseudo/README.md b/Master/texmf-dist/doc/latex/pseudo/README.md index 5c175168fb7..90df5792f4e 100644 --- a/Master/texmf-dist/doc/latex/pseudo/README.md +++ b/Master/texmf-dist/doc/latex/pseudo/README.md @@ -1,3 +1,5 @@ +# pseudo.sty + The **pseudo** package permits writing pseudocode without much fuss and with quite a bit of configurability. Its main environment combines aspects of `enumeration`, `tabbing` and `tabular` for nonintrusive line numbering, @@ -6,3 +8,95 @@ common syntactic elements such as keywords, identifiers and comments. The package is written by [Magnus Lie Hetland](mailto:mlh@ntnu.no) and released under the [MIT license](LICENSE). + +## Using pseudo + +You can find more detailed instructions in [the +documentation](doc/pseudo.pdf), but it's really quite simple to get started. +The package is [available via CTAN](https://ctan.org/pkg/pseudo), and so is +part of several TeX distributions. If the newest version isn't in yours, try +to run an update. In TeX Live, for example, you could run use the [TeX Live +Utility](http://amaxwell.github.io/tlutility/) (part of distributions such as +[MacTeX](https://tug.org/mactex/)). Alternatively, you can just download the +[pseudo.sty](pseudo.sty) file and drop it where your `latex` can find it +(possibly just in the same directory as your document). + +Assuming you want numbered lines (the default) and have most text set as +keywords (set by the `kw` switch), you simply import **pseudo** using + +```tex +\usepackage[kw]{pseudo} +``` + +and then set your pseudocode in a `pseudo` environment. Lines are terminated +by the normal `\\` command, which may be extended with one or more pluses or +minuses to indicate a change in indentation level. You suppress the automatic +numbering of the following line using a star (i.e., either `\\*`, or +`\begin{pseudo}*`), and can typeset a procedure header using `\hd{Name}(...)`. +For [example](https://mipmip.org/tidbits/pasa.pdf): + +```tex +\begin{pseudo}* + + \hd{Backward}(V, E, v, i) \\ + + $v.\id{label} = i$ \\ + + for $(u,v)\in E$ \\+ + if $0 < v.\id{label} < i$ \\+ + \pr{Backward}(V, E, u, i) \\-- + + for $(u,v)\in E$ \\+ + if $u.\id{label} \== 0$ \\+ + \pr{Backward}(V, E, u, i+1) + +\end{pseudo} +``` + +This produces: + +<img src="doc/fig/readmefig.svg"/> + +There is also a starred version of the environment (`pseudo*`), which +is unnumbered. + +The commands `\pr` and `\id` indicate procedure calls and identifiers. +If we hadn't used the `kw` option, the main text would not be set as keywords, +but as plain text. We could then use `\kw` to mark up keywords. Some of these +may be used a lot, so I might want to declare a shortcut. For example, if +I use + +```tex +\DeclarePseudoKeyword \While {while} +``` + +I'd be able to use `\While` rather than `\kw{while}` later. Several such +formatting and declaration commands exist: + +| Type of text | Command | Declaration | +| ------------ | ------------------- | ----------------------------------------------- | +| Keywords | `\kw{while}` | `\DeclarePseudoKeyword \While {while}` | +| Constants | `\cn{false}` | `\DeclarePseudoConstant \False {false}` | +| Identifiers | `\id{rank}` | `\DeclarePseudoIdentifier \Rank {rank}` | +| Strings | `\st{Hello!}` | `\DeclarePseudoString \Hello {Hello!}` | +| Procedures | `\pr{Euclid}(a, b)` | `\DeclarePseudoProcedure \Euclid {Euclid}` | +| Functions | `\fn{length}(A)` | `\DeclarePseudoFunction \Length {length}` | +| Comments | `\ct{Important!}` | `\DeclarePseudoComment \Important {Important!}` | + +For normal text (e.g., when using the `kw` switch), there is also `\tn` (along +with `\DeclarePseudoNormal`). + +Since the short names of these commands are prone to collisions with other +packages, **pseudo** won't insist on using them. If you import **pseudo** +*after* some other package that already uses, say, `\id`, then **pseudo** +won't define it. All of these are still available with the `pseudo` prefix, +however (e.g., `\pseudoid`), and the declaration commands still work. + +Beyond the styling of text, there are also the `\==` and `\..` commands +(also written `\eqs` and `\dts`) for typesetting double equals sign and double +dots. + +This covers most of the core functionality, but there are also more obscure +features (such as dimming or highlighting lines) and a host of configuration +keys for getting the pseudocode looking more like you'd want it to. For +details, consult [the documentation](doc/pseudo.pdf). diff --git a/Master/texmf-dist/doc/latex/pseudo/VERSION b/Master/texmf-dist/doc/latex/pseudo/VERSION index 524cb55242b..45a1b3f4452 100644 --- a/Master/texmf-dist/doc/latex/pseudo/VERSION +++ b/Master/texmf-dist/doc/latex/pseudo/VERSION @@ -1 +1 @@ -1.1.1 +1.1.2 diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex index 8cffae23a43..b0e9cf7780d 100644 --- a/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex +++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex @@ -1,6 +1,6 @@ \documentclass[beamer,preview,multi]{standalone} \usepackage{pseudo} -\pseudoset{hpad, compact} +\pseudoset{hpad, compact, kwfont=\bfseries} \standaloneenv{myenv} diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex new file mode 100644 index 00000000000..8d25a73a492 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex @@ -0,0 +1,28 @@ +\documentclass[beamer,preview,multi, border={-.14pt .14pt 0pt .03pt}]{standalone} + +% To silence the warning from the first execution of \kwfont, in this case: +\usepackage{silence} +\WarningFilter{latexfont}{Font shape} +\WarningFilter{latexfont}{Some font shapes} + +\usepackage{varwidth} + +\usepackage{pseudo} +\pseudoset{compact} + +\standaloneenv{myenv} + +\begin{document} + +% Contents duplicated from pseudo.doc: +\begin{standaloneframe} +\begin{myenv} +\begin{varwidth}{\linewidth} +\textbf{while}\\ % Extended +\kw{while}\\ % Keyword +{\fontseries{b}\selectfont while} % Non-extended +\end{varwidth} +\end{myenv} +\end{standaloneframe} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex index bbc7ee91fd2..0e2645724d7 100644 --- a/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex +++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex @@ -1,6 +1,6 @@ \documentclass[beamer,preview,multi]{standalone} \usepackage{pseudo} -\pseudoset{compact} +\pseudoset{compact, kwfont=\bfseries} \setbeamercovered{transparent} \standaloneenv{myenv} diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex new file mode 100644 index 00000000000..9ad11a0aa91 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex @@ -0,0 +1,15 @@ +\begin{pseudo}* + + \hd{Backward}(V, E, v, i) \\ + + $v.\id{label} = i$ \\ + + for $(u,v)\in E$ \\+ + if $0 < v.\id{label} < i$ \\+ + \pr{Backward}(V, E, u, i) \\-- + + for $(u,v)\in E$ \\+ + if $u.\id{label} \== 0$ \\+ + \pr{Backward}(V, E, u, i+1) + +\end{pseudo} diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg new file mode 100644 index 00000000000..0fc3a645a30 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg @@ -0,0 +1,411 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="249.005pt" height="144.458pt" viewBox="0 0 249.005 144.458" version="1.1"> +<defs> +<g> +<symbol overflow="visible" id="glyph0-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph0-1"> +<path style="stroke:none;" d="M 7.421875 -5.34375 C 8.828125 -5.59375 10 -6.53125 10 -7.671875 C 10 -9 8.515625 -10.203125 6.515625 -10.203125 L 0.859375 -10.203125 L 0.859375 -9.734375 L 1.21875 -9.734375 C 2.375 -9.734375 2.40625 -9.578125 2.40625 -9.03125 L 2.40625 -1.171875 C 2.40625 -0.625 2.375 -0.46875 1.21875 -0.46875 L 0.859375 -0.46875 L 0.859375 0 L 6.9375 0 C 9 0 10.421875 -1.328125 10.421875 -2.734375 C 10.421875 -3.984375 9.21875 -5.140625 7.421875 -5.328125 Z M 3.640625 -9.140625 C 3.640625 -9.640625 3.671875 -9.734375 4.375 -9.734375 L 6.40625 -9.734375 C 7.9375 -9.734375 8.546875 -8.515625 8.546875 -7.671875 C 8.546875 -6.625 7.65625 -5.46875 5.96875 -5.46875 L 3.640625 -5.46875 Z M 6.640625 -5.140625 C 8.1875 -5.140625 8.9375 -3.8125 8.9375 -2.75 C 8.9375 -1.640625 8.03125 -0.46875 6.4375 -0.46875 L 4.375 -0.46875 C 3.671875 -0.46875 3.640625 -0.5625 3.640625 -1.0625 L 3.640625 -5.140625 Z M 6.640625 -5.140625 "/> +</symbol> +<symbol overflow="visible" id="glyph0-2"> +<path style="stroke:none;" d="M 4.921875 -7.609375 C 4.828125 -7.84375 4.75 -7.9375 4.578125 -7.9375 C 4.375 -7.9375 4.34375 -7.84375 4.265625 -7.640625 L 1.859375 -1.484375 C 1.703125 -1.078125 1.453125 -0.40625 0.515625 -0.375 L 0.515625 0 C 0.84375 -0.03125 1.265625 -0.046875 1.59375 -0.046875 C 1.859375 -0.046875 2.546875 -0.015625 2.84375 0 L 2.84375 -0.375 C 2.203125 -0.40625 2.171875 -0.90625 2.171875 -1.046875 C 2.171875 -1.171875 2.171875 -1.1875 2.671875 -2.53125 L 5.765625 -2.53125 L 6.09375 -1.6875 C 6.21875 -1.390625 6.40625 -0.875 6.40625 -0.796875 C 6.40625 -0.375 5.875 -0.375 5.609375 -0.375 L 5.609375 0 C 6.015625 -0.015625 6.90625 -0.046875 7.203125 -0.046875 C 7.703125 -0.046875 8.296875 -0.015625 8.65625 0 L 8.65625 -0.375 C 7.8125 -0.375 7.671875 -0.453125 7.484375 -0.96875 Z M 5.609375 -2.890625 L 2.828125 -2.890625 L 4.234375 -6.5 Z M 5.609375 -2.890625 "/> +</symbol> +<symbol overflow="visible" id="glyph0-3"> +<path style="stroke:none;" d="M 7.109375 -6.953125 C 6.796875 -7.28125 6.0625 -7.890625 4.9375 -7.890625 C 2.6875 -7.890625 0.765625 -6.109375 0.765625 -3.84375 C 0.765625 -1.5625 2.6875 0.203125 4.9375 0.203125 C 6.890625 0.203125 8.0625 -1.34375 8.0625 -2.640625 C 8.0625 -2.78125 8.0625 -2.890625 7.875 -2.890625 C 7.703125 -2.890625 7.703125 -2.796875 7.6875 -2.640625 C 7.59375 -1.0625 6.296875 -0.171875 5.046875 -0.171875 C 4.296875 -0.171875 2.046875 -0.5625 2.046875 -3.84375 C 2.046875 -7.15625 4.359375 -7.515625 5.03125 -7.515625 C 6.125 -7.515625 7.390625 -6.734375 7.671875 -4.84375 C 7.703125 -4.734375 7.71875 -4.640625 7.875 -4.640625 C 8.0625 -4.640625 8.0625 -4.71875 8.0625 -5 L 8.0625 -7.53125 C 8.0625 -7.765625 8.0625 -7.890625 7.921875 -7.890625 C 7.828125 -7.890625 7.8125 -7.859375 7.6875 -7.703125 Z M 7.109375 -6.953125 "/> +</symbol> +<symbol overflow="visible" id="glyph0-4"> +<path style="stroke:none;" d="M 2.796875 -3.28125 L 2.796875 -6.609375 C 2.796875 -7.21875 2.875 -7.296875 3.875 -7.296875 L 3.875 -7.671875 C 3.4375 -7.65625 2.578125 -7.640625 2.25 -7.640625 C 1.921875 -7.640625 1.09375 -7.65625 0.640625 -7.671875 L 0.640625 -7.296875 C 1.640625 -7.296875 1.71875 -7.21875 1.71875 -6.609375 L 1.71875 -1.078125 C 1.71875 -0.46875 1.640625 -0.375 0.640625 -0.375 L 0.640625 0 C 1.078125 -0.015625 1.921875 -0.046875 2.25 -0.046875 C 2.578125 -0.046875 3.421875 -0.015625 3.875 0 L 3.875 -0.375 C 2.875 -0.375 2.796875 -0.46875 2.796875 -1.078125 L 2.796875 -2.78125 L 4.234375 -4.046875 L 6.21875 -1.375 C 6.359375 -1.1875 6.546875 -0.890625 6.546875 -0.6875 C 6.546875 -0.40625 6.1875 -0.375 6.0625 -0.375 L 6.0625 0 C 6.359375 -0.015625 7.34375 -0.046875 7.625 -0.046875 C 8.015625 -0.046875 8.484375 -0.03125 8.890625 0 L 8.890625 -0.375 C 8.390625 -0.375 8.078125 -0.421875 7.53125 -1.1875 L 4.9375 -4.671875 C 7.765625 -7.25 8.078125 -7.265625 8.71875 -7.296875 L 8.71875 -7.671875 C 8.375 -7.640625 8.15625 -7.640625 7.78125 -7.640625 C 7.375 -7.640625 6.609375 -7.65625 6.390625 -7.671875 L 6.390625 -7.296875 C 6.5625 -7.28125 6.640625 -7.1875 6.640625 -7.015625 C 6.640625 -6.75 6.390625 -6.4375 6.15625 -6.234375 Z M 2.796875 -3.28125 "/> +</symbol> +<symbol overflow="visible" id="glyph0-5"> +<path style="stroke:none;" d="M 7 -6.5625 C 6.9375 -6.75 6.9375 -6.78125 6.9375 -6.875 C 6.9375 -7.296875 7.453125 -7.296875 7.734375 -7.296875 L 7.734375 -7.671875 C 7.296875 -7.65625 6.546875 -7.640625 6.171875 -7.640625 C 5.890625 -7.640625 5.234375 -7.640625 4.828125 -7.671875 L 4.828125 -7.296875 C 5.390625 -7.296875 5.5625 -7.265625 5.703125 -7.015625 C 5.828125 -6.859375 6.03125 -6.203125 6.03125 -6.171875 C 6.03125 -6.15625 6.03125 -6.125 5.96875 -5.96875 L 4.34375 -1.390625 L 2.515625 -6.59375 C 2.5 -6.640625 2.4375 -6.78125 2.4375 -6.875 C 2.4375 -7.296875 3 -7.296875 3.25 -7.296875 L 3.25 -7.671875 C 2.8125 -7.65625 2.0625 -7.640625 1.6875 -7.640625 C 1.40625 -7.640625 0.75 -7.640625 0.34375 -7.671875 L 0.34375 -7.296875 C 0.984375 -7.296875 1.171875 -7.25 1.328125 -6.796875 L 3.703125 -0.125 C 3.765625 0.046875 3.8125 0.171875 4 0.171875 C 4.203125 0.171875 4.25 0.03125 4.296875 -0.125 L 6.25 -5.59375 L 8.171875 -0.171875 C 8.25 0.046875 8.296875 0.171875 8.484375 0.171875 C 8.671875 0.171875 8.703125 0.078125 8.78125 -0.140625 L 10.953125 -6.234375 C 11.234375 -7.03125 11.625 -7.28125 12.140625 -7.296875 L 12.140625 -7.671875 C 11.828125 -7.640625 11.4375 -7.640625 11.125 -7.640625 C 10.78125 -7.640625 10.09375 -7.65625 9.828125 -7.671875 L 9.828125 -7.296875 C 10.484375 -7.28125 10.625 -6.828125 10.625 -6.578125 C 10.625 -6.40625 10.5625 -6.25 10.546875 -6.203125 L 8.84375 -1.390625 Z M 7 -6.5625 "/> +</symbol> +<symbol overflow="visible" id="glyph0-6"> +<path style="stroke:none;" d="M 2.78125 -6.65625 C 2.78125 -7.03125 2.8125 -7.1875 2.953125 -7.265625 C 3.0625 -7.296875 3.46875 -7.296875 3.734375 -7.296875 C 4.84375 -7.296875 6.109375 -7.265625 6.109375 -5.65625 C 6.109375 -5.078125 6.03125 -4 4.09375 -4 L 2.78125 -4 Z M 5.421875 -3.8125 C 6.46875 -4.078125 7.390625 -4.75 7.390625 -5.65625 C 7.390625 -6.703125 6.0625 -7.671875 4.25 -7.671875 L 0.671875 -7.671875 L 0.671875 -7.296875 C 1.671875 -7.296875 1.75 -7.21875 1.75 -6.609375 L 1.75 -1.078125 C 1.75 -0.46875 1.671875 -0.375 0.671875 -0.375 L 0.671875 0 C 1.125 -0.015625 1.84375 -0.046875 2.25 -0.046875 C 2.6875 -0.046875 3.46875 -0.015625 3.859375 0 L 3.859375 -0.375 C 2.859375 -0.375 2.78125 -0.46875 2.78125 -1.078125 L 2.78125 -3.671875 L 4.125 -3.671875 C 4.5 -3.671875 4.890625 -3.65625 5.34375 -3.203125 C 5.65625 -2.875 5.65625 -2.515625 5.65625 -1.859375 C 5.65625 -1.015625 5.65625 -0.75 6.140625 -0.28125 C 6.40625 -0.015625 7 0.203125 7.671875 0.203125 C 8.640625 0.203125 8.859375 -0.71875 8.859375 -1.015625 C 8.859375 -1.09375 8.859375 -1.234375 8.65625 -1.234375 C 8.5 -1.234375 8.484375 -1.109375 8.484375 -1.046875 C 8.375 -0.140625 7.84375 -0.125 7.734375 -0.125 C 7.4375 -0.125 7.296875 -0.3125 7.21875 -0.484375 C 7.09375 -0.71875 7 -1.140625 6.8125 -2.09375 C 6.6875 -2.609375 6.546875 -3.375 5.421875 -3.8125 Z M 5.421875 -3.8125 "/> +</symbol> +<symbol overflow="visible" id="glyph0-7"> +<path style="stroke:none;" d="M 1.75 -1.078125 C 1.75 -0.46875 1.671875 -0.375 0.671875 -0.375 L 0.671875 0 L 4.875 0 C 6.96875 0 8.5625 -1.734375 8.5625 -3.78125 C 8.5625 -5.84375 7.015625 -7.671875 4.875 -7.671875 L 0.671875 -7.671875 L 0.671875 -7.296875 C 1.671875 -7.296875 1.75 -7.21875 1.75 -6.609375 Z M 3.375 -0.375 C 2.859375 -0.375 2.78125 -0.421875 2.78125 -1.015625 L 2.78125 -6.65625 C 2.78125 -7.265625 2.859375 -7.296875 3.375 -7.296875 L 4.53125 -7.296875 C 5.8125 -7.296875 6.453125 -6.609375 6.65625 -6.328125 C 6.984375 -5.921875 7.3125 -5.28125 7.3125 -3.78125 C 7.3125 -2.546875 7.09375 -1.921875 6.78125 -1.453125 C 6.546875 -1.125 5.90625 -0.375 4.53125 -0.375 Z M 3.375 -0.375 "/> +</symbol> +<symbol overflow="visible" id="glyph1-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph1-1"> +<path style="stroke:none;" d="M 4.859375 3.625 C 4.859375 3.578125 4.859375 3.5625 4.59375 3.296875 C 3.109375 1.796875 2.265625 -0.671875 2.265625 -3.71875 C 2.265625 -6.625 2.96875 -9.109375 4.703125 -10.875 C 4.859375 -11.015625 4.859375 -11.03125 4.859375 -11.078125 C 4.859375 -11.171875 4.78125 -11.203125 4.71875 -11.203125 C 4.53125 -11.203125 3.296875 -10.125 2.5625 -8.65625 C 1.8125 -7.15625 1.46875 -5.5625 1.46875 -3.71875 C 1.46875 -2.390625 1.671875 -0.609375 2.453125 0.984375 C 3.328125 2.78125 4.5625 3.75 4.71875 3.75 C 4.78125 3.75 4.859375 3.71875 4.859375 3.625 Z M 4.859375 3.625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-2"> +<path style="stroke:none;" d="M 4.21875 -3.71875 C 4.21875 -4.859375 4.0625 -6.703125 3.21875 -8.4375 C 2.34375 -10.234375 1.125 -11.203125 0.953125 -11.203125 C 0.890625 -11.203125 0.828125 -11.171875 0.828125 -11.078125 C 0.828125 -11.03125 0.828125 -11.015625 1.078125 -10.75 C 2.5625 -9.25 3.40625 -6.78125 3.40625 -3.734375 C 3.40625 -0.84375 2.703125 1.65625 0.96875 3.421875 C 0.828125 3.5625 0.828125 3.578125 0.828125 3.625 C 0.828125 3.71875 0.890625 3.75 0.953125 3.75 C 1.15625 3.75 2.375 2.671875 3.109375 1.203125 C 3.875 -0.3125 4.21875 -1.921875 4.21875 -3.71875 Z M 4.21875 -3.71875 "/> +</symbol> +<symbol overflow="visible" id="glyph1-3"> +<path style="stroke:none;" d="M 4.296875 -9.578125 C 4.296875 -9.921875 4.296875 -9.9375 4 -9.9375 C 3.640625 -9.53125 2.890625 -8.984375 1.359375 -8.984375 L 1.359375 -8.546875 C 1.703125 -8.546875 2.453125 -8.546875 3.265625 -8.9375 L 3.265625 -1.15625 C 3.265625 -0.609375 3.21875 -0.4375 1.90625 -0.4375 L 1.453125 -0.4375 L 1.453125 0 C 1.859375 -0.03125 3.296875 -0.03125 3.796875 -0.03125 C 4.28125 -0.03125 5.71875 -0.03125 6.125 0 L 6.125 -0.4375 L 5.65625 -0.4375 C 4.34375 -0.4375 4.296875 -0.609375 4.296875 -1.15625 Z M 4.296875 -9.578125 "/> +</symbol> +<symbol overflow="visible" id="glyph1-4"> +<path style="stroke:none;" d="M 10.078125 -4.84375 C 10.296875 -4.84375 10.5625 -4.84375 10.5625 -5.109375 C 10.5625 -5.390625 10.3125 -5.390625 10.078125 -5.390625 L 1.28125 -5.390625 C 1.078125 -5.390625 0.8125 -5.390625 0.8125 -5.125 C 0.8125 -4.84375 1.0625 -4.84375 1.28125 -4.84375 Z M 10.078125 -2.0625 C 10.296875 -2.0625 10.5625 -2.0625 10.5625 -2.328125 C 10.5625 -2.609375 10.3125 -2.609375 10.078125 -2.609375 L 1.28125 -2.609375 C 1.078125 -2.609375 0.8125 -2.609375 0.8125 -2.34375 C 0.8125 -2.0625 1.0625 -2.0625 1.28125 -2.0625 Z M 10.078125 -2.0625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-5"> +<path style="stroke:none;" d="M 6.578125 -2.515625 L 6.25 -2.515625 C 6.203125 -2.25 6.078125 -1.4375 5.9375 -1.1875 C 5.828125 -1.0625 4.96875 -1.0625 4.53125 -1.0625 L 1.765625 -1.0625 C 2.171875 -1.40625 3.078125 -2.359375 3.46875 -2.71875 C 5.734375 -4.8125 6.578125 -5.59375 6.578125 -7.0625 C 6.578125 -8.78125 5.21875 -9.9375 3.484375 -9.9375 C 1.75 -9.9375 0.734375 -8.453125 0.734375 -7.171875 C 0.734375 -6.40625 1.390625 -6.40625 1.4375 -6.40625 C 1.75 -6.40625 2.140625 -6.625 2.140625 -7.109375 C 2.140625 -7.53125 1.859375 -7.8125 1.4375 -7.8125 C 1.296875 -7.8125 1.265625 -7.8125 1.21875 -7.796875 C 1.515625 -8.8125 2.3125 -9.5 3.28125 -9.5 C 4.5625 -9.5 5.328125 -8.4375 5.328125 -7.0625 C 5.328125 -5.796875 4.59375 -4.6875 3.75 -3.734375 L 0.734375 -0.359375 L 0.734375 0 L 6.1875 0 Z M 6.578125 -2.515625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-6"> +<path style="stroke:none;" d="M 2.75 -5.359375 C 2.5 -5.34375 2.4375 -5.328125 2.4375 -5.203125 C 2.4375 -5.046875 2.515625 -5.046875 2.78125 -5.046875 L 3.46875 -5.046875 C 4.734375 -5.046875 5.296875 -4 5.296875 -2.5625 C 5.296875 -0.609375 4.28125 -0.09375 3.5625 -0.09375 C 2.84375 -0.09375 1.609375 -0.4375 1.1875 -1.421875 C 1.65625 -1.34375 2.09375 -1.609375 2.09375 -2.15625 C 2.09375 -2.578125 1.78125 -2.890625 1.359375 -2.890625 C 1 -2.890625 0.609375 -2.671875 0.609375 -2.109375 C 0.609375 -0.78125 1.9375 0.3125 3.59375 0.3125 C 5.375 0.3125 6.6875 -1.046875 6.6875 -2.546875 C 6.6875 -3.921875 5.59375 -5 4.15625 -5.265625 C 5.453125 -5.625 6.28125 -6.71875 6.28125 -7.890625 C 6.28125 -9.0625 5.0625 -9.9375 3.609375 -9.9375 C 2.125 -9.9375 1.015625 -9.015625 1.015625 -7.9375 C 1.015625 -7.328125 1.484375 -7.21875 1.703125 -7.21875 C 2.015625 -7.21875 2.375 -7.4375 2.375 -7.890625 C 2.375 -8.359375 2.015625 -8.578125 1.6875 -8.578125 C 1.59375 -8.578125 1.5625 -8.578125 1.53125 -8.5625 C 2.09375 -9.578125 3.5 -9.578125 3.5625 -9.578125 C 4.0625 -9.578125 5.03125 -9.34375 5.03125 -7.890625 C 5.03125 -7.609375 4.984375 -6.765625 4.5625 -6.125 C 4.109375 -5.46875 3.59375 -5.421875 3.203125 -5.40625 Z M 2.75 -5.359375 "/> +</symbol> +<symbol overflow="visible" id="glyph1-7"> +<path style="stroke:none;" d="M 6.6875 -4.78125 C 6.6875 -6.015625 6.625 -7.234375 6.078125 -8.359375 C 5.46875 -9.609375 4.390625 -9.9375 3.65625 -9.9375 C 2.796875 -9.9375 1.734375 -9.5 1.1875 -8.265625 C 0.765625 -7.3125 0.609375 -6.390625 0.609375 -4.78125 C 0.609375 -3.328125 0.71875 -2.234375 1.25 -1.1875 C 1.84375 -0.046875 2.875 0.3125 3.640625 0.3125 C 4.9375 0.3125 5.6875 -0.46875 6.125 -1.328125 C 6.65625 -2.453125 6.6875 -3.90625 6.6875 -4.78125 Z M 3.640625 0.015625 C 3.171875 0.015625 2.203125 -0.25 1.90625 -1.875 C 1.75 -2.78125 1.75 -3.90625 1.75 -4.953125 C 1.75 -6.1875 1.75 -7.296875 1.984375 -8.171875 C 2.234375 -9.171875 3 -9.640625 3.640625 -9.640625 C 4.21875 -9.640625 5.078125 -9.296875 5.359375 -8 C 5.5625 -7.15625 5.5625 -5.96875 5.5625 -4.953125 C 5.5625 -3.953125 5.5625 -2.828125 5.390625 -1.90625 C 5.109375 -0.265625 4.171875 0.015625 3.640625 0.015625 Z M 3.640625 0.015625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-8"> +<path style="stroke:none;" d="M 5.390625 -9.71875 C 5.390625 -10.015625 5.390625 -10.078125 5.1875 -10.078125 C 5.0625 -10.078125 5.015625 -10.078125 4.90625 -9.90625 L 0.40625 -2.921875 L 0.40625 -2.5 L 4.328125 -2.5 L 4.328125 -1.140625 C 4.328125 -0.578125 4.296875 -0.4375 3.21875 -0.4375 L 2.90625 -0.4375 L 2.90625 0 C 3.25 -0.03125 4.4375 -0.03125 4.859375 -0.03125 C 5.265625 -0.03125 6.46875 -0.03125 6.8125 0 L 6.8125 -0.4375 L 6.515625 -0.4375 C 5.4375 -0.4375 5.390625 -0.578125 5.390625 -1.140625 L 5.390625 -2.5 L 6.90625 -2.5 L 6.90625 -2.921875 L 5.390625 -2.921875 Z M 4.40625 -8.5625 L 4.40625 -2.921875 L 0.78125 -2.921875 Z M 4.40625 -8.5625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-9"> +<path style="stroke:none;" d="M 1.90625 -8.5625 C 2.546875 -8.34375 3.078125 -8.328125 3.234375 -8.328125 C 4.921875 -8.328125 6 -9.578125 6 -9.78125 C 6 -9.84375 5.96875 -9.921875 5.890625 -9.921875 C 5.859375 -9.921875 5.828125 -9.921875 5.6875 -9.859375 C 4.859375 -9.5 4.140625 -9.453125 3.75 -9.453125 C 2.765625 -9.453125 2.0625 -9.75 1.78125 -9.875 C 1.671875 -9.921875 1.640625 -9.921875 1.625 -9.921875 C 1.515625 -9.921875 1.515625 -9.828125 1.515625 -9.59375 L 1.515625 -5.15625 C 1.515625 -4.890625 1.515625 -4.796875 1.6875 -4.796875 C 1.765625 -4.796875 1.78125 -4.8125 1.921875 -4.984375 C 2.34375 -5.59375 3.046875 -5.953125 3.796875 -5.953125 C 4.578125 -5.953125 4.96875 -5.234375 5.09375 -4.96875 C 5.34375 -4.390625 5.359375 -3.65625 5.359375 -3.09375 C 5.359375 -2.53125 5.359375 -1.671875 4.9375 -1 C 4.609375 -0.46875 4.03125 -0.09375 3.375 -0.09375 C 2.390625 -0.09375 1.421875 -0.765625 1.15625 -1.859375 C 1.21875 -1.828125 1.3125 -1.8125 1.390625 -1.8125 C 1.640625 -1.8125 2.046875 -1.953125 2.046875 -2.46875 C 2.046875 -2.890625 1.765625 -3.125 1.390625 -3.125 C 1.125 -3.125 0.734375 -2.984375 0.734375 -2.40625 C 0.734375 -1.140625 1.75 0.3125 3.40625 0.3125 C 5.09375 0.3125 6.578125 -1.109375 6.578125 -3 C 6.578125 -4.78125 5.375 -6.265625 3.8125 -6.265625 C 2.953125 -6.265625 2.296875 -5.890625 1.90625 -5.46875 Z M 1.90625 -8.5625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-10"> +<path style="stroke:none;" d="M 1.84375 -5.203125 C 1.84375 -8.984375 3.671875 -9.578125 4.484375 -9.578125 C 5.015625 -9.578125 5.5625 -9.40625 5.84375 -8.96875 C 5.65625 -8.96875 5.09375 -8.96875 5.09375 -8.34375 C 5.09375 -8.015625 5.3125 -7.734375 5.703125 -7.734375 C 6.078125 -7.734375 6.328125 -7.96875 6.328125 -8.390625 C 6.328125 -9.171875 5.765625 -9.9375 4.46875 -9.9375 C 2.578125 -9.9375 0.609375 -8 0.609375 -4.71875 C 0.609375 -0.609375 2.40625 0.3125 3.671875 0.3125 C 5.296875 0.3125 6.6875 -1.109375 6.6875 -3.046875 C 6.6875 -5.03125 5.296875 -6.359375 3.8125 -6.359375 C 2.484375 -6.359375 1.984375 -5.21875 1.84375 -4.796875 Z M 3.671875 -0.09375 C 2.734375 -0.09375 2.28125 -0.921875 2.15625 -1.234375 C 2.015625 -1.625 1.859375 -2.359375 1.859375 -3.40625 C 1.859375 -4.578125 2.40625 -6.0625 3.75 -6.0625 C 4.578125 -6.0625 5 -5.515625 5.234375 -5 C 5.46875 -4.453125 5.46875 -3.703125 5.46875 -3.0625 C 5.46875 -2.296875 5.46875 -1.625 5.1875 -1.0625 C 4.8125 -0.34375 4.265625 -0.09375 3.671875 -0.09375 Z M 3.671875 -0.09375 "/> +</symbol> +<symbol overflow="visible" id="glyph1-11"> +<path style="stroke:none;" d="M 7.09375 -9.28125 L 7.09375 -9.625 L 3.5 -9.625 C 1.6875 -9.625 1.65625 -9.8125 1.59375 -10.09375 L 1.265625 -10.09375 L 0.8125 -7.109375 L 1.140625 -7.109375 C 1.1875 -7.375 1.3125 -8.3125 1.515625 -8.46875 C 1.625 -8.5625 2.75 -8.5625 2.953125 -8.5625 L 6.125 -8.5625 L 4.546875 -6.28125 C 4.140625 -5.703125 2.625 -3.25 2.625 -0.453125 C 2.625 -0.28125 2.625 0.3125 3.234375 0.3125 C 3.875 0.3125 3.875 -0.265625 3.875 -0.46875 L 3.875 -1.203125 C 3.875 -3.4375 4.234375 -5.171875 4.921875 -6.171875 Z M 7.09375 -9.28125 "/> +</symbol> +<symbol overflow="visible" id="glyph1-12"> +<path style="stroke:none;" d="M 5.953125 -3.453125 L 10.078125 -3.453125 C 10.296875 -3.453125 10.5625 -3.453125 10.5625 -3.71875 C 10.5625 -4 10.3125 -4 10.078125 -4 L 5.953125 -4 L 5.953125 -8.125 C 5.953125 -8.328125 5.953125 -8.609375 5.6875 -8.609375 C 5.40625 -8.609375 5.40625 -8.34375 5.40625 -8.125 L 5.40625 -4 L 1.28125 -4 C 1.078125 -4 0.8125 -4 0.8125 -3.734375 C 0.8125 -3.453125 1.0625 -3.453125 1.28125 -3.453125 L 5.40625 -3.453125 L 5.40625 0.671875 C 5.40625 0.875 5.40625 1.15625 5.671875 1.15625 C 5.953125 1.15625 5.953125 0.890625 5.953125 0.671875 Z M 5.953125 -3.453125 "/> +</symbol> +<symbol overflow="visible" id="glyph2-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph2-1"> +<path style="stroke:none;" d="M 9.25 -8.546875 C 9.75 -9.34375 10.21875 -9.703125 10.984375 -9.765625 C 11.125 -9.78125 11.25 -9.78125 11.25 -10.046875 C 11.25 -10.109375 11.21875 -10.203125 11.078125 -10.203125 C 10.8125 -10.203125 10.171875 -10.171875 9.90625 -10.171875 C 9.46875 -10.171875 9.015625 -10.203125 8.609375 -10.203125 C 8.484375 -10.203125 8.328125 -10.203125 8.328125 -9.921875 C 8.328125 -9.78125 8.46875 -9.765625 8.53125 -9.765625 C 9.078125 -9.71875 9.140625 -9.453125 9.140625 -9.28125 C 9.140625 -9.046875 8.9375 -8.703125 8.921875 -8.6875 L 4.234375 -1.25 L 3.1875 -9.3125 C 3.1875 -9.734375 3.953125 -9.765625 4.125 -9.765625 C 4.34375 -9.765625 4.484375 -9.765625 4.484375 -10.046875 C 4.484375 -10.203125 4.3125 -10.203125 4.265625 -10.203125 C 4.015625 -10.203125 3.71875 -10.171875 3.46875 -10.171875 L 2.625 -10.171875 C 1.53125 -10.171875 1.09375 -10.203125 1.078125 -10.203125 C 0.984375 -10.203125 0.8125 -10.203125 0.8125 -9.9375 C 0.8125 -9.765625 0.90625 -9.765625 1.15625 -9.765625 C 1.90625 -9.765625 1.953125 -9.640625 2 -9.265625 L 3.203125 -0.046875 C 3.234375 0.265625 3.234375 0.3125 3.453125 0.3125 C 3.625 0.3125 3.703125 0.265625 3.859375 0.03125 Z M 9.25 -8.546875 "/> +</symbol> +<symbol overflow="visible" id="glyph2-2"> +<path style="stroke:none;" d="M 2.90625 0.0625 C 2.90625 -0.8125 2.625 -1.453125 2.015625 -1.453125 C 1.53125 -1.453125 1.296875 -1.0625 1.296875 -0.734375 C 1.296875 -0.40625 1.53125 0 2.03125 0 C 2.21875 0 2.390625 -0.0625 2.53125 -0.1875 C 2.546875 -0.21875 2.5625 -0.21875 2.578125 -0.21875 C 2.609375 -0.21875 2.609375 -0.015625 2.609375 0.0625 C 2.609375 0.546875 2.53125 1.53125 1.65625 2.5 C 1.5 2.671875 1.5 2.703125 1.5 2.734375 C 1.5 2.8125 1.5625 2.890625 1.640625 2.890625 C 1.765625 2.890625 2.90625 1.78125 2.90625 0.0625 Z M 2.90625 0.0625 "/> +</symbol> +<symbol overflow="visible" id="glyph2-3"> +<path style="stroke:none;" d="M 10.375 -3.46875 C 10.390625 -3.515625 10.4375 -3.609375 10.4375 -3.671875 C 10.4375 -3.75 10.375 -3.828125 10.296875 -3.828125 C 10.234375 -3.828125 10.203125 -3.8125 10.15625 -3.765625 C 10.125 -3.75 10.125 -3.71875 10 -3.421875 C 9.109375 -1.328125 8.46875 -0.4375 6.078125 -0.4375 L 3.90625 -0.4375 C 3.6875 -0.4375 3.65625 -0.4375 3.5625 -0.453125 C 3.40625 -0.46875 3.390625 -0.5 3.390625 -0.609375 C 3.390625 -0.71875 3.421875 -0.8125 3.453125 -0.9375 L 4.484375 -5.0625 L 5.953125 -5.0625 C 7.125 -5.0625 7.21875 -4.8125 7.21875 -4.359375 C 7.21875 -4.21875 7.21875 -4.078125 7.109375 -3.625 C 7.078125 -3.5625 7.0625 -3.515625 7.0625 -3.46875 C 7.0625 -3.359375 7.140625 -3.3125 7.234375 -3.3125 C 7.359375 -3.3125 7.375 -3.421875 7.4375 -3.625 L 8.296875 -7.09375 C 8.296875 -7.171875 8.234375 -7.25 8.140625 -7.25 C 8 -7.25 7.984375 -7.1875 7.9375 -6.96875 C 7.640625 -5.828125 7.328125 -5.5 6 -5.5 L 4.578125 -5.5 L 5.515625 -9.171875 C 5.640625 -9.6875 5.671875 -9.734375 6.28125 -9.734375 L 8.421875 -9.734375 C 10.265625 -9.734375 10.640625 -9.25 10.640625 -8.109375 C 10.640625 -8.09375 10.640625 -7.671875 10.578125 -7.1875 C 10.5625 -7.125 10.546875 -7.03125 10.546875 -7 C 10.546875 -6.890625 10.625 -6.84375 10.703125 -6.84375 C 10.8125 -6.84375 10.875 -6.90625 10.90625 -7.171875 L 11.21875 -9.78125 C 11.21875 -9.828125 11.25 -9.984375 11.25 -10.015625 C 11.25 -10.171875 11.109375 -10.171875 10.84375 -10.171875 L 3.5625 -10.171875 C 3.265625 -10.171875 3.125 -10.171875 3.125 -9.90625 C 3.125 -9.734375 3.21875 -9.734375 3.484375 -9.734375 C 4.40625 -9.734375 4.40625 -9.640625 4.40625 -9.46875 C 4.40625 -9.390625 4.390625 -9.328125 4.34375 -9.171875 L 2.328125 -1.109375 C 2.203125 -0.578125 2.171875 -0.4375 1.125 -0.4375 C 0.84375 -0.4375 0.6875 -0.4375 0.6875 -0.171875 C 0.6875 0 0.78125 0 1.078125 0 L 8.578125 0 C 8.90625 0 8.921875 -0.015625 9.015625 -0.25 Z M 10.375 -3.46875 "/> +</symbol> +<symbol overflow="visible" id="glyph2-4"> +<path style="stroke:none;" d="M 6.828125 -5.59375 C 6.828125 -6.53125 6.34375 -6.59375 6.234375 -6.59375 C 5.875 -6.59375 5.546875 -6.234375 5.546875 -5.9375 C 5.546875 -5.75 5.640625 -5.640625 5.703125 -5.59375 C 5.859375 -5.453125 6.25 -5.046875 6.25 -4.265625 C 6.25 -3.640625 5.34375 -0.15625 3.5625 -0.15625 C 2.640625 -0.15625 2.46875 -0.90625 2.46875 -1.46875 C 2.46875 -2.203125 2.8125 -3.25 3.21875 -4.328125 C 3.453125 -4.9375 3.515625 -5.09375 3.515625 -5.390625 C 3.515625 -6.015625 3.0625 -6.59375 2.328125 -6.59375 C 0.953125 -6.59375 0.40625 -4.421875 0.40625 -4.296875 C 0.40625 -4.25 0.46875 -4.171875 0.5625 -4.171875 C 0.703125 -4.171875 0.71875 -4.234375 0.78125 -4.4375 C 1.140625 -5.71875 1.71875 -6.28125 2.28125 -6.28125 C 2.421875 -6.28125 2.671875 -6.28125 2.671875 -5.796875 C 2.671875 -5.40625 2.515625 -4.96875 2.28125 -4.40625 C 1.5625 -2.5 1.5625 -2.03125 1.5625 -1.671875 C 1.5625 -1.34375 1.609375 -0.734375 2.078125 -0.3125 C 2.609375 0.15625 3.359375 0.15625 3.5 0.15625 C 5.96875 0.15625 6.828125 -4.734375 6.828125 -5.59375 Z M 6.828125 -5.59375 "/> +</symbol> +<symbol overflow="visible" id="glyph2-5"> +<path style="stroke:none;" d="M 4.234375 -2.140625 C 4.234375 -2.203125 4.171875 -2.265625 4.078125 -2.265625 C 3.9375 -2.265625 3.921875 -2.21875 3.859375 -1.96875 C 3.46875 -0.609375 2.859375 -0.15625 2.359375 -0.15625 C 2.1875 -0.15625 1.96875 -0.1875 1.96875 -0.640625 C 1.96875 -1.046875 2.15625 -1.5 2.3125 -1.9375 L 3.359375 -4.71875 C 3.40625 -4.84375 3.515625 -5.109375 3.515625 -5.390625 C 3.515625 -6.015625 3.0625 -6.59375 2.328125 -6.59375 C 0.953125 -6.59375 0.40625 -4.421875 0.40625 -4.296875 C 0.40625 -4.25 0.46875 -4.171875 0.5625 -4.171875 C 0.703125 -4.171875 0.71875 -4.234375 0.78125 -4.4375 C 1.140625 -5.6875 1.703125 -6.28125 2.28125 -6.28125 C 2.421875 -6.28125 2.671875 -6.28125 2.671875 -5.796875 C 2.671875 -5.40625 2.484375 -4.921875 2.359375 -4.578125 L 1.3125 -1.8125 C 1.21875 -1.5625 1.140625 -1.328125 1.140625 -1.0625 C 1.140625 -0.390625 1.59375 0.15625 2.3125 0.15625 C 3.6875 0.15625 4.234375 -2.03125 4.234375 -2.140625 Z M 4.109375 -9.328125 C 4.109375 -9.546875 3.921875 -9.8125 3.59375 -9.8125 C 3.25 -9.8125 2.875 -9.484375 2.875 -9.09375 C 2.875 -8.71875 3.1875 -8.609375 3.359375 -8.609375 C 3.765625 -8.609375 4.109375 -9 4.109375 -9.328125 Z M 4.109375 -9.328125 "/> +</symbol> +<symbol overflow="visible" id="glyph2-6"> +<path style="stroke:none;" d="M 2.75 -0.71875 C 2.75 -1.15625 2.390625 -1.453125 2.03125 -1.453125 C 1.59375 -1.453125 1.296875 -1.09375 1.296875 -0.734375 C 1.296875 -0.296875 1.65625 0 2.015625 0 C 2.453125 0 2.75 -0.359375 2.75 -0.71875 Z M 2.75 -0.71875 "/> +</symbol> +<symbol overflow="visible" id="glyph2-7"> +<path style="stroke:none;" d="M 5.09375 -0.859375 C 5.28125 -0.03125 6 0.15625 6.359375 0.15625 C 6.84375 0.15625 7.203125 -0.171875 7.4375 -0.671875 C 7.6875 -1.203125 7.890625 -2.09375 7.890625 -2.140625 C 7.890625 -2.203125 7.828125 -2.265625 7.734375 -2.265625 C 7.609375 -2.265625 7.59375 -2.203125 7.53125 -1.96875 C 7.265625 -0.9375 6.984375 -0.15625 6.390625 -0.15625 C 5.9375 -0.15625 5.9375 -0.640625 5.9375 -0.84375 C 5.9375 -1.1875 5.984375 -1.328125 6.140625 -1.953125 C 6.25 -2.359375 6.34375 -2.765625 6.4375 -3.1875 L 7.046875 -5.609375 C 7.15625 -5.984375 7.15625 -6.015625 7.15625 -6.0625 C 7.15625 -6.28125 6.96875 -6.4375 6.75 -6.4375 C 6.3125 -6.4375 6.21875 -6.0625 6.125 -5.6875 C 5.96875 -5.109375 5.171875 -1.890625 5.0625 -1.375 C 5.046875 -1.375 4.46875 -0.15625 3.375 -0.15625 C 2.59375 -0.15625 2.453125 -0.828125 2.453125 -1.375 C 2.453125 -2.21875 2.875 -3.421875 3.25 -4.421875 C 3.4375 -4.90625 3.515625 -5.09375 3.515625 -5.390625 C 3.515625 -6.03125 3.046875 -6.59375 2.328125 -6.59375 C 0.953125 -6.59375 0.40625 -4.421875 0.40625 -4.296875 C 0.40625 -4.25 0.46875 -4.171875 0.5625 -4.171875 C 0.703125 -4.171875 0.71875 -4.234375 0.78125 -4.4375 C 1.140625 -5.71875 1.71875 -6.28125 2.28125 -6.28125 C 2.4375 -6.28125 2.671875 -6.28125 2.671875 -5.796875 C 2.671875 -5.40625 2.515625 -4.96875 2.28125 -4.40625 C 1.625 -2.625 1.546875 -2.0625 1.546875 -1.609375 C 1.546875 -0.09375 2.703125 0.15625 3.3125 0.15625 C 4.265625 0.15625 4.796875 -0.515625 5.09375 -0.859375 Z M 5.09375 -0.859375 "/> +</symbol> +<symbol overflow="visible" id="glyph2-8"> +<path style="stroke:none;" d="M 9.84375 -7.28125 C 10.109375 -7.390625 10.140625 -7.5 10.140625 -7.59375 C 10.140625 -7.75 10.015625 -7.875 9.859375 -7.875 C 9.828125 -7.875 9.8125 -7.859375 9.609375 -7.765625 L 1.53125 -4.046875 C 1.25 -3.921875 1.21875 -3.828125 1.21875 -3.734375 C 1.21875 -3.625 1.234375 -3.546875 1.53125 -3.40625 L 9.609375 0.3125 C 9.796875 0.40625 9.828125 0.421875 9.859375 0.421875 C 10.015625 0.421875 10.140625 0.296875 10.140625 0.140625 C 10.140625 0.046875 10.109375 -0.0625 9.84375 -0.171875 L 2.15625 -3.71875 Z M 9.84375 -7.28125 "/> +</symbol> +<symbol overflow="visible" id="glyph3-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph3-1"> +<path style="stroke:none;" d="M 4.453125 -10.015625 C 4.46875 -10.109375 4.5 -10.171875 4.5 -10.21875 C 4.5 -10.359375 4.390625 -10.359375 4.15625 -10.359375 L 2.65625 -10.21875 C 2.453125 -10.203125 2.3125 -10.1875 2.3125 -9.921875 C 2.3125 -9.765625 2.4375 -9.765625 2.640625 -9.765625 C 3.390625 -9.765625 3.390625 -9.640625 3.390625 -9.484375 C 3.390625 -9.421875 3.359375 -9.28125 3.34375 -9.21875 L 1.46875 -1.6875 C 1.4375 -1.546875 1.390625 -1.390625 1.390625 -1.171875 C 1.390625 -0.375 1.890625 0.15625 2.578125 0.15625 C 3.09375 0.15625 3.390625 -0.1875 3.59375 -0.609375 C 3.875 -1.109375 4.078125 -2.078125 4.078125 -2.125 C 4.078125 -2.265625 3.953125 -2.265625 3.890625 -2.265625 C 3.828125 -2.265625 3.71875 -2.265625 3.6875 -2.1875 C 3.671875 -2.140625 3.609375 -1.90625 3.5625 -1.78125 C 3.375 -1.046875 3.125 -0.15625 2.609375 -0.15625 C 2.28125 -0.15625 2.203125 -0.46875 2.203125 -0.75 C 2.203125 -0.9375 2.28125 -1.359375 2.328125 -1.546875 Z M 4.453125 -10.015625 "/> +</symbol> +<symbol overflow="visible" id="glyph3-2"> +<path style="stroke:none;" d="M 7.09375 -5.703125 C 7.140625 -5.875 7.140625 -5.921875 7.140625 -5.9375 C 7.140625 -6.109375 7.015625 -6.296875 6.75 -6.296875 C 6.28125 -6.296875 6.171875 -5.71875 6.171875 -5.71875 L 6.15625 -5.703125 C 5.875 -6.40625 5.359375 -6.59375 4.953125 -6.59375 C 3.328125 -6.59375 1.609375 -4.296875 1.609375 -2.125 C 1.609375 -0.796875 2.3125 0.15625 3.328125 0.15625 C 3.9375 0.15625 4.5625 -0.234375 5.125 -0.90625 C 5.28125 0 5.953125 0.15625 6.296875 0.15625 C 6.890625 0.15625 7.1875 -0.28125 7.375 -0.71875 C 7.640625 -1.234375 7.8125 -2.09375 7.8125 -2.140625 C 7.8125 -2.265625 7.671875 -2.265625 7.625 -2.265625 C 7.4375 -2.265625 7.421875 -2.25 7.328125 -1.90625 C 7.03125 -0.671875 6.75 -0.15625 6.328125 -0.15625 C 6 -0.15625 5.9375 -0.46875 5.9375 -0.75 C 5.9375 -0.96875 5.984375 -1.3125 6.046875 -1.53125 Z M 5.21875 -1.8125 C 5.125 -1.421875 4.234375 -0.15625 3.359375 -0.15625 C 2.5625 -0.15625 2.546875 -1.3125 2.546875 -1.5 C 2.546875 -2.234375 3.015625 -4 3.25 -4.59375 C 3.640625 -5.53125 4.3125 -6.28125 4.953125 -6.28125 C 5.859375 -6.28125 5.953125 -4.953125 5.953125 -4.859375 C 5.953125 -4.84375 5.921875 -4.671875 5.921875 -4.640625 Z M 5.21875 -1.8125 "/> +</symbol> +<symbol overflow="visible" id="glyph3-3"> +<path style="stroke:none;" d="M 4.453125 -10.015625 C 4.484375 -10.125 4.5 -10.171875 4.5 -10.21875 C 4.5 -10.359375 4.390625 -10.359375 4.15625 -10.359375 L 2.65625 -10.21875 C 2.453125 -10.203125 2.3125 -10.1875 2.3125 -9.921875 C 2.3125 -9.765625 2.4375 -9.765625 2.640625 -9.765625 C 3.390625 -9.765625 3.390625 -9.640625 3.390625 -9.484375 C 3.390625 -9.40625 3.359375 -9.3125 3.34375 -9.234375 L 1.84375 -3.1875 C 1.703125 -2.640625 1.703125 -2.25 1.703125 -2.09375 C 1.703125 -0.671875 2.421875 0.15625 3.34375 0.15625 C 5.015625 0.15625 6.703125 -2.1875 6.703125 -4.3125 C 6.703125 -5.609375 6.015625 -6.59375 4.984375 -6.59375 C 4.25 -6.59375 3.625 -5.984375 3.390625 -5.75 Z M 3.359375 -0.15625 C 2.6875 -0.15625 2.484375 -0.953125 2.484375 -1.578125 C 2.484375 -2.171875 2.640625 -2.765625 2.96875 -4.109375 C 3.015625 -4.25 3.046875 -4.40625 3.09375 -4.5625 C 3.234375 -5.140625 4.15625 -6.28125 4.9375 -6.28125 C 5.484375 -6.28125 5.765625 -5.734375 5.765625 -4.9375 C 5.765625 -4.109375 5.265625 -2.234375 4.953125 -1.609375 C 4.4375 -0.5625 3.828125 -0.15625 3.359375 -0.15625 Z M 3.359375 -0.15625 "/> +</symbol> +<symbol overflow="visible" id="glyph3-4"> +<path style="stroke:none;" d="M 3.4375 -3.46875 C 3.953125 -3.46875 6.765625 -3.46875 6.765625 -5.34375 C 6.765625 -6.015625 6.21875 -6.59375 5.328125 -6.59375 C 3.78125 -6.59375 1.703125 -5.0625 1.703125 -2.4375 C 1.703125 -0.921875 2.484375 0.15625 3.75 0.15625 C 5.59375 0.15625 6.828125 -1.359375 6.828125 -1.5625 C 6.828125 -1.671875 6.703125 -1.796875 6.625 -1.796875 C 6.578125 -1.796875 6.5625 -1.78125 6.4375 -1.640625 C 5.640625 -0.5625 4.53125 -0.15625 3.765625 -0.15625 C 2.78125 -0.15625 2.640625 -1.328125 2.640625 -1.8125 C 2.640625 -2.46875 2.75 -2.890625 2.890625 -3.46875 Z M 2.984375 -3.765625 C 3.578125 -6.140625 5.046875 -6.28125 5.3125 -6.28125 C 5.921875 -6.28125 6.265625 -5.875 6.265625 -5.359375 C 6.265625 -3.765625 3.78125 -3.765625 3.296875 -3.765625 Z M 2.984375 -3.765625 "/> +</symbol> +<symbol overflow="visible" id="glyph4-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph4-1"> +<path style="stroke:none;" d="M 3.046875 -5.9375 L 4.4375 -5.9375 L 4.4375 -6.625 L 2.953125 -6.625 L 2.953125 -8.15625 C 2.953125 -9.90625 4.140625 -9.921875 4.296875 -9.921875 C 4.34375 -9.921875 4.40625 -9.921875 4.46875 -9.90625 C 4.3125 -9.796875 4.109375 -9.546875 4.109375 -9.15625 C 4.109375 -8.515625 4.625 -8.234375 5.015625 -8.234375 C 5.46875 -8.234375 5.9375 -8.546875 5.9375 -9.15625 C 5.9375 -9.78125 5.421875 -10.453125 4.34375 -10.453125 C 2.96875 -10.453125 1.4375 -9.84375 1.4375 -8.140625 L 1.4375 -6.625 L 0.5625 -6.625 L 0.5625 -5.9375 L 1.4375 -5.9375 L 1.4375 -0.703125 L 0.40625 -0.703125 L 0.40625 0 C 0.921875 -0.015625 1.59375 -0.046875 2.28125 -0.046875 C 2.859375 -0.046875 3.8125 -0.046875 4.34375 0 L 4.34375 -0.703125 L 3.046875 -0.703125 Z M 3.046875 -5.9375 "/> +</symbol> +<symbol overflow="visible" id="glyph4-2"> +<path style="stroke:none;" d="M 7.03125 -3.265625 C 7.03125 -5.375 5.71875 -6.765625 3.71875 -6.765625 C 1.796875 -6.765625 0.421875 -5.4375 0.421875 -3.265625 C 0.421875 -1.125 1.828125 0.09375 3.71875 0.09375 C 5.6875 0.09375 7.03125 -1.1875 7.03125 -3.265625 Z M 3.734375 -0.515625 C 3.1875 -0.515625 2.609375 -0.84375 2.453125 -1.5 C 2.328125 -1.984375 2.328125 -2.890625 2.328125 -3.421875 C 2.328125 -4.125 2.328125 -4.84375 2.46875 -5.3125 C 2.609375 -5.890625 3.171875 -6.234375 3.71875 -6.234375 C 4.359375 -6.234375 4.859375 -5.796875 4.984375 -5.3125 C 5.125 -4.828125 5.125 -4.109375 5.125 -3.421875 C 5.125 -2.71875 5.125 -1.9375 4.96875 -1.4375 C 4.828125 -0.84375 4.265625 -0.515625 3.734375 -0.515625 Z M 3.734375 -0.515625 "/> +</symbol> +<symbol overflow="visible" id="glyph4-3"> +<path style="stroke:none;" d="M 2.890625 -3.375 C 2.890625 -4.5 3.109375 -6.1875 4.4375 -6.1875 C 4.421875 -6.171875 4.15625 -5.9375 4.15625 -5.5 C 4.15625 -4.890625 4.625 -4.578125 5.0625 -4.578125 C 5.5 -4.578125 5.96875 -4.90625 5.96875 -5.5 C 5.96875 -6.328125 5.09375 -6.71875 4.375 -6.71875 C 3.6875 -6.71875 3.0625 -6.359375 2.734375 -5.359375 L 2.71875 -5.359375 L 2.71875 -6.71875 L 0.234375 -6.609375 L 0.234375 -5.90625 C 1.171875 -5.90625 1.265625 -5.90625 1.265625 -5.3125 L 1.265625 -0.703125 L 0.234375 -0.703125 L 0.234375 0 C 0.765625 -0.015625 1.4375 -0.046875 2.125 -0.046875 C 2.6875 -0.046875 3.640625 -0.046875 4.1875 0 L 4.1875 -0.703125 L 2.890625 -0.703125 Z M 2.890625 -3.375 "/> +</symbol> +<symbol overflow="visible" id="glyph4-4"> +<path style="stroke:none;" d="M 3.1875 -9.21875 C 3.1875 -9.875 2.640625 -10.375 2.015625 -10.375 C 1.375 -10.375 0.84375 -9.859375 0.84375 -9.21875 C 0.84375 -8.578125 1.375 -8.046875 2.015625 -8.046875 C 2.640625 -8.046875 3.1875 -8.5625 3.1875 -9.21875 Z M 0.4375 -6.609375 L 0.4375 -5.90625 C 1.3125 -5.90625 1.421875 -5.90625 1.421875 -5.3125 L 1.421875 -0.703125 L 0.390625 -0.703125 L 0.390625 0 C 0.84375 -0.015625 1.578125 -0.046875 2.203125 -0.046875 C 2.65625 -0.046875 3.421875 -0.015625 3.953125 0 L 3.953125 -0.703125 L 3.03125 -0.703125 L 3.03125 -6.71875 Z M 0.4375 -6.609375 "/> +</symbol> +<symbol overflow="visible" id="glyph5-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph5-1"> +<path style="stroke:none;" d="M 8.1875 -3.4375 C 8.4375 -3.4375 8.703125 -3.4375 8.703125 -3.734375 C 8.703125 -4.03125 8.4375 -4.03125 8.1875 -4.03125 L 1.859375 -4.03125 C 2.03125 -6.03125 3.75 -7.46875 5.859375 -7.46875 L 8.1875 -7.46875 C 8.4375 -7.46875 8.703125 -7.46875 8.703125 -7.765625 C 8.703125 -8.0625 8.4375 -8.0625 8.1875 -8.0625 L 5.828125 -8.0625 C 3.265625 -8.0625 1.234375 -6.125 1.234375 -3.734375 C 1.234375 -1.34375 3.265625 0.59375 5.828125 0.59375 L 8.1875 0.59375 C 8.4375 0.59375 8.703125 0.59375 8.703125 0.296875 C 8.703125 0 8.4375 0 8.1875 0 L 5.859375 0 C 3.75 0 2.03125 -1.4375 1.859375 -3.4375 Z M 8.1875 -3.4375 "/> +</symbol> +<symbol overflow="visible" id="glyph6-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph6-1"> +<path style="stroke:none;" d="M 6.84375 -4.84375 C 6.984375 -4.84375 7.171875 -4.84375 7.171875 -5.109375 C 7.171875 -5.390625 7 -5.390625 6.84375 -5.390625 L 0.875 -5.390625 C 0.734375 -5.390625 0.546875 -5.390625 0.546875 -5.125 C 0.546875 -4.84375 0.71875 -4.84375 0.875 -4.84375 Z M 6.84375 -2.0625 C 6.984375 -2.0625 7.171875 -2.0625 7.171875 -2.328125 C 7.171875 -2.609375 7 -2.609375 6.84375 -2.609375 L 0.875 -2.609375 C 0.734375 -2.609375 0.546875 -2.609375 0.546875 -2.34375 C 0.546875 -2.0625 0.71875 -2.0625 0.875 -2.0625 Z M 6.84375 -2.0625 "/> +</symbol> +</g> +</defs> +<g id="surface1"> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-1" x="0" y="12.64"/> + <use xlink:href="#glyph0-2" x="11.518835" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-3" x="20.355222" y="12.64"/> + <use xlink:href="#glyph0-4" x="29.188621" y="12.64"/> + <use xlink:href="#glyph0-5" x="38.687027" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-2" x="49.844218" y="12.64"/> + <use xlink:href="#glyph0-6" x="59.009373" y="12.64"/> + <use xlink:href="#glyph0-7" x="68.00865" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="77.33875" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-1" x="83.02875" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-2" x="92.365761" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-3" x="98.926177" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-2" x="110.639284" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-4" x="117.184756" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-2" x="124.79723" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-5" x="131.357646" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-2" x="136.3475" y="12.64"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-3" x="0.000000000000017764" y="30.6975"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-4" x="18.29" y="30.6975"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-6" x="25.902474" y="30.6975"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-1" x="29.965" y="30.6975"/> + <use xlink:href="#glyph3-2" x="33.701" y="30.6975"/> + <use xlink:href="#glyph3-3" x="41.173" y="30.6975"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-4" x="47.1506" y="30.6975"/> + <use xlink:href="#glyph3-1" x="53.8754" y="30.6975"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-4" x="63.3125" y="30.6975"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-5" x="78.845" y="30.6975"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-5" x="0.000000000000026645" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph4-1" x="18.29" y="48.755"/> + <use xlink:href="#glyph4-2" x="22.856886" y="48.755"/> + <use xlink:href="#glyph4-3" x="30.328886" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="41.7025" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-7" x="47.39375" y="48.755"/> + <use xlink:href="#glyph2-2" x="55.722041" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-4" x="62.282457" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-2" x="69.88625" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph5-1" x="79.72875" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-3" x="93.8425" y="48.755"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-6" x="0.000000000000035527" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph4-4" x="47.16125" y="66.81125"/> + <use xlink:href="#glyph4-1" x="51.312693" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-7" x="60.86" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-8" x="72.3275" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-4" x="87.863282" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-6" x="95.475756" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-1" x="99.53375" y="66.81125"/> + <use xlink:href="#glyph3-2" x="103.26975" y="66.81125"/> + <use xlink:href="#glyph3-3" x="110.74175" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-4" x="116.71935" y="66.81125"/> + <use xlink:href="#glyph3-1" x="123.44415" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-8" x="132.88125" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-5" x="148.417032" y="66.81125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-8" x="0.000000000000053291" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-1" x="76.0325" y="84.86875"/> + <use xlink:href="#glyph0-2" x="87.551335" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-3" x="96.387722" y="84.86875"/> + <use xlink:href="#glyph0-4" x="105.221121" y="84.86875"/> + <use xlink:href="#glyph0-5" x="114.719527" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-2" x="125.876718" y="84.86875"/> + <use xlink:href="#glyph0-6" x="135.041873" y="84.86875"/> + <use xlink:href="#glyph0-7" x="144.04115" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="153.37125" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-1" x="159.06125" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-2" x="168.398261" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-3" x="174.958677" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-2" x="186.671784" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-7" x="193.217256" y="84.86875"/> + <use xlink:href="#glyph2-2" x="201.545548" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-5" x="208.105964" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-2" x="213.0975" y="84.86875"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-9" x="0.000000000000035527" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph4-1" x="18.29" y="102.92625"/> + <use xlink:href="#glyph4-2" x="22.856886" y="102.92625"/> + <use xlink:href="#glyph4-3" x="30.328886" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="41.7025" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-7" x="47.39375" y="102.92625"/> + <use xlink:href="#glyph2-2" x="55.722041" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-4" x="62.282457" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-2" x="69.88625" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph5-1" x="79.72875" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-3" x="93.8425" y="102.92625"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-10" x="0.000000000000035527" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph4-4" x="47.16125" y="120.98375"/> + <use xlink:href="#glyph4-1" x="51.312693" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-7" x="60.86" y="120.98375"/> + <use xlink:href="#glyph2-6" x="69.188291" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-1" x="73.2525" y="120.98375"/> + <use xlink:href="#glyph3-2" x="76.9885" y="120.98375"/> + <use xlink:href="#glyph3-3" x="84.4605" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-4" x="90.4381" y="120.98375"/> + <use xlink:href="#glyph3-1" x="97.1629" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph6-1" x="106.8325" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph6-1" x="115.0775" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-7" x="127.1825" y="120.98375"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-11" x="0.000000000000014211" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-1" x="76.0325" y="139.04125"/> + <use xlink:href="#glyph0-2" x="87.551335" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-3" x="96.387722" y="139.04125"/> + <use xlink:href="#glyph0-4" x="105.221121" y="139.04125"/> + <use xlink:href="#glyph0-5" x="114.719527" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-2" x="125.876718" y="139.04125"/> + <use xlink:href="#glyph0-6" x="135.041873" y="139.04125"/> + <use xlink:href="#glyph0-7" x="144.04115" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="153.37125" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-1" x="159.06125" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-2" x="168.398261" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-3" x="174.958677" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-2" x="186.671784" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-7" x="193.217256" y="139.04125"/> + <use xlink:href="#glyph2-2" x="201.545548" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-5" x="208.105964" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-12" x="216.41875" y="139.04125"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-3" x="231.117668" y="139.04125"/> + <use xlink:href="#glyph1-2" x="238.434251" y="139.04125"/> +</g> +</g> +</svg> diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex new file mode 100644 index 00000000000..27a5778288a --- /dev/null +++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex @@ -0,0 +1,16 @@ +\documentclass[preview,multi,12pt]{standalone} +\usepackage{adjustbox} +\usepackage[kw]{pseudo} +\pseudoset{compact} + +\standaloneenv{myenv} + +\begin{document} + +\begin{myenv} +\begin{adjustbox}{scale=1.25} +\input{readmecode} +\end{adjustbox} +\end{myenv} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf Binary files differindex 4cdab2e88cf..3a92422f35e 100644 --- a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf +++ b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex index a93daee46db..9148d16289c 100644 --- a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex +++ b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex @@ -28,6 +28,10 @@ \let\origbfseries\bfseries \def\bfseries{\fontseries{b}\selectfont} +\let\origtt\texttt +\def\texttt#1{\textnormal{\origtt{#1}}} +% Still getting warnings about OT1/cmtt/b/n ... + \usepackage{tikz} \usetikzlibrary{matrix,calc,decorations.pathreplacing,calligraphy} \tikzset{ @@ -290,7 +294,16 @@ \ior_map_inline:Nn \g_tmpa_ior { - % Just using the first paragraph + % Skip the first paragraph + \regex_match:nnT { ##1 } { \c{par} } { + \ior_map_break: + } + + } + + \ior_map_inline:Nn \g_tmpa_ior { + + % Just using the next paragraph \regex_match:nnTF { ##1 } { \c{par} } { \ior_map_break: } { @@ -1556,10 +1569,66 @@ vs.\ foo \kw{bar} \end{pseudo*} \end{texexp} + The initial value isn't \emph{quite} as straightforward as indicated, + however. + For more info, see \refc{kwfont}. \end{docKey} \begin{docCommand}{kwfont}{} + \parindent1.5em + \noindent \fontcmd{kw} + Its initial definition is \emph{essentially} + \code{\cs{fontseries}\braces{b}\cs{selectfont}}, except the first time + it's called (normally when evaluating the initial value of + \refk{indent-text}), it also runs a check to see if the font selection + \emph{worked}, as in some cases (such as in a default + \pkg[https://ctan.org/pkg/beamer]{beamer} presentation), the non-extended + bold may not be available. In that case, it defaults to an extended bold + (\cs{bfseries}) instead. At this point, the command is redefined to + \code{\cs{fontseries}\braces{b}\cs{selectfont}} or \cs{bfseries}, as + appropriate (i.e., without this check). So, while + \code{\refc{kw}\braces{hello}} produces the non-extended \kw{hello} in a + default \LaTeX\ document, it yields the extended {\origbfseries\sffamily + hello} in a default \pkg[https://ctan.org/pkg/beamer]{beamer} + presentation. Perhaps more clearly, this is the result in plain \LaTeX\ + (using \pkg[https://ctan.org/tex-archive/info/lmodern]{lmodern}): + +{\let\bfseries\origbfseries +\begin{texexp} +\textbf{while}\\ % Extended +\kw{while}\\ % Keyword +{\fontseries{b}\selectfont while} % Non-extended +\end{texexp} +}\ignorespaces\par + + \noindent + The same code results in the the following in + \pkg[https://ctan.org/pkg/beamer]{beamer}: + + \medskip\noindent + \includegraphics{kwfig} + + \medskip\noindent + You'll also get a font warning,\footnote{Of course, if you use a different + font or theme, e.g., with the \pkg[https://ctan.org/pkg/beamer]{beamer} + command \code{\cs{usefonttheme}\braces{serif}}, you may not have any issues to + begin with.} though only once, as it's suppressed after the first occurrence, + so the fact that the font selection doesn't work on the last line isn't + reported. Note, however, that the current implementation of \refc{kwfont} + actually \emph{piggybacks} on this warning to determine if the non-extended + bold is available. This means that if you've tried (and failed) to use + \code{\cs{fontseries}\braces{b}} \emph{before} the fist use of \refc{kwfont}, + the fallback (i.e., extended bold) won't be triggered. + + Also note that \refk{indent-text} (which will tend to be the first + occurrence use of \refc{kwfont}) won't be evaluated (to determine + \refk{indent-length}) until you actually start a \refe{pseudo} + environment, so if you're \emph{aware} that you don't have non-extended + bold available, and you set \code*{\refk{kwfont} = \cs{bfseries}}, for + example, there will be no attempt to use the non-extended version, and you + won't get the font warning that the default implementation produces in + that case. \end{docCommand} \begin{docKey}{label}{\,=\,\meta{commands}}{% @@ -2612,7 +2681,10 @@ which the current line is indented. The initial indent level may be set using variants we'll need of some standard commands: \begin{source} \cs_generate_variant:Nn \tl_if_novalue:nTF { VTF } +\cs_generate_variant:Nn \tl_set:Nn { Ne } \cs_generate_variant:Nn \regex_extract_once:nnNTF { nVNTF } +% \cs_generate_variant:Nn \regex_match:nnF { nVF } +\cs_generate_variant:Nn \regex_match:nnF { neF } \end{source} \paragraph{Defining columns.} The \refk{preamble} is is configurable, but the \pkg[https://ctan.org/pkg/array]{array} package makes sure it doesn't expand @@ -2822,6 +2894,43 @@ commands: (As a side-effect, we've now also defined \cs{pseudonf} and \cs{pseudotn}, which we don't really need.) % +While we're at it, we'll define the initial value for \refc{kwfont}, which is +generally non-extended bold, if that's available, but extended bold otherwise: +\begin{source} +\cs_new:Nn \@@_b_or_bx: { + + % Note: We're relying on the warning text in \@defaultsubs + % being defined by \selectfont if the desired font isn't + % found. This won't happen, however, if the same + % \curr@fontshape combination has been attempted before + % (cf. source2e.pdf page 179). + + \group_begin: + + \cs_if_exist:NT \@defaultsubs { + \@@_gsave_as:NN \@defaultsubs \@@_defaultsubs + \cs_gset_eq:NN \@defaultsubs \relax + } + + % This is what we'd like: + \cs_gset:Nn \@@_b_or_bx: { \fontseries{b}\selectfont } + + % Try it: + \@@_b_or_bx: + + % Fallback, if that failed: + \cs_if_exist:NT \@defaultsubs { + \cs_gset_eq:NN \@@_b_or_bx: \bfseries + \group_insert_after:N \@@_b_or_bx: + } + + \group_end: + +} +\end{source} +Note that the command redefines itself after the first use, so as not to +execute the check every time. + The \refc{pr} command is also a font shortcut, but in addition takes optional parenthesis-delimited arguments, which are set in math mode: \begin{source} @@ -3053,7 +3162,7 @@ typesetting the pseudocode. indent-level .int_set:N = \l_@@_initial_indent_level_int, kwfont .tl_set:N = \kwfont, - kwfont .initial:n = \fontseries{b}\selectfont, + kwfont .initial:n = \@@_b_or_bx:, kw .meta:n = { font = \kwfont }, kw .value_forbidden:n = true, diff --git a/Master/texmf-dist/tex/latex/pseudo/pseudo.sty b/Master/texmf-dist/tex/latex/pseudo/pseudo.sty index a81b379a57a..20859c819de 100644 --- a/Master/texmf-dist/tex/latex/pseudo/pseudo.sty +++ b/Master/texmf-dist/tex/latex/pseudo/pseudo.sty @@ -20,8 +20,8 @@ % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE % SOFTWARE. % -\def \pseudoversion {1.1.1} -\def \pseudodate {2019-07-04} +\def \pseudoversion {1.1.2} +\def \pseudodate {2019-07-14} \RequirePackage{expl3} \ProvidesExplPackage {pseudo} @@ -43,7 +43,9 @@ \int_new:N \g__pseudo_indent_level_int \int_new:N \l__pseudo_initial_indent_level_int \cs_generate_variant:Nn \tl_if_novalue:nTF { VTF } +\cs_generate_variant:Nn \tl_set:Nn { Ne } \cs_generate_variant:Nn \regex_extract_once:nnNTF { nVNTF } +\cs_generate_variant:Nn \regex_match:nnF { neF } \cs_new:Nn \__pseudo_undef_col:n { \tl_set_eq:cN { NC@find@ \token_to_str:N #1 } \scan_stop: } @@ -140,6 +142,20 @@ \__pseudo_new_cmd:Nnn \kw { m } { \textnormal {\kwfont { #1 } } } \__pseudo_new_cmd:Nnn \cn { m } { \textnormal {\cnfont { #1 } } } \__pseudo_new_cmd:Nnn \id { m } { \textnormal {\idfont { #1 } } } +\cs_new:Nn \__pseudo_b_or_bx: { + \group_begin: + \cs_if_exist:NT \@defaultsubs { + \__pseudo_gsave_as:NN \@defaultsubs \__pseudo_defaultsubs + \cs_gset_eq:NN \@defaultsubs \relax + } + \cs_gset:Nn \__pseudo_b_or_bx: { \fontseries{b}\selectfont } + \__pseudo_b_or_bx: + \cs_if_exist:NT \@defaultsubs { + \cs_gset_eq:NN \__pseudo_b_or_bx: \bfseries + \group_insert_after:N \__pseudo_b_or_bx: + } + \group_end: +} \cs_new:Nn \__pseudo_fmt_pr:n { \textnormal{\prfont{ #1 }} } @@ -270,7 +286,7 @@ indent-text .initial:n = { \pseudofont\kw{else}\ }, indent-level .int_set:N = \l__pseudo_initial_indent_level_int, kwfont .tl_set:N = \kwfont, - kwfont .initial:n = \fontseries{b}\selectfont, + kwfont .initial:n = \__pseudo_b_or_bx:, kw .meta:n = { font = \kwfont }, kw .value_forbidden:n = true, hl .meta:n = { bol-prepend = \pseudohl }, |