From d79a721c345c9a2ced6c0640e88c10cc3378c1f0 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 1 Jul 2020 03:03:30 +0000 Subject: CTAN sync 202007010303 --- macros/context/contrib/context-filter/VERSION | 2 +- .../doc/context/third/filter/filter.txt | 84 +- .../tex/context/third/filter/t-filter.mkiv | 19 +- macros/context/contrib/context-vim/VERSION | 2 +- .../context-vim/doc/context/third/vim/vim.txt | 99 +- .../tex/context/third/vim/t-syntax-groups.mkii | 126 ++ .../tex/context/third/vim/t-syntax-groups.mkiv | 126 ++ .../tex/context/third/vim/t-syntax-groups.tex | 130 -- .../tex/context/third/vim/t-syntax-highlight.mkiv | 63 +- .../context-vim/tex/context/third/vim/t-vim.tex | 78 +- .../tex/context/third/vim/vimtyping-default.css | 415 +++++ macros/generic/tracklang/CHANGES | 8 + macros/generic/tracklang/README | 27 +- .../samples/animals/sample-animals-babel.pdf | Bin 14843 -> 14855 bytes .../samples/animals/sample-animals-de-poly.pdf | Bin 3821 -> 3820 bytes .../samples/animals/sample-animals-de.pdf | Bin 13613 -> 13625 bytes .../samples/animals/sample-animals-poly.pdf | Bin 3556 -> 3556 bytes .../samples/animals/sample-animals-sr-poly.pdf | Bin 0 -> 7547 bytes .../tracklang/samples/animals/sample-animals.pdf | Bin 12644 -> 12656 bytes .../samples/animals/sample-animals2-de.pdf | Bin 13613 -> 13625 bytes .../samples/animals/sample-animals2-de2.pdf | Bin 13613 -> 13625 bytes .../samples/animals/sample-animals2-de3.pdf | Bin 13595 -> 13607 bytes .../samples/animals/sample-animals2-de4.pdf | Bin 3817 -> 3820 bytes .../samples/animals/sample-animals2-poly.pdf | Bin 3556 -> 3560 bytes .../tracklang/samples/animals/sample-animals2.pdf | Bin 12644 -> 12656 bytes .../tracklang/samples/regions/sample-regions.pdf | Bin 13148 -> 13161 bytes .../samples/regions/sample-regions2-manx.pdf | Bin 19773 -> 21945 bytes .../samples/regions/sample-regions2-map.pdf | Bin 25988 -> 26000 bytes .../samples/regions/sample-regions2-map2.pdf | Bin 25840 -> 25852 bytes .../samples/regions/sample-regions2-map3.pdf | Bin 24912 -> 24924 bytes .../samples/regions/sample-regions2-nomap.pdf | Bin 25456 -> 25468 bytes .../tracklang/samples/regions/sample-regions2.pdf | Bin 14704 -> 14716 bytes .../generic/tracklang/samples/sample-tracklang.pdf | Bin 19540 -> 19552 bytes .../tracklang/samples/sample-tracklang2.pdf | Bin 19790 -> 19802 bytes .../tracklang/samples/sample-tracklang3.pdf | Bin 19802 -> 19814 bytes .../tracklang/samples/sample-tracklang4.pdf | Bin 6198 -> 6202 bytes .../tracklang/samples/sample-tracklang5.pdf | Bin 16902 -> 16914 bytes .../tracklang/samples/sample-tracklang6.pdf | Bin 19885 -> 19897 bytes macros/generic/tracklang/tracklang.dtx | 69 +- macros/generic/tracklang/tracklang.ins | 4 +- macros/generic/tracklang/tracklang.pdf | Bin 738081 -> 742279 bytes .../contrib/babel-contrib/french/frenchb-doc.pdf | Bin 153525 -> 153907 bytes .../contrib/babel-contrib/french/frenchb-doc.tex | 9 +- .../latex/contrib/babel-contrib/french/frenchb.dtx | 136 +- .../latex/contrib/babel-contrib/french/frenchb.pdf | Bin 308091 -> 325661 bytes macros/latex/contrib/l3backend/CHANGELOG.md | 8 +- macros/latex/contrib/l3backend/README.md | 2 +- .../latex/contrib/l3backend/l3backend-basics.dtx | 12 +- macros/latex/contrib/l3backend/l3backend-box.dtx | 2 +- macros/latex/contrib/l3backend/l3backend-color.dtx | 2 +- macros/latex/contrib/l3backend/l3backend-draw.dtx | 6 +- .../latex/contrib/l3backend/l3backend-graphics.dtx | 2 +- .../latex/contrib/l3backend/l3backend-header.dtx | 2 +- macros/latex/contrib/l3backend/l3backend-pdf.dtx | 2 +- .../latex/contrib/nicematrix/nicematrix-french.pdf | Bin 356758 -> 359504 bytes .../latex/contrib/nicematrix/nicematrix-french.tex | 65 +- macros/latex/contrib/nicematrix/nicematrix.dtx | 352 +++- macros/latex/contrib/nicematrix/nicematrix.pdf | Bin 882583 -> 896061 bytes macros/latex/contrib/pm-isomath/README.txt | 42 +- macros/latex/contrib/pm-isomath/pm-isomath.dtx | 25 +- macros/latex/contrib/pm-isomath/pm-isomath.pdf | Bin 593775 -> 594246 bytes macros/latex/contrib/shtthesis/CHANGELOG.md | 8 + macros/latex/contrib/shtthesis/README.md | 21 +- .../contrib/shtthesis/shtthesis-user-guide.pdf | Bin 2168060 -> 2172646 bytes .../contrib/shtthesis/shtthesis-user-guide.tex | 71 +- macros/latex/contrib/shtthesis/shtthesis.cls | 297 +-- macros/luatex/generic/cloze/README.md | 105 ++ macros/luatex/generic/cloze/cloze.dtx | 907 +++++++++ macros/luatex/generic/cloze/cloze.ins | 57 + macros/luatex/generic/cloze/cloze.lua | 1045 +++++++++++ macros/luatex/generic/cloze/cloze.pdf | Bin 0 -> 600199 bytes macros/luatex/latex/cloze/README.md | 101 - macros/luatex/latex/cloze/cloze.dtx | 1929 -------------------- macros/luatex/latex/cloze/cloze.ins | 56 - macros/luatex/latex/cloze/cloze.lua | 1002 ---------- macros/luatex/latex/cloze/cloze.pdf | Bin 318609 -> 0 bytes 76 files changed, 3837 insertions(+), 3681 deletions(-) create mode 100644 macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii create mode 100644 macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv delete mode 100644 macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex create mode 100644 macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css create mode 100644 macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf create mode 100644 macros/luatex/generic/cloze/README.md create mode 100644 macros/luatex/generic/cloze/cloze.dtx create mode 100644 macros/luatex/generic/cloze/cloze.ins create mode 100644 macros/luatex/generic/cloze/cloze.lua create mode 100644 macros/luatex/generic/cloze/cloze.pdf delete mode 100644 macros/luatex/latex/cloze/README.md delete mode 100644 macros/luatex/latex/cloze/cloze.dtx delete mode 100644 macros/luatex/latex/cloze/cloze.ins delete mode 100644 macros/luatex/latex/cloze/cloze.lua delete mode 100644 macros/luatex/latex/cloze/cloze.pdf (limited to 'macros') diff --git a/macros/context/contrib/context-filter/VERSION b/macros/context/contrib/context-filter/VERSION index 9e6f07d186..ee81786fef 100644 --- a/macros/context/contrib/context-filter/VERSION +++ b/macros/context/contrib/context-filter/VERSION @@ -1 +1 @@ -2020.04.25 +2020.06.29 diff --git a/macros/context/contrib/context-filter/doc/context/third/filter/filter.txt b/macros/context/contrib/context-filter/doc/context/third/filter/filter.txt index a4e24f39ce..17cfb9f172 100644 --- a/macros/context/contrib/context-filter/doc/context/third/filter/filter.txt +++ b/macros/context/contrib/context-filter/doc/context/third/filter/filter.txt @@ -4,9 +4,6 @@ The filter module ================= -History -------- - This module started with a simple idea. I wanted an environment \startmarkdown @@ -31,6 +28,38 @@ program would be a waste of effort. Each new program requires only a few changes in the R-module; what I needed was a R-module _template_ so that I could fill in the blanks with the appropriate values. And so, the filter module was born. +Table of Contents +================= + +* [Compatibility](#compatibility) +* [Installation](#installation) +* [Basic Usage](#basic-usage) +* [Inheriting setup from other commands](#inheriting-setup-from-other-commands) +* [Dealing with slow filters](#dealing-with-slow-filters) +* [Reading the input](#reading-the-input) +* [Space around the environment](#space-around-the-environment) +* [Stripping leading whitespace (MkIV only)](#stripping-leading-whitespace-mkiv-only) +* [Names of temporary files](#names-of-temporary-files) +* [Output Directory](#output-directory) +* [Disabling filters](#disabling-filters) +* [Deleting temporary files](#deleting-temporary-files) +* [Standard options](#standard-options) +* [Options to a specific environment](#options-to-a-specific-environment) +* [A setup to control them all](#a-setup-to-control-them-all) +* [Passing options to filters](#passing-options-to-filters) +* [Macro variant](#macro-variant) +* [Processing existing Files](#processing-existing-files) +* [Processing remote files](#processing-remote-files) +* [Processing existing buffers](#processing-existing-buffers) +* [Prepend and append text](#prepend-and-append-text) +* [XML export](#xml-export) +* [Special use case: \write18 with caching](#special-use-case--write18-with-caching) +* [Dealing with expansion](#dealing-with-expansion) +* [Limitations](#limitations) +* [Messages and Tracing](#messages-and-tracing) +* [Version History](#version-history) + + Compatibility ------------ @@ -47,7 +76,7 @@ standalone, you can install the module using Depending on your TeX distribution, you may already have the module. To verify, check if - kpsewhich t-filter.mkii + luatools t-filter.mkiv returns a meaningful path. If not, you have to manually install the module. @@ -55,22 +84,22 @@ Download the latest version of the module from [http://modules.contextgarden.net/filter](http://modules.contextgarden.net/filter) and unzip it either `$TEXMFHOME` or `$TEXMFLOCAL`. Run - mktexlsr + mtxrun --generate and - mtxrun --generate + mktexlsr -to refresh the TeX file database (for MkII and MkIV, respectively). If +to refresh the TeX file database (for MkIV and MkII, respectively). If everything went well - kpsewhich t-filter.mkii + luatools t-filter.mkiv will return the path where you stored the file. Unfortunately, that is not enough. For the module to work, TeX must be able to call an external program. This feature is a potential security risk and is -disabled by default on most TeX distributions. To enable this feature, set +disabled by default on most TeX distributions. To enable this feature in MkII, set shell_escape=t @@ -726,6 +755,43 @@ Then you can use to get a chess board. +XML export +---------- + +The filter module provides a basic support for XML export. If the +user-document contains + + \setupbackend[export=yes] + +or other valid options to `export` such as `export=xml`, then the filter +environment is exported as well. For example, both + + \startmarkdown + ... + \stopmarkdown + +and + \processmarkdownfile{...} + +are exported (in `\jobname-export/\jobname.xml`) as + + + ... + + +Moreover, + + \inlinemarkdown{...} + +is exported as + + .... + + +Note that it is the responsibility of the filter to generate properly tagged +content. For example, `pandoc` used in the `markdown` examples in this +document converts `**bold**` to `{\bf bold}`, which is not exported. + Special use case: `\write18` with caching ------------------------------------------ diff --git a/macros/context/contrib/context-filter/tex/context/third/filter/t-filter.mkiv b/macros/context/contrib/context-filter/tex/context/third/filter/t-filter.mkiv index 5db429a3d2..757f4752b0 100644 --- a/macros/context/contrib/context-filter/tex/context/third/filter/t-filter.mkiv +++ b/macros/context/contrib/context-filter/tex/context/third/filter/t-filter.mkiv @@ -1,6 +1,6 @@ %D \module %D [ file=t-filter, -%D version=2020.04.25, +%D version=2020.06.29, %D title=\CONTEXT\ User Module, %D subtitle=Filter, %D author=Aditya Mahajan, @@ -9,7 +9,7 @@ %D email=adityam ieee org, %D license=Simplified BSD License] -\writestatus{loading}{Filter (ver: 2020.04.25)} +\writestatus{loading}{Filter (ver: 2020.06.29)} \startmodule [filter] \usemodule [module-catcodes] @@ -35,6 +35,7 @@ \setinterfaceconstant {write} {write} \setinterfaceconstant {readcommand} {readcommand} \setinterfaceconstant {taglabel} {taglabel} + \setinterfaceconstant {tagdetail} {tagdetail} \stopinterface @@ -66,6 +67,10 @@ \setuevalue{process\currentexternalfilter file}{\externalfilter@process_file[\currentexternalfilter]}% \setuevalue{process\currentexternalfilter buffer}{\externalfilter@process_buffer[\currentexternalfilter]}% \setuevalue{inline\currentexternalfilter}{\externalfilter@inline[\currentexternalfilter]}% + \setelementbackendtag[\externalfilterparameter\c!taglabel] + \setelementnature [\externalfilterparameter\c!taglabel][display] + \setelementbackendtag[inline\externalfilterparameter\c!taglabel] + \setelementnature [inline\externalfilterparameter\c!taglabel][inline] \to \everydefineexternalfilter % For backward compatibility @@ -479,16 +484,17 @@ \doifelse{\externalfilterparameter\c!location}\v!paragraph {\blank[\externalfilterparameter\c!spacebefore] \usealignparameter\externalfilterparameter - \externalfilterparameter\c!before} - {\externalfilterparameter\c!left} + \externalfilterparameter\c!before + \dostarttagged{\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} + {\externalfilterparameter\c!left + \dostarttagged{inline\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} \begingroup - \dostarttagged{\externalfilterparameter\c!taglabel}\currentexternalfilter \useexternalfilterstyleandcolor\c!style\c!color \processcommacommand[\externalfilterparameter\c!setups]\directsetup \externalfilterparameter\c!readcommand\externalfilter@output_file - \dostoptagged \endgroup + \dostoptagged \doifelse{\externalfilterparameter\c!location}\v!paragraph {\externalfilterparameter\c!after @@ -526,6 +532,7 @@ \c!buffer\c!before=, \c!buffer\c!after=, \c!taglabel=\externalfilter@id, + \c!tagdetail=\currentexternalfilter, ] \def\externalfilterbasefile {\externalfilter@base_file} diff --git a/macros/context/contrib/context-vim/VERSION b/macros/context/contrib/context-vim/VERSION index 245e15befa..ee81786fef 100644 --- a/macros/context/contrib/context-vim/VERSION +++ b/macros/context/contrib/context-vim/VERSION @@ -1 +1 @@ -2020.06.25 +2020.06.29 diff --git a/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt b/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt index 88bc2b9dc6..12c5d10a07 100644 --- a/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt +++ b/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt @@ -37,6 +37,7 @@ Table of Contents * [Name (and location) of the VIM executable](#name-and-location-of-the-vim-executable) * [Defining a new colorscheme](#defining-a-new-colorscheme) * [Modifying an existing color scheme](#modifying-an-existing-color-scheme) +* [XML export](#xml-export) * [A bit of a history](#a-bit-of-a-history) @@ -69,30 +70,30 @@ standalone, you can install the module using Depending on your TeX distribution, you may already have the module. To verify, check if - kpsewhich t-vim.tex + luatools t-vim.tex returns a meaningful path. If not, you have to manually install the module. Download the latest version of the `filter` and `vim` modules from [http://github.com/adityam/filter/downloads](http://github.com/adityam/filter/downloads) and unzip them either `$TEXMFHOME` or `$TEXMFLOCAL`. Run - mktexlsr + mtxrun --generate and - mtxrun --generate + mktexlsr -to refresh the TeX file database (for MkII and MkIV, respectively). If +to refresh the TeX file database (for MkIV and MkII, respectively). If everything went well - kpsewhich t-vim + luatools t-vim will return the path where you stored the file. Unfortunately, that is not enough. For the module to work, TeX must be able to call an external program. This feature is a potential security risk and is -disabled by default on most TeX distributions. To enable this feature, you must -set +disabled by default on most TeX distributions. To enable this feature in MkII, +you must set shell_escape=t @@ -297,9 +298,12 @@ If you want every fifth line to be numbered, use Standard options for line numbering ----------------------------------- -**Note**: These options can only be set using `\definevimtyping[...][...]` or -`\setupvimtyping[...][...]`. They do not work when used with -`\start`. +**Note**: Linenumbering options can only be set using `\definevimtyping[...][...]` +or `\setupvimtyping[...][...]`. They do not work when used with +`\start`. All the line numbers on a given page have the same +properties. So, if you change these properties in the middle of the page, it +will effect all the listings on that page, _even those defined earlier!_ + - To change the color or style of the numbers, use the `numbercolor=...` and `numberstyle=...` options. By default `numbercolor` is not set, while @@ -971,6 +975,81 @@ typeset in bold red, we can use: [color=red, style=bold] \stopcolorscheme ``` +XML Export +---------- + +The vim module provides a basic support for XML export. If the user-document +contains + + \setupbackend[export=yes] + +or other valid options to `export` such as `export=xml`, then the vim typing +environments are exported as well. For example, + + \definevimtyping[PYTHON][syntax=python] + \startPYTHON + # Python program listing + def foobar + print("Hello World") + \stopPYTHON + + +is exported as + + + # Python program listing + def foobar + print("Hello World") + + +The name of the exported envionment is `vimtyping`. + +Inline environments such as + + \definevimtyping[PYTHON][syntax=python] + \inlinePYTHON{print("Hello World")} + +is exported as + + print("Hello World") + +The name of the exported envionment is `inlinevimtyping`. + +In both the display and inline environments, the name of the programming +language (value of the `syntax` key) is +not exported since it is not needed to display the parse output. +Instead the name of the colorscheme (value of the `alternative` key) is +exported as the parameter `detail` of `vimtyping`. Each line is exported as a +`verbatimline`. Each syntaxgroup is exported as ``. +The value of `defail` equals to the name of the syntax highlighting group +_prepended with `vim`_. The name is prepended with `vim` to avoid name clashes +with other elements in the exported XML. Strictly speaking this is not +necessary, but it does make it easier to write CSS selectors. + +The module comes with a CSS file with default mappings for the two +colorschemes that are provided with the module (`pscolor` and +`blackandwhite`). This is meant as a simple solution which gives approximately +the same output as the PDF file. To use this CSS file, add + + \setupexport[cssfile=\vimtypingcssfile] + +If you already have other values for `cssfile`, then use: + + \setupexport[cssfile={...,...,\vimtypingcssfile}] + +Note that the macro `\vimtypingcssfile` is defined in the vim module, so the +above line has to come after the `vim` module has been loaded. + +If you make changes to the default colorschemes, define colorschemes of your +own, or want to tweak the visual appearance of the output, you need to tweak +the default CSS file to suit your needs. It is suggested that you copy the +default css file and tweak it. You can find the location of the default CSS +file using + + luatools vimtyping-default.css + +Copy it under a different name and tweak it as desired. + A bit of a history ------------------ diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii new file mode 100644 index 0000000000..b13a902af1 --- /dev/null +++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii @@ -0,0 +1,126 @@ +%D \module +%D [ file=t-syntax-groups, +%D version=2020.06.25, +%D title=\CONTEXT\ User Module, +%D subtitle=Syntax highlighting support, +%D author=Aditya Mahajan, +%D date=\currentdate, +%D copyright=Aditya Mahajan, +%D email=adityam ieee org, +%D license=Simplified BSD License] + +\writestatus{loading}{Syntax highlighting groups (ver: 2020.06.25)} + +\startmodule [syntax-group] +\usemodule [module-catcodes] + +\unprotectmodulecatcodes + +% Colors are specified in hex; in MkII the hex mode needs to be activated. +\doifmode\s!mkii + {\setupcolor[hex]} + + +\def\colorscheme@name {} + +\def\syntaxgroup@id {syntaxgroup} +\def\syntaxgroup@namespace {@@@@\syntaxgroup@id} +\def\syntaxgroup@name {} + +\edef\t!syntaxgroup {\syntaxgroup@id} + + +\installparameterhandler \syntaxgroup@namespace \syntaxgroup@id +\installsetuphandler \syntaxgroup@namespace \syntaxgroup@id + +\def\m!syntaxgroup{t-syntax-group} + +\def\definesyntaxgroup + {\dodoubleargument\syntaxgroup@define} + +\starttexdefinition syntaxgroup@define [#1][#2] + % #1 list name + % #2 options + \doifassignmentelse{#2} + { + \def\syntaxgroup@get_parameters##1% + { + \edef\syntaxgroup@name {\colorscheme@name##1} + \setupsyntaxgroup[\syntaxgroup@name] + [\s!parent=\syntaxgroup@namespace,\c!color=,\c!style=,\c!command=,#2] + \doifsomething{\syntaxgroupparameter\c!color} + { + \expanded{\definecolor[\syntaxgroup@namespace-\syntaxgroup@name-color] + [\syntaxgroupparameter\c!color]} + \expanded{\setupsyntaxgroup[\syntaxgroup@name][\s!parent=\syntaxgroup@namespace,\c!color=\syntaxgroup@namespace-\syntaxgroup@name-color]} + } + } + }{ + \def\syntaxgroup@get_parameters##1% + { + \edef\syntaxgroup@name {\colorscheme@name##1} + \expanded{\setupsyntaxgroup[\syntaxgroup@name] + [\c!color=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!color, + \c!style=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!style, + \c!command=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!command, + ]} + + % In MkII, \expanded messes up the definition of \currentsyntaxgroup + \def\currentsyntaxgroup {\syntaxgroup@name} + } + } + + \processcommalist[#1]\syntaxgroup@get_parameters +\stoptexdefinition + +\def\startcolorscheme% + {\dosingleargument\colorscheme@start} + +\starttexdefinition colorscheme@start [#1] + \pushmacro\colorscheme@name + \setcolorscheme{#1} + %\setupsyntaxgroup[\c!color=,\c!style=,\c!command=] +\stoptexdefinition + +\def\stopcolorscheme + {\popmacro\colorscheme@name} + +\def\setcolorscheme#1% + {\edef\colorscheme@name{#1}} + +\starttexdefinition syntaxgroup [#1]#2 + % #1 = style + % #2 = content + \begingroup + \edef\syntaxgroup@name{\colorscheme@name#1}% + \syntaxgroupparameter\c!before + \iftracesyntaxgroups + \syntaxgroup@show_values + \fi + \syntaxgroupparameter\c!command + { + \externalfilter@attributes_start\syntaxgroup@id\c!style\c!color + #2 + \externalfilter@attributes_stop + } + \syntaxgroupparameter\c!after + \endgroup +\stoptexdefinition + +%D Tracing macros + +\newif\iftracesyntaxgroups +\let\tracesyntaxgroups\tracesyntaxgroupstrue + +\def\currentsyntaxgroup {\syntaxgroup@name} + +\starttexdefinition syntaxgroup@show_values + \writestatus\m!syntaxgroup{color scheme : \colorscheme@name} + \writestatus\m!syntaxgroup{current group: \syntaxgroup@name} + \writestatus\m!syntaxgroup{command : \syntaxgroupparameter\c!command} + \writestatus\m!syntaxgroup{style : \syntaxgroupparameter\c!style} + \writestatus\m!syntaxgroup{color : \syntaxgroupparameter\c!color} +\stoptexdefinition + +\protectmodulecatcodes +\stopmodule diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv new file mode 100644 index 0000000000..564490ee26 --- /dev/null +++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv @@ -0,0 +1,126 @@ +%D \module +%D [ file=t-syntax-groups, +%D version=2020.06.29, +%D title=\CONTEXT\ User Module, +%D subtitle=Syntax highlighting support, +%D author=Aditya Mahajan, +%D date=\currentdate, +%D copyright=Aditya Mahajan, +%D email=adityam ieee org, +%D license=Simplified BSD License] + +\writestatus{loading}{Syntax highlighting groups (ver: 2020.06.29)} + +\startmodule [syntax-group] +\usemodule [module-catcodes] + +\unprotectmodulecatcodes + +\def\colorscheme@name {} + +\def\syntaxgroup@id {syntaxgroup} +\def\syntaxgroup@namespace {@@@@\syntaxgroup@id} +\def\syntaxgroup@name {} + +\edef\t!vimsyntaxgroup {\syntaxgroup@id} +\setelementbackendtag[\t!vimsyntaxgroup] +\setelementnature [\t!vimsyntaxgroup][inline] + + +\installparameterhandler \syntaxgroup@namespace \syntaxgroup@id +\installsetuphandler \syntaxgroup@namespace \syntaxgroup@id +\installstyleandcolorhandler \syntaxgroup@namespace \syntaxgroup@id + +\def\m!syntaxgroup{t-syntax-group} + +\def\definesyntaxgroup + {\dodoubleargument\syntaxgroup@define} + +\starttexdefinition syntaxgroup@define [#1][#2] + % #1 list name + % #2 options + \doifassignmentelse{#2} + { + \def\syntaxgroup@get_parameters##1% + { + \edef\syntaxgroup@name {\colorscheme@name##1} + \setupsyntaxgroup[\syntaxgroup@name] + [\s!parent=\syntaxgroup@namespace,\c!color=,\c!style=,\c!command=,#2] + \doifsomething{\syntaxgroupparameter\c!color} + { + \expanded{\definecolor[\syntaxgroup@namespace-##1-color] + [\syntaxgroupparameter\c!color]} + \setupsyntaxgroup[\syntaxgroup@name][\s!parent=\syntaxgroup@namespace,\c!color=\syntaxgroup@namespace-##1-color] + } + } + }{ + \def\syntaxgroup@get_parameters##1% + { + \edef\syntaxgroup@name {\colorscheme@name##1} + \expanded{\setupsyntaxgroup[\syntaxgroup@name] + [\c!color=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!color, + \c!style=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!style, + \c!command=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!command, + ]} + + % In MkII, \expanded messes up the definition of \currentsyntaxgroup + \def\currentsyntaxgroup {\syntaxgroup@name} + } + } + + \processcommalist[#1]\syntaxgroup@get_parameters +\stoptexdefinition + +\def\startcolorscheme% + {\dosingleargument\colorscheme@start} + +\starttexdefinition colorscheme@start [#1] + \pushmacro\colorscheme@name + \setcolorscheme{#1} + %\setupsyntaxgroup[\c!color=,\c!style=,\c!command=] +\stoptexdefinition + +\def\stopcolorscheme + {\popmacro\colorscheme@name} + +\def\setcolorscheme#1% + {\edef\colorscheme@name{#1}} + +\starttexdefinition syntaxgroup [#1]#2 + % #1 = style + % #2 = content + \begingroup + \edef\syntaxgroup@name{\colorscheme@name#1}% + \syntaxgroupparameter\c!before + \iftracesyntaxgroups + \syntaxgroup@show_values + \fi + \dostarttagged\t!vimsyntaxgroup{vim#1} + \syntaxgroupparameter\c!command + { + \externalfilter@attributes_start\syntaxgroup@id\c!style\c!color + #2 + \externalfilter@attributes_stop + } + \dostoptagged + \syntaxgroupparameter\c!after + \endgroup +\stoptexdefinition + +%D Tracing macros + +\newif\iftracesyntaxgroups +\let\tracesyntaxgroups\tracesyntaxgroupstrue + +\def\currentsyntaxgroup {\syntaxgroup@name} + +\starttexdefinition syntaxgroup@show_values + \writestatus\m!syntaxgroup{color scheme : \colorscheme@name} + \writestatus\m!syntaxgroup{current group: \syntaxgroup@name} + \writestatus\m!syntaxgroup{command : \syntaxgroupparameter\c!command} + \writestatus\m!syntaxgroup{style : \syntaxgroupparameter\c!style} + \writestatus\m!syntaxgroup{color : \syntaxgroupparameter\c!color} +\stoptexdefinition + +\protectmodulecatcodes +\stopmodule diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex deleted file mode 100644 index 23fb1b7593..0000000000 --- a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex +++ /dev/null @@ -1,130 +0,0 @@ -%D \module -%D [ file=t-syntax-groups, -%D version=2020.06.25, -%D title=\CONTEXT\ User Module, -%D subtitle=Syntax highlighting support, -%D author=Aditya Mahajan, -%D date=\currentdate, -%D copyright=Aditya Mahajan, -%D email=adityam ieee org, -%D license=Simplified BSD License] - -\writestatus{loading}{Syntax highlighting groups (ver: 2020.06.25)} - -\startmodule [syntax-group] -\usemodule [module-catcodes] - -\unprotectmodulecatcodes - -% Colors are specified in hex; in MkII the hex mode needs to be activated. -\doifmode\s!mkii - {\setupcolor[hex]} - - -\def\colorscheme@name {} - -\def\syntaxgroup@id {syntaxgroup} -\def\syntaxgroup@namespace {@@@@\syntaxgroup@id} -\def\syntaxgroup@name {} - -\edef\t!syntaxgroup {\syntaxgroup@id} - - -\installparameterhandler \syntaxgroup@namespace \syntaxgroup@id -\installsetuphandler \syntaxgroup@namespace \syntaxgroup@id -\doifmode{\s!mkiv} - {\installstyleandcolorhandler \syntaxgroup@namespace \syntaxgroup@id} - -\def\m!syntaxgroup{t-syntax-group} - -\def\definesyntaxgroup - {\dodoubleargument\syntaxgroup@define} - -\starttexdefinition syntaxgroup@define [#1][#2] - % #1 list name - % #2 options - \doifassignmentelse{#2} - { - \def\syntaxgroup@get_parameters##1% - { - \edef\syntaxgroup@name {\colorscheme@name##1} - \setupsyntaxgroup[\syntaxgroup@name] - [\s!parent=\syntaxgroup@namespace,\c!color=,\c!style=,\c!command=,#2] - \doifsomething{\syntaxgroupparameter\c!color} - { - \expanded{\definecolor[\syntaxgroup@namespace-\syntaxgroup@name-color] - [\syntaxgroupparameter\c!color]} - \expanded{\setupsyntaxgroup[\syntaxgroup@name][\s!parent=\syntaxgroup@namespace,\c!color=\syntaxgroup@namespace-\syntaxgroup@name-color]} - } - } - }{ - \def\syntaxgroup@get_parameters##1% - { - \edef\syntaxgroup@name {\colorscheme@name##1} - \expanded{\setupsyntaxgroup[\syntaxgroup@name] - [\c!color=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!color, - \c!style=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!style, - \c!command=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!command, - ]} - - % In MkII, \expanded messes up the definition of \currentsyntaxgroup - \def\currentsyntaxgroup {\syntaxgroup@name} - } - } - - \processcommalist[#1]\syntaxgroup@get_parameters -\stoptexdefinition - -\def\startcolorscheme% - {\dosingleargument\colorscheme@start} - -\starttexdefinition colorscheme@start [#1] - \pushmacro\colorscheme@name - \setcolorscheme{#1} - %\setupsyntaxgroup[\c!color=,\c!style=,\c!command=] -\stoptexdefinition - -\def\stopcolorscheme - {\popmacro\colorscheme@name} - -\def\setcolorscheme#1% - {\edef\colorscheme@name{#1}} - -\starttexdefinition syntaxgroup [#1]#2 - % #1 = style - % #2 = content - \begingroup - \edef\syntaxgroup@name{\colorscheme@name#1}% - \syntaxgroupparameter\c!before - \iftracesyntaxgroups - \syntaxgroup@show_values - \fi - \doifmode{\s!mkiv}{\dostarttagged\t!syntaxgroup{#1}} - \syntaxgroupparameter\c!command - { - \externalfilter@attributes_start\syntaxgroup@id\c!style\c!color - #2 - \externalfilter@attributes_stop - } - \doifmode{\s!mkiv}{\dostoptagged} - \syntaxgroupparameter\c!after - \endgroup -\stoptexdefinition - -%D Tracing macros - -\newif\iftracesyntaxgroups -\let\tracesyntaxgroups\tracesyntaxgroupstrue - -\def\currentsyntaxgroup {\syntaxgroup@name} - -\starttexdefinition syntaxgroup@show_values - \writestatus\m!syntaxgroup{color scheme : \colorscheme@name} - \writestatus\m!syntaxgroup{current group: \syntaxgroup@name} - \writestatus\m!syntaxgroup{command : \syntaxgroupparameter\c!command} - \writestatus\m!syntaxgroup{style : \syntaxgroupparameter\c!style} - \writestatus\m!syntaxgroup{color : \syntaxgroupparameter\c!color} -\stoptexdefinition - -\protectmodulecatcodes -\stopmodule diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv index a056730174..13786bba29 100644 --- a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv +++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv @@ -1,6 +1,6 @@ %D \module %D [ file=t-syntax-highlight, -%D version=2018.08.10, +%D version=2020.06.29, %D title=\CONTEXT\ User Module, %D subtitle=Code syntax highlighting, %D author=Aditya Mahajan, @@ -9,7 +9,7 @@ %D email=adityam ieee org, %D license=Simplified BSD License] -\writestatus{loading}{Code syntax highlighting (ver: 2018.08.10)} +\writestatus{loading}{Code syntax highlighting (ver: 2020.06.29)} \startmodule [syntax-highlight] \usemodule [syntax-groups] @@ -36,32 +36,37 @@ \appendtoks \defineexternalfilter[\currentsyntaxhighlighting] - [\s!parent=\????syntaxhighlighting\currentexternalfilter,\c!taglabel=\vimtyping@id]% + [\s!parent=\????syntaxhighlighting\currentexternalfilter, + \c!taglabel=\vimtyping@id, + \c!tagdetail={\externalfilterparameter\c!alternative}, + ]% \normalexpanded{\definelinenumbering [\currentsyntaxhighlighting]}% \setevalue{type\currentsyntaxhighlighting file}{\getvalue{process\currentsyntaxhighlighting file}}% \to\everydefinesyntaxhighlighting +\define[1]\syntaxhighlighting@set_linenumbers + {\def\syntaxhighlighting@linenumbering{\getvalue{current#1}}% + \def\syntaxhighlighting@parameter{\getvalue{#1parameter}}% + \normalexpanded{\setuplinenumbering[\syntaxhighlighting@linenumbering] + [ + \c!method=\syntaxhighlighting@parameter{\c!number\c!method}, + \c!conversion=\syntaxhighlighting@parameter\c!numberconversion, + \c!location=\syntaxhighlighting@parameter{\c!number\c!location}, + \c!style=\syntaxhighlighting@parameter\c!numberstyle, + \c!color=\syntaxhighlighting@parameter\c!numbercolor, + \c!width=\syntaxhighlighting@parameter{\c!number\c!width}, + \c!left=\syntaxhighlighting@parameter{\c!number\c!left}, + \c!right=\syntaxhighlighting@parameter{\c!number\c!right}, + \c!command=\syntaxhighlighting@parameter\c!numbercommand, + \c!distance=\syntaxhighlighting@parameter{\c!number\c!distance}, + \c!align=\syntaxhighlighting@parameter{\c!number\c!align}, + ]}} + \appendtoks - % \externalfitlterparameter does not work, so it is better to use - % \syntaxhighlighting parameter. - \normalexpanded{\setuplinenumbering[\currentsyntaxhighlighting] - [ - \c!method=\syntaxhighlightingparameter{\c!number\c!method}, - \c!conversion=\syntaxhighlightingparameter\c!numberconversion, - \c!location=\syntaxhighlightingparameter{\c!number\c!location}, - \c!style=\syntaxhighlightingparameter\c!numberstyle, - \c!color=\syntaxhighlightingparameter\c!numbercolor, - \c!width=\syntaxhighlightingparameter{\c!number\c!width}, - \c!left=\syntaxhighlightingparameter{\c!number\c!left}, - \c!right=\syntaxhighlightingparameter{\c!number\c!right}, - \c!command=\syntaxhighlightingparameter\c!numbercommand, - \c!distance=\syntaxhighlightingparameter{\c!number\c!distance}, - \c!align=\syntaxhighlightingparameter{\c!number\c!align}, - ]}% + \syntaxhighlighting@set_linenumbers\syntaxhighlighting@id \to\everysetupsyntaxhighlighting \def\syntaxhighlighting@id {syntaxhighlighting} -\edef\t!syntaxhighlighting {\syntaxhighlighting@id} %D Helper macro @@ -111,7 +116,7 @@ \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_start - \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes + \doifinsetelse{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\let\SYNBOL=\syntaxhighlighting_begin_number_lines \let\SYNEOL=\syntaxhighlighting_end_number_lines \startlinenumbering @@ -122,24 +127,34 @@ \c!step=\externalfilterparameter{\c!number\c!step}, \c!continue=\externalfilterparameter{\c!number\c!continue}, ]} - \dostarttagged\t!syntaxhighlighting\colorscheme@name + {\let\SYNBOL=\syntaxhighlighting_begin_lines + \let\SYNEOL=\syntaxhighlighting_end_lines} \stoptexdefinition \starttexdefinition syntaxhighlighting@linenumbering_stop - \dostoptagged \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes {\stoplinenumbering} \stoptexdefinition \newcount\nofsyntaxhighlightinglines +\starttexdefinition syntaxhighlighting_begin_lines + \dostarttaggednodetail\t!verbatimline +\stoptexdefinition + +\starttexdefinition syntaxhighlighting_end_lines + \dostoptagged +\stoptexdefinition + \starttexdefinition syntaxhighlighting_begin_number_lines \global\advance\nofsyntaxhighlightinglines\plusone + \dostarttaggednodetail\t!verbatimline \attribute\verbatimlineattribute\nofsyntaxhighlightinglines \stoptexdefinition \starttexdefinition syntaxhighlighting_end_number_lines - \attribute\verbatimlineattribute\attributeunsetvalue + \attribute\verbatimlineattribute\attributeunsetvalue + \dostoptagged \stoptexdefinition diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex b/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex index 2ea93198c4..3cb8e31089 100644 --- a/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex +++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex @@ -1,6 +1,6 @@ %D \module %D [ file=t-vim, -%D version=2020.05.17, +%D version=2020.06.29, %D title=\CONTEXT\ User Module, %D subtitle=Vim syntax highlighting, %D author=Aditya Mahajan, @@ -9,7 +9,7 @@ %D email=adityam ieee org, %D license=Simplified BSD License] -\writestatus{loading}{Vim syntax highlighting (ver: 2020.05.17)} +\writestatus{loading}{Vim syntax highlighting (ver: 2020.06.29)} \startmodule [vim] \usemodule [filter] % loads module catcodes @@ -31,6 +31,13 @@ \installparameterhandler \vimtyping@namespace \vimtyping@id \installsetuphandler \vimtyping@namespace \vimtyping@id +\appendtoks + % \setupvimtyping[...][...] does not call + % \setupsyntaxhighlighting[...][...], + % So, the line numbering options are not reset. Reset them explicitly here + \syntaxhighlighting@set_linenumbers\vimtyping@id +\to\everysetupvimtyping + \def\definevimtyping {\dodoubleargument\vimtyping@define} @@ -43,11 +50,16 @@ % Mode to testing the dev version of 2context script. \doifmodeelse{vim-dev,dev-vim} - {\def\vimtyping@script_name{2context.vim}} + {\def\vimtyping@script_name{2context.vim}% + \doifmode\s!mkiv{\def\vimtyping@css_name{vimtyping-default.css}}} {\doifmodeelse\s!mkiv - {\ctxlua{context.setvalue("vimtyping@script_name",resolvers.resolve("full:2context.vim"))}} + {\ctxlua{context.setvalue("vimtyping@script_name",resolvers.resolve("full:2context.vim"))}% + \ctxlua{context.setvalue("vimtyping@css_name", + resolvers.resolve("full:vimtyping-default.css"))}} {\def\vimtyping@script_name{kpse:2context.vim}}} +\def\vimtypingcssfile{\vimtyping@css_name} + \def\vimtyping@filter_command {\externalfilterparameter\c!vimcommand\space -u \vimrc_filename\space % read global config file @@ -258,7 +270,6 @@ [\c!color={h=800000}, \c!command=\vimtodoframed] - \definesyntaxgroup [Error] [\c!color={h=c03000}] @@ -268,11 +279,6 @@ [\c!color={h=6a5acd}, \c!command=\underbar] - \definesyntaxgroup - [Todo] - [\c!color={h=800000}, - \c!command=\vimtodoframed] - \setups{vim-minor-groups} \definesyntaxgroup @@ -323,58 +329,6 @@ \setups{vim-minor-groups} -\stopcolorscheme - -\startcolorscheme[kate] - % Temporary definition... will change - % . kw dsKeyword - % . dt dsDataType - % . dv dsDecVal - % . bn dsBaseN - % . fl dsFloat - % . ch dsChar - % . st dsString - % . co dsComment - % . ot dsOthers - % . al dsAlert - % . fu dsFunction - % . re dsRegionMarker - % . er dsError - \definesyntaxgroup - [kw] - [\c!color={h=007020}, \c!style=bold] - - \definesyntaxgroup - [dt] - [\c!color={h=902000}] - - \definesyntaxgroup - [dv, bn, fl] - [\c!color={h=40a070}] - - \definesyntaxgroup - [ch, st] - [\c!color={h=4070a0}] - - \definesyntaxgroup - [co] - [\c!color={h=60a0b0}, \c!style=italic] - - \definesyntaxgroup - [ot] - [\c!color={h=007020}] - - \definesyntaxgroup - [al, er] - [\c!color=red, \c!style=bold] - - \definesyntaxgroup - [fu] - [\c!color={h=06287e}] - - \definesyntaxgroup - [re] - \stopcolorscheme \protectmodulecatcodes diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css b/macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css new file mode 100644 index 0000000000..e1eeb7d89d --- /dev/null +++ b/macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css @@ -0,0 +1,415 @@ +/* + author : Aditya Mahajan and Christoph Hintermüller, + license : Simplfied BSD License, + version : 2020.06.29 +*/ + +/* TODO: + * Inline environments + * Export of TODO has an extra space + * Line numbering in the margin + */ + +vimtyping, +.vimtyping +{ + font-family:monospace; + display:block; + white-space:pre-wrap; +} + +inlinevimtyping, +.inlinevimtyping +{ + font-family:monospace; + display:inline; + white-space:pre-wrap; +} + + +vimtyping verbatimline, +inlinevimtyping verbatimline, +.vimtyping .verbatimline, +.inlinevimtyping .verbatimline +{ + display:inline; + white-space:pre-wrap; +} + +vimtyping syntaxgroup, +inlinevimtyping syntaxgroup, +.vimtyping .syntaxgroup, +.inlinevimtyping .syntaxgroup +{ + display:inline; +} + +/* `pscolor` color scheme */ +vimtyping[detail=pscolor] syntaxgroup[defail=vimConstant], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimConstant], +.vimtyping.pscolor .syntaxgroup.vimConstant, +.inlinevimtyping.pscolor .syntaxgroup.vimConstant, +vimtyping[detail=pscolor] syntaxgroup[defail=vimString], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimString], +.vimtyping.pscolor .syntaxgroup.vimString, +.inlinevimtyping.pscolor .syntaxgroup.vimString, +vimtyping[detail=pscolor] syntaxgroup[defail=vimCharacter], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimCharacter], +.vimtyping.pscolor .syntaxgroup.vimCharacter, +.inlinevimtyping.pscolor .syntaxgroup.vimCharacter, +vimtyping[detail=pscolor] syntaxgroup[defail=vimBoolean], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimBoolean], +.vimtyping.pscolor .syntaxgroup.vimBoolean, +.inlinevimtyping.pscolor .syntaxgroup.vimBoolean, +vimtyping[detail=pscolor] syntaxgroup[defail=vimFloat], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimFloat], +.vimtyping.pscolor .syntaxgroup.vimFloat, +.inlinevimtyping.pscolor .syntaxgroup.vimFloat +{ + color:#007068; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimNumber], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimNumber], +.vimtyping.pscolor .syntaxgroup.vimNumber, +.inlinevimtyping.pscolor .syntaxgroup.vimNumber +{ + color:#907000; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimIdentifier], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimIdentifier], +.vimtyping.pscolor .syntaxgroup.vimIdentifier, +.inlinevimtyping.pscolor .syntaxgroup.vimIdentifier, +vimtyping[detail=pscolor] syntaxgroup[defail=vimFunction], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimFunction], +.vimtyping.pscolor .syntaxgroup.vimFunction, +.inlinevimtyping.pscolor .syntaxgroup.vimFunction +{ + color:#a030a0; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimStatement], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStatement], +.vimtyping.pscolor .syntaxgroup.vimStatement, +.inlinevimtyping.pscolor .syntaxgroup.vimStatement, +vimtyping[detail=pscolor] syntaxgroup[defail=vimCondition], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimCondition], +.vimtyping.pscolor .syntaxgroup.vimCondition, +.inlinevimtyping.pscolor .syntaxgroup.vimCondition, +vimtyping[detail=pscolor] syntaxgroup[defail=vimRepeat], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimRepeat], +.vimtyping.pscolor .syntaxgroup.vimRepeat, +.inlinevimtyping.pscolor .syntaxgroup.vimRepeat, +vimtyping[detail=pscolor] syntaxgroup[defail=vimLabel], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimLabel], +.vimtyping.pscolor .syntaxgroup.vimLabel, +.inlinevimtyping.pscolor .syntaxgroup.vimLabel, +vimtyping[detail=pscolor] syntaxgroup[defail=vimOperator], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimOperator], +.vimtyping.pscolor .syntaxgroup.vimOperator, +.inlinevimtyping.pscolor .syntaxgroup.vimOperator, +vimtyping[detail=pscolor] syntaxgroup[defail=vimKeyword], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimKeyword], +.vimtyping.pscolor .syntaxgroup.vimKeyword, +.inlinevimtyping.pscolor .syntaxgroup.vimKeyword, +vimtyping[detail=pscolor] syntaxgroup[defail=vimException], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimException], +.vimtyping.pscolor .syntaxgroup.vimException, +.inlinevimtyping.pscolor .syntaxgroup.vimException +{ + color:#2060a8; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimPreProc], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimPreProc], +.vimtyping.pscolor .syntaxgroup.vimPreProc, +.inlinevimtyping.pscolor .syntaxgroup.vimPreProc, +vimtyping[detail=pscolor] syntaxgroup[defail=vimInclude], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimInclude], +.vimtyping.pscolor .syntaxgroup.vimInclude, +.inlinevimtyping.pscolor .syntaxgroup.vimInclude, +vimtyping[detail=pscolor] syntaxgroup[defail=vimDefine], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDefine], +.vimtyping.pscolor .syntaxgroup.vimDefine, +.inlinevimtyping.pscolor .syntaxgroup.vimDefine, +vimtyping[detail=pscolor] syntaxgroup[defail=vimMacro], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimMacro], +.vimtyping.pscolor .syntaxgroup.vimMacro, +.inlinevimtyping.pscolor .syntaxgroup.vimMacro, +vimtyping[detail=pscolor] syntaxgroup[defail=vimPreCondit], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimPreCondit], +.vimtyping.pscolor .syntaxgroup.vimPreCondit, +.inlinevimtyping.pscolor .syntaxgroup.vimPreCondit +{ + color:#009030; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimType], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimType], +.vimtyping.pscolor .syntaxgroup.vimType, +.inlinevimtyping.pscolor .syntaxgroup.vimType, +vimtyping[detail=pscolor] syntaxgroup[defail=vimStorageClass], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStorageClass], +.vimtyping.pscolor .syntaxgroup.vimStorageClass, +.inlinevimtyping.pscolor .syntaxgroup.vimStorageClass, +vimtyping[detail=pscolor] syntaxgroup[defail=vimStructure], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStructure], +.vimtyping.pscolor .syntaxgroup.vimStructure, +.inlinevimtyping.pscolor .syntaxgroup.vimStructure, +vimtyping[detail=pscolor] syntaxgroup[defail=vimTypedef], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimTypedef], +.vimtyping.pscolor .syntaxgroup.vimTypedef, +.inlinevimtyping.pscolor .syntaxgroup.vimTypedef +{ + color:#0850a0; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecial], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecial], +.vimtyping.pscolor .syntaxgroup.vimSpecial, +.inlinevimtyping.pscolor .syntaxgroup.vimSpecial, +vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialChar], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialChar], +.vimtyping.pscolor .syntaxgroup.vimSpecialChar, +.inlinevimtyping.pscolor .syntaxgroup.vimSpecialChar, +vimtyping[detail=pscolor] syntaxgroup[defail=vimDelimiter], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDelimiter], +.vimtyping.pscolor .syntaxgroup.vimDelimiter, +.inlinevimtyping.pscolor .syntaxgroup.vimDelimiter, +vimtyping[detail=pscolor] syntaxgroup[defail=vimDebug], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDebug], +.vimtyping.pscolor .syntaxgroup.vimDebug, +.inlinevimtyping.pscolor .syntaxgroup.vimDebug +{ + color:#907000; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimComment], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimComment], +.vimtyping.pscolor .syntaxgroup.vimComment, +.inlinevimtyping.pscolor .syntaxgroup.vimComment, +vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialComment], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialComment], +.vimtyping.pscolor .syntaxgroup.vimSpecialComment, +.inlinevimtyping.pscolor .syntaxgroup.vimSpecialComment +{ + color:#606000; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimIgnore], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimIgnore], +.vimtyping.pscolor .syntaxgroup.vimIgnore, +.inlinevimtyping.pscolor .syntaxgroup.vimIgnore +{ + color:unset; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimTodo], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimTodo], +.vimtyping.pscolor .syntaxgroup.vimTodo, +.inlinevimtyping.pscolor .syntaxgroup.vimTodo +{ + color:#800000; + background-color:#e0e090; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimError], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimError], +.vimtyping.pscolor .syntaxgroup.vimError, +.inlinevimtyping.pscolor .syntaxgroup.vimError +{ + color:#c03000; +} + +vimtyping[detail=pscolor] syntaxgroup[defail=vimUnderlined], +inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimUnderlined], +.vimtyping.pscolor .syntaxgroup.vimUnderlined, +.inlinevimtyping.pscolor .syntaxgroup.vimUnderlined +{ + color:#6a5acd; + text-decoration:underline; +} + +/* `blackandwhite` color scheme */ + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimConstant], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimConstant], +.vimtyping.blackandwhite .syntaxgroup.vimConstant, +.inlinevimtyping.blackandwhite .syntaxgroup.vimConstant, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimString], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimString], +.vimtyping.blackandwhite .syntaxgroup.vimString, +.inlinevimtyping.blackandwhite .syntaxgroup.vimString, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimCharacter], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimCharacter], +.vimtyping.blackandwhite .syntaxgroup.vimCharacter, +.inlinevimtyping.blackandwhite .syntaxgroup.vimCharacter, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimBoolean], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimBoolean], +.vimtyping.blackandwhite .syntaxgroup.vimBoolean, +.inlinevimtyping.blackandwhite .syntaxgroup.vimBoolean, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimFloat], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimFloat], +.vimtyping.blackandwhite .syntaxgroup.vimFloat, +.inlinevimtyping.blackandwhite .syntaxgroup.vimFloat +{ +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimNumber], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimNumber], +.vimtyping.blackandwhite .syntaxgroup.vimNumber, +.inlinevimtyping.blackandwhite .syntaxgroup.vimNumber +{ +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimIdentifier], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimIdentifier], +.vimtyping.blackandwhite .syntaxgroup.vimIdentifier, +.inlinevimtyping.blackandwhite .syntaxgroup.vimIdentifier, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimFunction], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimFunction], +.vimtyping.blackandwhite .syntaxgroup.vimFunction, +.inlinevimtyping.blackandwhite .syntaxgroup.vimFunction +{ +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStatement], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStatement], +.vimtyping.blackandwhite .syntaxgroup.vimStatement, +.inlinevimtyping.blackandwhite .syntaxgroup.vimStatement, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimCondition], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimCondition], +.vimtyping.blackandwhite .syntaxgroup.vimCondition, +.inlinevimtyping.blackandwhite .syntaxgroup.vimCondition, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimRepeat], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimRepeat], +.vimtyping.blackandwhite .syntaxgroup.vimRepeat, +.inlinevimtyping.blackandwhite .syntaxgroup.vimRepeat, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimLabel], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimLabel], +.vimtyping.blackandwhite .syntaxgroup.vimLabel, +.inlinevimtyping.blackandwhite .syntaxgroup.vimLabel, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimOperator], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimOperator], +.vimtyping.blackandwhite .syntaxgroup.vimOperator, +.inlinevimtyping.blackandwhite .syntaxgroup.vimOperator, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimKeyword], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimKeyword], +.vimtyping.blackandwhite .syntaxgroup.vimKeyword, +.inlinevimtyping.blackandwhite .syntaxgroup.vimKeyword, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimException], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimException], +.vimtyping.blackandwhite .syntaxgroup.vimException, +.inlinevimtyping.blackandwhite .syntaxgroup.vimException +{ + font-weight:bold; +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreProc], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreProc], +.vimtyping.blackandwhite .syntaxgroup.vimPreProc, +.inlinevimtyping.blackandwhite .syntaxgroup.vimPreProc, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimInclude], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimInclude], +.vimtyping.blackandwhite .syntaxgroup.vimInclude, +.inlinevimtyping.blackandwhite .syntaxgroup.vimInclude, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDefine], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDefine], +.vimtyping.blackandwhite .syntaxgroup.vimDefine, +.inlinevimtyping.blackandwhite .syntaxgroup.vimDefine, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimMacro], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimMacro], +.vimtyping.blackandwhite .syntaxgroup.vimMacro, +.inlinevimtyping.blackandwhite .syntaxgroup.vimMacro, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreCondit], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreCondit], +.vimtyping.blackandwhite .syntaxgroup.vimPreCondit, +.inlinevimtyping.blackandwhite .syntaxgroup.vimPreCondit +{ + font-weight:bold; +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimType], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimType], +.vimtyping.blackandwhite .syntaxgroup.vimType, +.inlinevimtyping.blackandwhite .syntaxgroup.vimType, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStorageClass], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStorageClass], +.vimtyping.blackandwhite .syntaxgroup.vimStorageClass, +.inlinevimtyping.blackandwhite .syntaxgroup.vimStorageClass, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStructure], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStructure], +.vimtyping.blackandwhite .syntaxgroup.vimStructure, +.inlinevimtyping.blackandwhite .syntaxgroup.vimStructure, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimTypedef], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimTypedef], +.vimtyping.blackandwhite .syntaxgroup.vimTypedef, +.inlinevimtyping.blackandwhite .syntaxgroup.vimTypedef +{ + font-weight:bold; +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecial], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecial], +.vimtyping.blackandwhite .syntaxgroup.vimSpecial, +.inlinevimtyping.blackandwhite .syntaxgroup.vimSpecial, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialChar], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialChar], +.vimtyping.blackandwhite .syntaxgroup.vimSpecialChar, +.inlinevimtyping.blackandwhite .syntaxgroup.vimSpecialChar, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDelimiter], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDelimiter], +.vimtyping.blackandwhite .syntaxgroup.vimDelimiter, +.inlinevimtyping.blackandwhite .syntaxgroup.vimDelimiter, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDebug], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDebug], +.vimtyping.blackandwhite .syntaxgroup.vimDebug, +.inlinevimtyping.blackandwhite .syntaxgroup.vimDebug +{ +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimComment], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimComment], +.vimtyping.blackandwhite .syntaxgroup.vimComment, +.inlinevimtyping.blackandwhite .syntaxgroup.vimComment, +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialComment], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialComment], +.vimtyping.blackandwhite .syntaxgroup.vimSpecialComment, +.inlinevimtyping.blackandwhite .syntaxgroup.vimSpecialComment +{ + font-style:italic; +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimIgnore], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimIgnore], +.vimtyping.blackandwhite .syntaxgroup.vimIgnore, +.inlinevimtyping.blackandwhite .syntaxgroup.vimIgnore +{ + +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimTodo], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimTodo], +.vimtyping.blackandwhite .syntaxgroup.vimTodo, +.inlinevimtyping.blackandwhite .syntaxgroup.vimTodo +{ + border:0.6px solid; +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimError], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimError], +.vimtyping.blackandwhite .syntaxgroup.vimError, +.inlinevimtyping.blackandwhite .syntaxgroup.vimError +{ + text-decoration:line-through; +} + +vimtyping[detail=blackandwhite] syntaxgroup[defail=vimUnderlined], +inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimUnderlined], +.vimtyping.blackandwhite .syntaxgroup.vimUnderlined, +.inlinevimtyping.blackandwhite .syntaxgroup.vimUnderlined +{ + text-decoration:underline; +} + diff --git a/macros/generic/tracklang/CHANGES b/macros/generic/tracklang/CHANGES index 452a7d0727..8725ee915d 100644 --- a/macros/generic/tracklang/CHANGES +++ b/macros/generic/tracklang/CHANGES @@ -1,3 +1,11 @@ +v1.5 (2020-06-30): + + * Removed redundant code and added debug message to + \TrackLangAddToHook and \TrackLangRedefHook + + * Bug fix: removed spurious {\fi} from \@tracklang@test@if@file@exists@for@langII + https://www.dickimaw-books.com/bugtracker.php?action=view&key=165 + v1.4 (2019-11-30): * tracklang.tex: diff --git a/macros/generic/tracklang/README b/macros/generic/tracklang/README index b3e7de27b1..caac438bc4 100644 --- a/macros/generic/tracklang/README +++ b/macros/generic/tracklang/README @@ -1,14 +1,17 @@ -Generic TeX Bundle : tracklang v1.4 +Generic TeX Bundle : tracklang v1.5 -Last Modified : 2019-11-30 +Last Modified : 2020-06-30 -Author : Nicola Talbot +Author : Nicola Talbot (dickimaw-books.com/contact) -LaTeX usage: \usepackage{tracklang} +Licence: -TeX usage: \input tracklang +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/license/lppl1.3 for the details of that license. -LaTeX code is in tracklang.sty. Generic TeX code is in tracklang.tex. +Copyright 2014-2020 Nicola Talbot + +Description: The tracklang package is provided for package developers who want a simple interface to find out which languages the user has requested @@ -16,12 +19,12 @@ through packages such as babel and polyglossia. *This package doesn't provide any translations.* Its purpose is simply to track which languages have been requested by the user. -Related article: "Localisation of TeX documents: tracklang." -TUGBoat, Volume 37 (2016), No. 3. -http://www.tug.org/TUGboat/tb37-3/tb117talbot.pdf +LaTeX usage: \usepackage{tracklang} -This material is subject to the LaTeX Project Public License. -See http://www.ctan.org/license/lppl1.3 for the details of that license. +TeX usage: \input tracklang -http://www.dickimaw-books.com/ +LaTeX code is in tracklang.sty. Generic TeX code is in tracklang.tex. +Related article: "Localisation of TeX documents: tracklang." +TUGBoat, Volume 37 (2016), No. 3. +http://www.tug.org/TUGboat/tb37-3/tb117talbot.pdf diff --git a/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf b/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf index 2485ee53c7..35cb126385 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf and b/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf index 88669915f9..73ce65645d 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf and b/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals-de.pdf b/macros/generic/tracklang/samples/animals/sample-animals-de.pdf index 07962fd91a..6ee9ea4efa 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals-de.pdf and b/macros/generic/tracklang/samples/animals/sample-animals-de.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf index 476f2f418d..19144645ce 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf and b/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf new file mode 100644 index 0000000000..7e746cba6a Binary files /dev/null and b/macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals.pdf b/macros/generic/tracklang/samples/animals/sample-animals.pdf index 3ec9a8145c..89632f165a 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals.pdf and b/macros/generic/tracklang/samples/animals/sample-animals.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf index a509e00866..5f22dca624 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf and b/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf index c6a6e94de9..b2277b8b98 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf and b/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf index 09f9b2eb4d..069a48e10c 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf and b/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf index 271acfcba4..ce6a514e5c 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf and b/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf index 5f1807767c..8809c66b85 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf and b/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf differ diff --git a/macros/generic/tracklang/samples/animals/sample-animals2.pdf b/macros/generic/tracklang/samples/animals/sample-animals2.pdf index 8ef941783a..fbd7a234d6 100644 Binary files a/macros/generic/tracklang/samples/animals/sample-animals2.pdf and b/macros/generic/tracklang/samples/animals/sample-animals2.pdf differ diff --git a/macros/generic/tracklang/samples/regions/sample-regions.pdf b/macros/generic/tracklang/samples/regions/sample-regions.pdf index 78c1c87385..fab8f6977b 100644 Binary files a/macros/generic/tracklang/samples/regions/sample-regions.pdf and b/macros/generic/tracklang/samples/regions/sample-regions.pdf differ diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf index 83340a0ce7..93f3428fb3 100644 Binary files a/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf and b/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf differ diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf index 635f2c1f79..db87696734 100644 Binary files a/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf and b/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf differ diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf index e664c00877..4784228ed8 100644 Binary files a/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf and b/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf differ diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf index aac08c391d..90546af2b0 100644 Binary files a/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf and b/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf differ diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf index df2d0bc468..167a38fcf7 100644 Binary files a/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf and b/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf differ diff --git a/macros/generic/tracklang/samples/regions/sample-regions2.pdf b/macros/generic/tracklang/samples/regions/sample-regions2.pdf index 0b26023e24..d7393715ff 100644 Binary files a/macros/generic/tracklang/samples/regions/sample-regions2.pdf and b/macros/generic/tracklang/samples/regions/sample-regions2.pdf differ diff --git a/macros/generic/tracklang/samples/sample-tracklang.pdf b/macros/generic/tracklang/samples/sample-tracklang.pdf index aca2dd6c84..6d5a7dbf53 100644 Binary files a/macros/generic/tracklang/samples/sample-tracklang.pdf and b/macros/generic/tracklang/samples/sample-tracklang.pdf differ diff --git a/macros/generic/tracklang/samples/sample-tracklang2.pdf b/macros/generic/tracklang/samples/sample-tracklang2.pdf index ef391b9912..d2f16a3e3e 100644 Binary files a/macros/generic/tracklang/samples/sample-tracklang2.pdf and b/macros/generic/tracklang/samples/sample-tracklang2.pdf differ diff --git a/macros/generic/tracklang/samples/sample-tracklang3.pdf b/macros/generic/tracklang/samples/sample-tracklang3.pdf index fa54737ec5..8966ec23fa 100644 Binary files a/macros/generic/tracklang/samples/sample-tracklang3.pdf and b/macros/generic/tracklang/samples/sample-tracklang3.pdf differ diff --git a/macros/generic/tracklang/samples/sample-tracklang4.pdf b/macros/generic/tracklang/samples/sample-tracklang4.pdf index ec3ffb3d4d..b65563f2fd 100644 Binary files a/macros/generic/tracklang/samples/sample-tracklang4.pdf and b/macros/generic/tracklang/samples/sample-tracklang4.pdf differ diff --git a/macros/generic/tracklang/samples/sample-tracklang5.pdf b/macros/generic/tracklang/samples/sample-tracklang5.pdf index 48c0ad786b..3446d96ec5 100644 Binary files a/macros/generic/tracklang/samples/sample-tracklang5.pdf and b/macros/generic/tracklang/samples/sample-tracklang5.pdf differ diff --git a/macros/generic/tracklang/samples/sample-tracklang6.pdf b/macros/generic/tracklang/samples/sample-tracklang6.pdf index 037e2dade1..1f3cce82ec 100644 Binary files a/macros/generic/tracklang/samples/sample-tracklang6.pdf and b/macros/generic/tracklang/samples/sample-tracklang6.pdf differ diff --git a/macros/generic/tracklang/tracklang.dtx b/macros/generic/tracklang/tracklang.dtx index e071563fe3..22dd36860e 100644 --- a/macros/generic/tracklang/tracklang.dtx +++ b/macros/generic/tracklang/tracklang.dtx @@ -1,16 +1,16 @@ %\iffalse % tracklang.dtx generated using makedtx version 1.2 (c) Nicola Talbot % Command line args: -% -doc "tracklang-manual.tex" -% -author "Nicola Talbot" % -src "tracklang.sty\Z=>tracklang.sty" % -src "tracklang.tex\Z=>tracklang.tex" % -src "tracklang-region-codes.tex\Z=>tracklang-region-codes.tex" % -src "tracklang-scripts.sty\Z=>tracklang-scripts.sty" % -src "tracklang-scripts.tex\Z=>tracklang-scripts.tex" +% -author "Nicola Talbot" +% -doc "tracklang-manual.tex" % -section "chapter" % tracklang -% Created on 2019/12/1 17:41 +% Created on 2020/6/30 11:55 %\fi %\iffalse %<*package> @@ -33,7 +33,7 @@ %\fi % \iffalse % Doc-Source file to use with LaTeX2e -% Copyright (C) 2019 Nicola Talbot, all rights reserved. +% Copyright (C) 2020 Nicola Talbot, all rights reserved. % \fi % \iffalse %<*driver> @@ -59,7 +59,7 @@ pdfauthor={Nicola L.C. Talbot}, pdftitle={tracklang: tracking language options}]{hyperref} -\CheckSum{6156} +\CheckSum{6210} \appto\MacroFont{\scriptsize} \renewcommand*{\usage}[1]{\textit{\hyperpage{#1}}} @@ -278,11 +278,11 @@ and~\ref{tab:nonisoopts}} % %\MakeShortVerb{"} % -%\title{tracklang v1.4: +%\title{tracklang v1.5: %tracking language options} %\author{Nicola L. C. Talbot\\\url{http://www.dickimaw-books.com/}} % -%\date{2019-11-30} +%\date{2020-06-30} %\maketitle % %\begin{abstract} @@ -3583,7 +3583,7 @@ and~\ref{tab:nonisoopts}} % packages such as \styfmt{etoolbox}. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tracklang}[2019/11/30 v1.4 (NLCT) Track Languages] +\ProvidesPackage{tracklang}[2020/06/30 v1.5 (NLCT) Track Languages] % \end{macrocode} %\begin{macro}{\@tracklang@declareoption} % Set up package options. @@ -3879,7 +3879,7 @@ and~\ref{tab:nonisoopts}} % Version info. % \begin{macrocode} \expandafter\def\csname ver@tracklang.tex\endcsname{% - 2019/11/30 v1.4 (NLCT) Track Languages Generic Code} + 2020/06/30 v1.5 (NLCT) Track Languages Generic Code} % \end{macrocode} % Define a long command for determining the existence of a control % sequence by its name. (\cs{relax} is considered undefined.) @@ -11374,9 +11374,9 @@ and~\ref{tab:nonisoopts}} }% \fi }% - {% - \fi - }% +% \end{macrocode} +%\changes{1.5}{2020-06-30}{removed spurious code block} +% \begin{macrocode} }% {% \let\@tracklang@test@if@file@exists@next\@tracklang@test@if@file@exists@for@langIII @@ -11597,16 +11597,19 @@ and~\ref{tab:nonisoopts}} % %\begin{macro}{\IfTrackedLanguageFileExists@orig} %\changes{1.4}{2019-11-30}{new} +%\changes{1.5}{2020-06-30}{added verbose messages} %The new definition of \cs{IfTrackedLanguageFileExists} has a %different order of priority. If the original behaviour is %specifically required, this has the pre version 1.4 definition. % \begin{macrocode} \long\def\IfTrackedLanguageFileExists@orig#1#2#3#4#5{% + \@tracklang@verbose{Finding file for dialect `#1' (pre-v1.4)}% \def\CurrentTrackedTag{}% \SetCurrentTrackedDialect{#1}% \IfTrackedDialect{#1}% {% \edef\CurrentTrackedTag{#1}% + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% @@ -11618,6 +11621,7 @@ and~\ref{tab:nonisoopts}} {639-1}{\CurrentTrackedLanguage}}% \ifx\CurrentTrackedRegion\empty \let\CurrentTrackedTag\CurrentTrackedIsoCode + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4} {% @@ -11628,21 +11632,25 @@ and~\ref{tab:nonisoopts}} \TrackedIsoCodeFromLanguage {639-2}{\CurrentTrackedLanguage}}% \let\CurrentTrackedTag\CurrentTrackedIsoCode + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% }% }% {% \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% }% }% \else \edef\CurrentTrackedTag{% \CurrentTrackedIsoCode-\CurrentTrackedRegion}% + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4} {% @@ -11655,25 +11663,30 @@ and~\ref{tab:nonisoopts}} {639-2}{\CurrentTrackedLanguage}}% \edef\CurrentTrackedTag{% \CurrentTrackedIsoCode-\CurrentTrackedRegion}% + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\org@currenttrackedisocode \let\org@currenttrackedisocode\CurrentTrackedIsoCode \let\CurrentTrackedIsoCode\CurrentTrackedTag + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4} {% \let\CurrentTrackedIsoCode\org@currenttrackedisocode \let\CurrentTrackedTag\CurrentTrackedIsoCode + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedRegion + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% }% }% @@ -11682,14 +11695,17 @@ and~\ref{tab:nonisoopts}} }% {% \let\CurrentTrackedTag\CurrentTrackedIsoCode + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedRegion + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% }% }% @@ -11720,40 +11736,49 @@ and~\ref{tab:nonisoopts}} \ifx\CurrentTrackedIsoCode\empty \ifx\CurrentTrackedRegion\empty \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% \else \let\CurrentTrackedTag\CurrentTrackedRegion + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% }% \fi \else \ifx\CurrentTrackedRegion\empty \let\CurrentTrackedTag\CurrentTrackedIsoCode + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% }% \else \edef\CurrentTrackedTag{% \CurrentTrackedIsoCode-\CurrentTrackedRegion}% + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedIsoCode + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedRegion + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}% {#4}% {% \let\CurrentTrackedTag\CurrentTrackedLanguage + \@tracklang@verbose{Testing tag `\CurrentTrackedTag'}% \@tracklang@IfFileExists{#2\CurrentTrackedTag#3}{#4}{#5}% }% }% @@ -11890,9 +11915,11 @@ and~\ref{tab:nonisoopts}} \@tracklang@ifundef{#2\CurrentTrackedLanguage}% {% % \end{macrocode} -% No captions hook. Do the code now. +% No captions hook. Do nothing (it's possible no language package +% has been loaded). +%\changes{1.5}{2020-06-30}{removed redundant code and added verbose message} % \begin{macrocode} - #1% + \@tracklang@verbose{no hook found for \CurrentTrackedDialect}% }% {% \@tracklang@addtohook{#2}{\CurrentTrackedLanguage}{#1}% @@ -11911,6 +11938,7 @@ and~\ref{tab:nonisoopts}} % \end{macrocode} % No captions hook. % \begin{macrocode} + \@tracklang@verbose{no hook found for \CurrentTrackedDialect}% }% {% \@tracklang@addtohook{#2}{\CurrentTrackedLanguage}{#1}% @@ -12001,9 +12029,11 @@ and~\ref{tab:nonisoopts}} \@tracklang@ifundef{#2\CurrentTrackedLanguage}% {% % \end{macrocode} -% No captions hook. Do the code now. +% No captions hook. Do nothing (it's possible no language package +% has been loaded). +%\changes{1.5}{2020-06-30}{removed redundant code and added verbose message} % \begin{macrocode} - #1% + \@tracklang@verbose{no hook found for \CurrentTrackedDialect}% }% {% \@tracklang@redefhook{#2}{\CurrentTrackedLanguage}{#1}% @@ -12022,6 +12052,7 @@ and~\ref{tab:nonisoopts}} % \end{macrocode} % No captions hook. % \begin{macrocode} + \@tracklang@verbose{no hook found for \CurrentTrackedDialect}% }% {% \@tracklang@redefhook{#2}{\CurrentTrackedLanguage}{#1}% @@ -12406,7 +12437,7 @@ and~\ref{tab:nonisoopts}} % Version info. % \begin{macrocode} \expandafter\def\csname ver@tracklang-region-codes.tex\endcsname{% - 2019/11/30 v1.4 (NLCT) Track Languages Regions}% + 2020/06/30 v1.5 (NLCT) Track Languages Regions}% % \end{macrocode} % %\begin{macro}{\TrackLangRegionMap} @@ -12799,7 +12830,7 @@ and~\ref{tab:nonisoopts}} %\changes{1.3}{2016-10-07}{added tracklang-scripts.sty} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tracklang-scripts}[2019/11/30 v1.4 (NLCT) Track +\ProvidesPackage{tracklang-scripts}[2020/06/30 v1.5 (NLCT) Track Language Scripts (LaTeX)] \RequirePackage{tracklang} \input{tracklang-scripts} @@ -12841,7 +12872,7 @@ Language Scripts (LaTeX)] % Version info. % \begin{macrocode} \expandafter\def\csname ver@tracklang-scripts.tex\endcsname{% - 2019/11/30 v1.4 (NLCT) Track Languages Scripts (Generic)}% + 2020/06/30 v1.5 (NLCT) Track Languages Scripts (Generic)}% % \end{macrocode} % %\begin{macro}{\TrackLangScriptsMap} diff --git a/macros/generic/tracklang/tracklang.ins b/macros/generic/tracklang/tracklang.ins index 019b391cd1..4b7bca1dde 100644 --- a/macros/generic/tracklang/tracklang.ins +++ b/macros/generic/tracklang/tracklang.ins @@ -1,10 +1,10 @@ -% tracklang.ins generated using makedtx version 1.2 2019/12/1 17:41 +% tracklang.ins generated using makedtx version 1.2 2020/6/30 11:55 \input docstrip \preamble tracklang.dtx - Copyright 2019 Nicola Talbot + Copyright 2020 Nicola Talbot This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/generic/tracklang/tracklang.pdf b/macros/generic/tracklang/tracklang.pdf index 8f0aeee5fc..a498800ab0 100644 Binary files a/macros/generic/tracklang/tracklang.pdf and b/macros/generic/tracklang/tracklang.pdf differ diff --git a/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf b/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf index bf2992cf94..e17f576a21 100644 Binary files a/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf and b/macros/latex/contrib/babel-contrib/french/frenchb-doc.pdf differ diff --git a/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex b/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex index 8fd5aa56d5..d8c59aeb65 100644 --- a/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex +++ b/macros/latex/contrib/babel-contrib/french/frenchb-doc.tex @@ -410,8 +410,8 @@ document (ou maquette) est modifiée de la façon suivante% fichier \file{.log}. Certaines classes ou extensions modifient la présentation des légendes; - parmi elles, les classes (\cls{memoir}, koma-script et AMS et les - extensions(\ext{caption} et \ext{floatrow} sont compatibles avec + parmi elles, les classes (\cls{memoir}, \cls{beamer}, koma-script et AMS + et les extensions(\ext{caption} et \ext{floatrow} sont compatibles avec \ext{babel-french}. Un avertissement est inséré dans le fichier \file{.log} lorsqu’il y a risque @@ -1531,6 +1531,11 @@ La version 3.5g corrige une bogue ancienne affectant l’usage des polices type~1 avec Lua\-(La)TeX : tout crénage était supprimé pour ces polices depuis la version~3.1f (2015) ; les polices OpenType elles, n’ont jamais été affectées. +La version 3.5i corrige aussi une bogue ancienne affectant les classes +koma-script, \cls{memoir} et \cls{beamer} : les redéfinitions du séparateur +des légendes de figures et tables (commandes |\captionformat|, |\captiondelim|, +etc.) sont maintenant prises en compte correctement. + \subsection{Changements entre les versions 3.4d et 3.3d} \label{ssec:changes-3.4} diff --git a/macros/latex/contrib/babel-contrib/french/frenchb.dtx b/macros/latex/contrib/babel-contrib/french/frenchb.dtx index 4941b1cea7..d253c3b90b 100644 --- a/macros/latex/contrib/babel-contrib/french/frenchb.dtx +++ b/macros/latex/contrib/babel-contrib/french/frenchb.dtx @@ -1,4 +1,4 @@ -%\CheckSum{3802} +%\CheckSum{3835} % %\iffalse % Tell the LaTeX system who we are and write an entry on the @@ -13,7 +13,7 @@ %\ProvidesLanguage{frenchb} %--[[ % File `frenchb.lua’ generated from frenchb.dtx - [2020/04/18 v3.5h French support from the babel system] + [2020/06/30 v3.5i French support from the babel system] %<*internal> \iffalse % @@ -47,21 +47,16 @@ \usepackage[dvipsnames]{xcolor} \usepackage[no-math]{fontspec} \usepackage{realscripts} -\setmainfont{FiraSans}[ - Extension = .otf , - UprightFont = *-Book, - ItalicFont = *-BookItalic, - BoldFont = *-Medium, - BoldItalicFont = *-MediumItalic, - SmallCapsFont = FiraSans-Book, - SmallCapsFeatures = {Letters=SmallCaps}, +\setmainfont{Vera.ttf}[ + ItalicFont = VeraIt.ttf, + BoldFont = VeraBd.ttf, + BoldItalicFont = VeraBI.ttf, + Scale = 0.92 ] -\setmonofont{FiraMono}[ - Extension = .otf , - UprightFont = *-Regular, - ItalicFont = *-Oblique, - BoldFont = *-Medium, - BoldItalicFont = *-MediumOblique, +\setmonofont{VeraMono.ttf}[ + ItalicFont = VeraMoIt.ttf, + BoldFont = VeraMoBd.ttf, + BoldItalicFont = VeraMoBI.ttf, Scale = MatchLowercase, ] % @@ -659,10 +654,10 @@ % a proper space before it and warns if it fails to do so. % % \item [OldFigTabCaptions=true (false)] is to be used \emph{only} -% when -% figures’ and tables’ captions must be typeset as with pre~3.0 -% versions of \frenchb{} (with |\CaptionSeparator| in French and -% colon otherwise). Intended for standard LaTeX classes only. +% when figures’ and tables’ captions must be typeset as with +% pre~3.0 versions of \frenchb{} (with |\CaptionSeparator| in +% French and colon otherwise). +% Intended for standard LaTeX classes only. % % \item [FrenchSuperscripts=false (true)]; then % |\up=\textsuperscript|. % (option added in version 2.1). @@ -718,7 +713,7 @@ % which defaults to ` -- ’ and can be redefined in the preamble with % |\renewcommand*{\CaptionSeparator}{...}|. % This works for the standard LaTeX2e classes, for the \cls{memoir} -% and koma-script classes. +% koma-script and beamer classes. % In case this procedure fails a warning is issued. % % When French is not the main language, the colon is preserved for @@ -727,9 +722,11 @@ % % Three options are provided to customise figure and table captions: % \begin{itemize} -% \item if \fbo{CustomiseFigTabCaptions} is set to \fbo{false} the -% colon will be used as separator in all languages, with a proper -% space before the colon in French (if possible); +% \item \fbo{CustomiseFigTabCaptions} is set to \fbo{true} when +% French is the main language (hence separator = ` -- ’) and to +% \fbo{false} otherwise (hence separator = `: ’ with a proper +% space before the colon in French if possible); toogle this option +% if needed; % \item the second option, \fbo{OldFigTabCaptions}, can be set to % \fbo{true} to print figures’ and tables’ captions as they were % with versions pre~3.0 of \frenchb{} (using |\CaptionSeparator| @@ -1447,7 +1444,7 @@ \else \FB@dialect=1 \relax \fi % \end{macrocode} -% When first entering French, we have to set the LuaTeX +% When first entering French, we must set the LuaTeX % tables for French (|\FB@dialect=0|) \emph{before} any dialect % redefines any |\FB...space| command. Doing this `AtBeginDocument’ % would be too late: if French or a French dialect is the main @@ -1687,7 +1684,7 @@ local FB_punct_thick = % Managing spacing after `«’ (U+00AB) and before `»’ (U+00BB) can be % done by the way; we define two flags, |FB_punct_left| for % characters requiring some space before them and |FB_punct_right| -% for `\guillemotleft’ which must be followed by some space. +% for `«’ which must be followed by some space. % In case LuaTeX is used to output T1-encoded fonts instead of % OpenType fonts, codes \texttt{0x13} and \texttt{0x14} have to be % added for `«’ and `»’. @@ -3110,9 +3107,10 @@ return french_punctuation % dialects defines \emph{both} |\datefrench| and |\dateacadian|; % this is required as \file{french.ldf} is read only once even if % both language options \opt{french} and \opt{acadian} are supplied -% to \babel. Note that coding |\StartBabelCommands*{french,acadian}| -% would \emph{only} define |\csname date\CurrentOption\endcsname|, +% to \babel. Coding |\StartBabelCommands*{french,acadian}| +% would \emph{only} define |\date\CurrentOption|, % leaving the second language undefined in \babel’s sens. +% % \begin{macrocode} \def\BabelLanguages{french,acadian} \StartBabelCommands*{\BabelLanguages}{date} @@ -4969,38 +4967,52 @@ return french_punctuation % figure and table captions are now consistent with babel-french’s % documentation. Pointed out by Denis Bitouzé.} % -% Unless \fbo{CustomiseFigTabCaptions} has been set to \fbo{false}, -% use |\CaptionSeparator| for koma-script, \cls{memoir} and -% \cls{beamer} classes. -% \begin{macrocode} - \ifFBCustomiseFigTabCaptions - \ifFB@koma - \renewcommand*{\captionformat}{\CaptionSeparator}% - \fi - \@ifclassloaded{memoir}% - {\captiondelim{\CaptionSeparator}}{}% - \@ifclassloaded{beamer}% - {\defbeamertemplate{caption label separator}{FBcustom}{% - \CaptionSeparator}% - \setbeamertemplate{caption label separator}[FBcustom]}{}% - \else -% \end{macrocode} -% When \fbo{CustomiseFigTabCaptions} is \fbo{false}, have the colon -% behave properly in French: locally force |\autospace@beforeFDP| in -% case of \fbo{AutoSpacePunctuation=false}. -% \begin{macrocode} - \ifFB@koma - \renewcommand*{\captionformat}{{\autospace@beforeFDP : }}% - \fi - \@ifclassloaded{memoir}% - {\captiondelim{{\autospace@beforeFDP : }}% - }{}% - \@ifclassloaded{beamer}% - {\defbeamertemplate{caption label separator}{FBcolon}{% - {\autospace@beforeFDP : }}% - \setbeamertemplate{caption label separator}[FBcolon]% - }{}% +% \changes{v3.5i}{2020/06/29}{For memoir, koma-script and beamer +% classes, leave caption delimiter unchanged if it has been user +% customised.} +% +% This is for koma-script, \cls{memoir} and \cls{beamer} classes. +% If the caption delimiter has been user customised, leave it +% unchanged. Otherwise, force the colon to behave properly in French +% (add locally |\autospace@beforeFDP| in case of +% \fbo{AutoSpacePunctuation=false}) and change the caption delimiter +% to |\CaptionSeparator| if \fbo{CustomiseFigTabCaptions} has been +% set to \fbo{true}. +% \begin{macrocode} + \ifFB@koma + \edef\FB@capsep{\captionformat}\edef\FB@std@capsep{:\ }% + \ifx\FB@capsep\FB@std@capsep + \ifFBCustomiseFigTabCaptions + \renewcommand*{\captionformat}{\CaptionSeparator}% + \else + \renewcommand*{\captionformat}{{\autospace@beforeFDP :\ }}% + \fi + \fi \fi + \@ifclassloaded{memoir}% + {\edef\FB@capsep{\@contdelim}\edef\FB@std@capsep{: }% + \ifx\FB@capsep\FB@std@capsep + \ifFBCustomiseFigTabCaptions + \captiondelim{\CaptionSeparator}% + \else + \captiondelim{{\autospace@beforeFDP : }}% + \fi + \fi}{}% + \@ifclassloaded{beamer}% + {\edef\FB@std@capsep{:\ }% + \edef\FB@capsep{% + \csname beamer@@tmpl@caption label separator\endcsname}% + \ifx\FB@capsep\FB@std@capsep + \ifFBCustomiseFigTabCaptions + \defbeamertemplate{caption label separator}{FBcustom}{% + \CaptionSeparator}% + \setbeamertemplate{caption label separator}[FBcustom]% + \else + \defbeamertemplate{caption label separator}{FBcolon}{% + {\autospace@beforeFDP : }}% + \setbeamertemplate{caption label separator}[FBcolon]% + \fi + \fi}{}% % \end{macrocode} % \fbo{ShowOptions}: if \fbo{true}, print the list of all options % to the \file{.log} file. @@ -5829,9 +5841,9 @@ return french_punctuation \localleftbox{\FBeveryline@quote}}% \else % \end{macrocode} -% Special add-on for the \cls{memoir} class: |\maketitle| redefines -% |\@makefntext| as |\makethanksmark| which is customised as follows -% to match the other notes’ vertical alignment. +% Special add-on for the \cls{memoir} class: |\@makefntext| is +% redefined as |\makethanksmark| by |\maketitle|, hence these +% settings to match the other notes’ vertical alignment. % \begin{macrocode} \@ifclassloaded{memoir}% {\ifFBFrenchFootnotes diff --git a/macros/latex/contrib/babel-contrib/french/frenchb.pdf b/macros/latex/contrib/babel-contrib/french/frenchb.pdf index f6b1da437c..e2fdf7b604 100644 Binary files a/macros/latex/contrib/babel-contrib/french/frenchb.pdf and b/macros/latex/contrib/babel-contrib/french/frenchb.pdf differ diff --git a/macros/latex/contrib/l3backend/CHANGELOG.md b/macros/latex/contrib/l3backend/CHANGELOG.md index 27a96c4fb1..bc09045c8f 100644 --- a/macros/latex/contrib/l3backend/CHANGELOG.md +++ b/macros/latex/contrib/l3backend/CHANGELOG.md @@ -6,6 +6,11 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-06-29] + +### Fixed +- Loading with `dvisvgm` + ## [2020-06-23] ### Changed @@ -91,7 +96,8 @@ this project uses date-based 'snapshot' version identifiers. - Include `l3backend` in file names - Moved backend code to internal for each 'parent' module -[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-23...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-29...HEAD +[2020-06-29]: https://github.com/latex3/latex3/compare/2020-06-23...2020-06-29 [2020-06-23]: https://github.com/latex3/latex3/compare/2020-06-18...2020-06-23 [2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-05...2020-06-03 diff --git a/macros/latex/contrib/l3backend/README.md b/macros/latex/contrib/l3backend/README.md index edf3db7883..1d298fabdf 100644 --- a/macros/latex/contrib/l3backend/README.md +++ b/macros/latex/contrib/l3backend/README.md @@ -1,7 +1,7 @@ LaTeX3 Backend Drivers ====================== -Release 2020-06-23 +Release 2020-06-29 This package forms parts of `expl3`, and contains the code used to interface with backends (drivers) across the `expl3` codebase. The functions here are diff --git a/macros/latex/contrib/l3backend/l3backend-basics.dtx b/macros/latex/contrib/l3backend/l3backend-basics.dtx index a28db733ab..00367dea5f 100644 --- a/macros/latex/contrib/l3backend/l3backend-basics.dtx +++ b/macros/latex/contrib/l3backend/l3backend-basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-23} +% \date{Released 2020-06-29} % % \maketitle % @@ -71,23 +71,23 @@ %<*package> \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2020-06-23}{} + {l3backend-dvipdfmx.def}{2020-06-29}{} {L3 backend support: dvipdfmx} % %<*dvips> - {l3backend-dvips.def}{2020-06-23}{} + {l3backend-dvips.def}{2020-06-29}{} {L3 backend support: dvips} % %<*dvisvgm> - {l3backend-dvisvgm.def}{2020-06-23}{} + {l3backend-dvisvgm.def}{2020-06-29}{} {L3 backend support: dvisvgm} % %<*pdfmode> - {l3backend-pdfmode.def}{2020-06-23}{} + {l3backend-pdfmode.def}{2020-06-29}{} {L3 backend support: PDF mode} % %<*xdvipdfmx> - {l3backend-xdvipdfmx.def}{2020-06-23}{} + {l3backend-xdvipdfmx.def}{2020-06-29}{} {L3 backend support: xdvipdfmx} % % diff --git a/macros/latex/contrib/l3backend/l3backend-box.dtx b/macros/latex/contrib/l3backend/l3backend-box.dtx index d07a08a4b4..8a63b8db15 100644 --- a/macros/latex/contrib/l3backend/l3backend-box.dtx +++ b/macros/latex/contrib/l3backend/l3backend-box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-23} +% \date{Released 2020-06-29} % % \maketitle % diff --git a/macros/latex/contrib/l3backend/l3backend-color.dtx b/macros/latex/contrib/l3backend/l3backend-color.dtx index 4aef1ed938..6875ce7579 100644 --- a/macros/latex/contrib/l3backend/l3backend-color.dtx +++ b/macros/latex/contrib/l3backend/l3backend-color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-23} +% \date{Released 2020-06-29} % % \maketitle % diff --git a/macros/latex/contrib/l3backend/l3backend-draw.dtx b/macros/latex/contrib/l3backend/l3backend-draw.dtx index 3b886359ab..1b7d444ae6 100644 --- a/macros/latex/contrib/l3backend/l3backend-draw.dtx +++ b/macros/latex/contrib/l3backend/l3backend-draw.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-23} +% \date{Released 2020-06-29} % % \maketitle % @@ -1212,9 +1212,9 @@ } \cs_new_protected:Npn \@@_backend_color_gray_aux:nn #1#2 { \@@_backend_color:nnn {#1} {#2} {#2} {#2} } -\cs_new_protected:Npn \@@_backend_color_rgb_cmyk:n #1 +\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1 { \@@_backend_color_rgb:nw { fill } #1 \s_@@_stop } -\cs_new_protected:Npn \@@_backend_color_rgb_cmyk:n #1 +\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1 { \@@_backend_color_rgb:nw { stroke } #1 \s_@@_stop } \cs_new_protected:Npn \@@_backend_color_rgb:nw #1#2 ~ #3 ~ #4\s_@@_stop diff --git a/macros/latex/contrib/l3backend/l3backend-graphics.dtx b/macros/latex/contrib/l3backend/l3backend-graphics.dtx index ae3eb47111..d9ed9f8495 100644 --- a/macros/latex/contrib/l3backend/l3backend-graphics.dtx +++ b/macros/latex/contrib/l3backend/l3backend-graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-23} +% \date{Released 2020-06-29} % % \maketitle % diff --git a/macros/latex/contrib/l3backend/l3backend-header.dtx b/macros/latex/contrib/l3backend/l3backend-header.dtx index e2336f5f34..77303f1733 100644 --- a/macros/latex/contrib/l3backend/l3backend-header.dtx +++ b/macros/latex/contrib/l3backend/l3backend-header.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-23} +% \date{Released 2020-06-29} % % \maketitle % diff --git a/macros/latex/contrib/l3backend/l3backend-pdf.dtx b/macros/latex/contrib/l3backend/l3backend-pdf.dtx index 13926e0779..7fbc94a550 100644 --- a/macros/latex/contrib/l3backend/l3backend-pdf.dtx +++ b/macros/latex/contrib/l3backend/l3backend-pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-06-23} +% \date{Released 2020-06-29} % % \maketitle % diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf index 24432563ff..fa9a6f9a40 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix-french.pdf and b/macros/latex/contrib/nicematrix/nicematrix-french.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex index a8c0fdd435..fe29f84779 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.tex +++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex @@ -639,8 +639,9 @@ a & b & c & d \\ \label{hvlines} La clé |hvlines| demande le tracé de tous les filets horizontaux et verticaux \emph{sauf dans les - blocs}.\footnote{En fait, quand la clé |hvlines| est utilisée, les filets ne sont pas non plus tracés dans les blocs virtuels - délimités par des cases reliées par des lignes pointillées (cf. p. \pageref{dotted-and-hvlines}).} + blocs}.\footnote{En fait, quand la clé |hvlines| (ou la clé |hvlines-except-corners| décrite juste après) est + utilisée, les filets ne sont pas non plus tracés dans les blocs virtuels délimités par des cases reliées par des + lignes pointillées (cf. p. \pageref{dotted-and-hvlines}).} \medskip \begin{Verbatim} @@ -662,6 +663,66 @@ arum & iris & jacinthe & muguet \end{center} +\subsection{La clé hvlines-except-corners} + +La clé |hvlines-except-corners| demande le tracé de tous les filets horizontaux et verticaux \emph{sauf dans les + blocs} et sauf dans les coins vides. + +\medskip +\begin{Verbatim} +\begin{NiceTabular}{*{6}{C}}[~emphase#hvlines-except-corners@,cell-space-top-limit=3pt] + & & & & A \\ + & & A & A & A \\ + & & & A \\ + & & A & A & A & A \\ +A & A & A & A & A & A \\ +A & A & A & A & A & A \\ + & \Block{2-2}{B} & & A \\ + & & & A \\ + & A & A & A \\ +\end{NiceTabular} +\end{Verbatim} +% +\begin{center} +\begin{NiceTabular}{*{6}{C}}[hvlines-except-corners,cell-space-top-limit=3pt] + & & & & A \\ + & & A & A & A \\ + & & & A \\ + & & A & A & A & A \\ +A & A & A & A & A & A \\ +A & A & A & A & A & A \\ + & \Block{2-2}{B} & & A \\ + & & & A \\ + & A & A & A \\ +\end{NiceTabular} +\end{center} + +Comme on le voit, un «coin vide» est constitué de la réunion de tous les rectangles vides partant de la case située +exactement dans le coin. + +\bigskip +\begin{BVerbatim}[boxwidth=11cm,baseline=c] +\begin{NiceTabular}{*{6}{C}}% + [~emphase#hvlines-except-corners@,cell-space-top-limit=3pt] +1\\ +1&1\\ +1&2&1\\ +1&3&3&1\\ +1&4&6&4&1\\ +1&5&10&10&5&1 +\end{NiceTabular} +\end{BVerbatim} +\begin{NiceTabular}{*{6}{C}}% + [c,hvlines-except-corners,cell-space-top-limit=3pt] +1\\ +1&1\\ +1&2&1\\ +1&3&3&1\\ +1&4&6&4&1\\ +1&5&10&10&5&1 +\end{NiceTabular} + + \subsection{La commande \textbackslash diagbox} diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx index a3e658e757..f4228206e9 100644 --- a/macros/latex/contrib/nicematrix/nicematrix.dtx +++ b/macros/latex/contrib/nicematrix/nicematrix.dtx @@ -15,8 +15,8 @@ % % \fi % \iffalse -\def\myfileversion{4.3} -\def\myfiledate{2020/06/12} +\def\myfileversion{4.4} +\def\myfiledate{2020/06/30} % % %<*batchfile> @@ -703,7 +703,8 @@ version 2005/12/01 or later. % \label{hvlines} % % The key |hvlines| draws all the vertical and horizontal rules \emph{excepted -% in the blocks}.\footnote{In fact, when the key |hvlines| is in force, the +% in the blocks}.\footnote{In fact, when the key |hvlines| (or the key +% |hvlines-except-corners| described just after) is in force, the % rules are also not drawn in the virtual blocks delimited by cells relied par % dotted lines (cf. p. \pageref{dotted-and-hvlines}).} % @@ -729,8 +730,66 @@ version 2005/12/01 or later. % \end{center} % % +% \subsection{The key hvlines-except-corners} +% +% The key |hvlines-except-corners| draws all the horizontal and vertical rules, +% \emph{excepted in the blocks} and excepted in the empty corners. +% +% \medskip +% \begin{Verbatim} +% \begin{NiceTabular}{*{6}{C}}[~emphase#hvlines-except-corners@,cell-space-top-limit=3pt] +% & & & & A \\ +% & & A & A & A \\ +% & & & A \\ +% & & A & A & A & A \\ +% A & A & A & A & A & A \\ +% A & A & A & A & A & A \\ +% & \Block{2-2}{B} & & A \\ +% & & & A \\ +% & A & A & A \\ +% \end{NiceTabular} +% \end{Verbatim} +% % +% \begin{center} +% \begin{NiceTabular}{*{6}{C}}[hvlines-except-corners,cell-space-top-limit=3pt] +% & & & & A \\ +% & & A & A & A \\ +% & & & A \\ +% & & A & A & A & A \\ +% A & A & A & A & A & A \\ +% A & A & A & A & A & A \\ +% & \Block{2-2}{B} & & A \\ +% & & & A \\ +% & A & A & A \\ +% \end{NiceTabular} +% \end{center} +% +% As we can see, an ``empty corner'' is composed by the reunion of all the empty +% rectangles starting from the cell actually in the corner of the array. +% +% \bigskip +% \begin{BVerbatim}[boxwidth=11cm,baseline=c] +% \begin{NiceTabular}{*{6}{C}}% +% [~emphase#hvlines-except-corners@,cell-space-top-limit=3pt] +% 1\\ +% 1&1\\ +% 1&2&1\\ +% 1&3&3&1\\ +% 1&4&6&4&1\\ +% 1&5&10&10&5&1 +% \end{NiceTabular} +% \end{BVerbatim} +% \begin{NiceTabular}{*{6}{C}}[c,hvlines-except-corners,cell-space-top-limit=3pt] +% 1\\ +% 1&1\\ +% 1&2&1\\ +% 1&3&3&1\\ +% 1&4&6&4&1\\ +% 1&5&10&10&5&1 +% \end{NiceTabular} +% % -% \subsection{La commande \textbackslash diagbox} +% \subsection{The command \textbackslash diagbox} % % The command |\diagbox| (inspired by the package \pkg{diagbox}), allows, when % it is used in a cell, to slash that cell diagonally downwards.\footnote{The @@ -1005,7 +1064,7 @@ version 2005/12/01 or later. % % % \bigskip -% One should remark that these commands are compatible with the commands de +% One should remark that these commands are compatible with the commands of % \pkg{booktabs} (|\toprule|, |\midrule|, |\bottomrule|, etc). % % \medskip @@ -3412,7 +3471,7 @@ version 2005/12/01 or later. % % % -% \section{Implementation} +%\section{Implementation} % % By default, the package \pkg{nicematrix} doesn't patch any existing code. % @@ -3668,7 +3727,7 @@ version 2005/12/01 or later. \cs_set:Npn \@@_cline % \end{macrocode} % We have to act in a fully expandable way since there may be |\noalign| (in the -% |\multispan|) to detect. That's why we use |\@@_cline_i:en|. +% |\multispan|) to detect. That's why we use |\@@_cline_i:en|. % \begin{macrocode} { \@@_cline_i:en \l_@@_first_col_int } % \end{macrocode} @@ -4089,8 +4148,8 @@ version 2005/12/01 or later. % \begin{macrocode} \seq_new:N \g_@@_pos_of_blocks_seq % \end{macrocode} -% The sequence |\g_@@_pos_of_blocks_seq| when we will draw the rules required by -% the key |hvlines| (these rules won't be drawn within the blocks). +% The sequence |\g_@@_pos_of_blocks_seq| will be used when we will draw the +% rules required by the keys |hvlines| or |hvlines-except-corners|. % % \bigskip % We will also manage a sequence for the positions of the dotted lines. These @@ -4370,6 +4429,12 @@ version 2005/12/01 or later. \bool_new:N \l_@@_vlines_bool \bool_new:N \l_@@_hvlines_bool % \end{macrocode} +% +% \bigskip +% The flag |\l_@@_hlines_except_corners_bool| corresponds to the key |hlines-except-corners|. +% \begin{macrocode} +\bool_new:N \l_@@_hvlines_except_corners_bool +% \end{macrocode} % % \bigskip % The flag |\l_@@_nullify_dots_bool| corresponds to the option |nullify-dots|. @@ -4573,6 +4638,8 @@ version 2005/12/01 or later. % \begin{macrocode} \keys_define:nn { NiceMatrix / Env } { + hvlines-except-corners .bool_set:N = \l_@@_hvlines_except_corners_bool , + hvlines-except-corners .default:n = true , code-before .code:n = { \tl_if_empty:nF { #1 } @@ -7049,6 +7116,8 @@ version 2005/12/01 or later. { \bool_if:NT \l_@@_hlines_bool \@@_draw_hlines: \bool_if:NT \l_@@_vlines_bool \@@_draw_vlines: + \bool_if:NT \l_@@_hvlines_except_corners_bool + \@@_draw_hvlines_except_corners: } % \end{macrocode} % @@ -9064,6 +9133,7 @@ version 2005/12/01 or later. % % \subsection*{The key hvlines} % +% \subsubsection*{The key hvlines} % % \begin{macrocode} \cs_new_protected:Npn \@@_draw_hlines: @@ -9125,35 +9195,13 @@ version 2005/12/01 or later. \group_begin: \CT@arc@ % \end{macrocode} -% -% First, the exterior rectangle of the array (only in |{NiceArray}| and -% |{NiceTabular}|). -% \begin{macrocode} - \bool_if:NT \l_@@_NiceArray_bool - { - \pgfpicture - \pgfrememberpicturepositiononpagetrue - \pgf@relevantforpicturesizefalse - \pgfsetlinewidth \arrayrulewidth - \pgfsetrectcap - \@@_qpoint:n { col - 1 } - \dim_set_eq:NN \l_tmpa_dim \pgf@x - \@@_qpoint:n { row -1 } - \dim_set_eq:NN \l_tmpb_dim \pgf@y - \@@_qpoint:n { col - \@@_succ:n \c@jCol } - \dim_set_eq:NN \l_tmpc_dim \pgf@x - \@@_qpoint:n { row - \@@_succ:n \c@iRow } - \pgfpathrectanglecorners - { \pgfpoint \l_tmpa_dim \l_tmpb_dim } - { \pgfpoint \l_tmpc_dim \pgf@y } - \pgfusepathqstroke - \endpgfpicture - } -% \end{macrocode} % -% Now, the horizontal rules in the interior of the array. +% The horizontal rules. % \begin{macrocode} - \int_step_variable:nnNn 2 \c@iRow \l_tmpa_tl + \int_step_variable:nnNn + { \bool_if:NTF \l_@@_NiceArray_bool 1 2 } + { \bool_if:NTF \l_@@_NiceArray_bool { \@@_succ:n \c@iRow } \c@iRow } + \l_tmpa_tl { \int_step_variable:nNn \c@jCol \l_tmpb_tl { @@ -9169,6 +9217,35 @@ version 2005/12/01 or later. { \@@_test_if_hline_in_block:nnnn ##1 } \seq_map_inline:Nn \g_@@_pos_of_xdots_seq { \@@_test_if_hline_in_block:nnnn ##1 } +% \end{macrocode} +% \begin{macrocode} + \bool_if:NT \l_@@_hvlines_except_corners_bool + { + \int_compare:nNnTF \l_tmpa_tl = { \c@iRow + 1 } + { + \seq_if_in:NxT + \l_@@_empty_corner_cells_seq + { \@@_pred:n \l_tmpa_tl - \l_tmpb_tl } + { \bool_set_false:N \g_tmpa_bool } + } + { + \seq_if_in:NxT + \l_@@_empty_corner_cells_seq + { \l_tmpa_tl - \l_tmpb_tl } + { + \int_compare:nNnTF \l_tmpa_tl = 1 + { \bool_set_false:N \g_tmpa_bool } + { + \seq_if_in:NxT + \l_@@_empty_corner_cells_seq + { \@@_pred:n \l_tmpa_tl - \l_tmpb_tl } + { \bool_set_false:N \g_tmpa_bool } + } + } + } + } +% \end{macrocode} +% \begin{macrocode} \bool_if:NT \g_tmpa_bool { \pgfpicture @@ -9190,17 +9267,20 @@ version 2005/12/01 or later. } } % \end{macrocode} -% Now, the vertical rules in the interior of the array. +% Now, the vertical rules. % \begin{macrocode} \int_step_variable:nNn \c@iRow \l_tmpa_tl { - \int_step_variable:nnNn 2 \c@jCol \l_tmpb_tl + \int_step_variable:nnNn + { \bool_if:NTF \l_@@_NiceArray_bool 1 2 } + { \bool_if:NTF \l_@@_NiceArray_bool { \@@_succ:n \c@jCol } \c@jCol } + \l_tmpb_tl { % \end{macrocode} -% The boolean |\g_tmpa_bool| indicates whether the small vertial rule will be +% The boolean |\g_tmpa_bool| indicates whether the small vertical rule will be % drawn. If we find that it is in a block (a real block, created by |\Block| or % a virtual block corresponding to a dotted line, created by |\Cdots|, |\Vdots|, -% etc.), we will set |\g_tmpa_bool| to |false| and the small vertial rule won't +% etc.), we will set |\g_tmpa_bool| to |false| and the small vertical rule won't % be drawn. % \begin{macrocode} \bool_gset_true:N \g_tmpa_bool @@ -9208,6 +9288,37 @@ version 2005/12/01 or later. { \@@_test_if_vline_in_block:nnnn ##1 } \seq_map_inline:Nn \g_@@_pos_of_xdots_seq { \@@_test_if_vline_in_block:nnnn ##1 } +% \end{macrocode} +% +% \begin{macrocode} + \bool_if:NT \l_@@_hvlines_except_corners_bool + { + \int_compare:nNnTF \l_tmpb_tl = { \@@_succ:n \c@jCol } + { + \seq_if_in:NxT + \l_@@_empty_corner_cells_seq + { \l_tmpa_tl - \@@_pred:n \l_tmpb_tl } + { \bool_set_false:N \g_tmpa_bool } + } + { + \seq_if_in:NxT + \l_@@_empty_corner_cells_seq + { \l_tmpa_tl - \l_tmpb_tl } + { + \int_compare:nNnTF \l_tmpb_tl = 1 + { \bool_set_false:N \g_tmpa_bool } + { + \seq_if_in:NxT + \l_@@_empty_corner_cells_seq + { \l_tmpa_tl - \@@_pred:n \l_tmpb_tl } + { \bool_set_false:N \g_tmpa_bool } + } + } + } + } +% \end{macrocode} +% +% \begin{macrocode} \bool_if:NT \g_tmpa_bool { \pgfpicture @@ -9242,7 +9353,7 @@ version 2005/12/01 or later. % |#1|, |#2|, |#3| and |#4|. If this rule would be in the block (it must not be % drawn), the boolean |\l_tmpa_bool| is set to |false|. % \begin{macrocode} -\cs_set_protected:Npn \@@_test_if_hline_in_block:nnnn #1 #2 #3 #4 +\cs_new_protected:Npn \@@_test_if_hline_in_block:nnnn #1 #2 #3 #4 { \int_compare:nNnT \l_tmpa_tl > { #1 } { @@ -9260,7 +9371,7 @@ version 2005/12/01 or later. % % The same for vertical rules. % \begin{macrocode} -\cs_set_protected:Npn \@@_test_if_vline_in_block:nnnn #1 #2 #3 #4 +\cs_new_protected:Npn \@@_test_if_vline_in_block:nnnn #1 #2 #3 #4 { \int_compare:nNnT \l_tmpa_tl > { #1 - 1 } { @@ -9277,8 +9388,158 @@ version 2005/12/01 or later. % \end{macrocode} % % +% \bigskip +% \subsubsection*{The key hvlines-except-corners} % +% +% \begin{macrocode} +\cs_new_protected:Npn \@@_draw_hvlines_except_corners: + { +% \end{macrocode} +% The sequence |\l_@@_empty_corner_cells_seq| will be the sequence of all the +% cells empty (and not in a block) considered in the corners of the array. +% \begin{macrocode} + \seq_clear_new:N \l_@@_empty_corner_cells_seq + \@@_compute_a_corner:nnnnnn 1 1 1 1 \c@iRow \c@jCol + \@@_compute_a_corner:nnnnnn 1 \c@jCol 1 { -1 } \c@iRow 1 + \@@_compute_a_corner:nnnnnn \c@iRow 1 { -1 } 1 1 \c@jCol + \@@_compute_a_corner:nnnnnn \c@iRow \c@jCol { -1 } { -1 } 1 1 + \@@_draw_hvlines_ii: + } +% \end{macrocode} +% +% \bigskip +% ``Computing a corner'' is determining all the empty cells (which are not in a +% block) that belong to that corner. These cells will be added to the sequence +% |\l_@@_empty_corner_cells_seq|. +% +% \medskip +% The six arguments of |\@@_compute_a_corner:nnnnnn| are as follow: +% \begin{itemize} +% \item |#1| and |#2| are the number of row and column of the cell which is +% actually in the corner ; +% \item |#3| and |#4| are the step in rows and the step in columns when moving +% from the corner ; +% \item |#5| is the number of the final row when scanning the rows from the +% corner ; +% \item |#6| is the number of the final column when scanning the columns from +% the corner. +% \end{itemize} +% \begin{macrocode} +\cs_new_protected:Npn \@@_compute_a_corner:nnnnnn #1 #2 #3 #4 #5 #6 + { +% \end{macrocode} +% For the explanations and the name of the variables, we consider that we are +% computing the left-upper corner. +% +% First, we try to determine which is the last empty cell (and not in a block: +% we won't add that precision any longer) in the column of number~$1$. The flag +% |\l_tmpa_bool| will be raised when a non-empty cell is found. +% \begin{macrocode} + \bool_set_false:N \l_tmpa_bool + \int_zero_new:N \l_@@_last_empty_row_int + \int_step_inline:nnnn { #1 } { #3 } { #5 } + { + \@@_test_if_cell_in_a_block:nx { ##1 } { \int_eval:n { #2 } } + \bool_if:nTF + { + \cs_if_exist_p:c + { pgf @ sh @ ns @ \@@_env: - ##1 - \int_eval:n { #2 } } + || + \l_tmpb_bool + } + { \bool_set_true:N \l_tmpa_bool } + { + \bool_if:NF \l_tmpa_bool + { \int_set:Nn \l_@@_last_empty_row_int { ##1 } } + } + } +% \end{macrocode} +% Now, you determine the last empty cell in the row of number~$1$. +% \begin{macrocode} + \bool_set_false:N \l_tmpa_bool + \int_zero_new:N \l_@@_last_empty_column_int + \int_step_inline:nnnn { #2 } { #4 } { #6 } + { + \@@_test_if_cell_in_a_block:xn { \int_eval:n { #1 } } { ##1 } + \bool_if:nTF + { + \cs_if_exist_p:c + { pgf @ sh @ ns @ \@@_env: - \int_eval:n { #1 } - ##1 } + || \l_tmpb_bool + } + { \bool_set_true:N \l_tmpa_bool } + { + \bool_if:NF \l_tmpa_bool + { \int_set:Nn \l_@@_last_empty_column_int { ##1 } } + } + } +% \end{macrocode} +% Now, we loop over the rows. +% \begin{macrocode} + \int_step_inline:nnnn { #1 } { #3 } \l_@@_last_empty_row_int + { +% \end{macrocode} +% We treat the row number |##1| with another loop. +% \begin{macrocode} + \bool_set_false:N \l_tmpa_bool + \int_step_inline:nnnn { #2 } { #4 } \l_@@_last_empty_column_int + { + \@@_test_if_cell_in_a_block:nn { ##1 } { ####1 } + \bool_if:nTF + { + \cs_if_exist_p:c + { pgf @ sh @ ns @ \@@_env: - ##1 - ####1 } + || \l_tmpb_bool + } + { \bool_set_true:N \l_tmpa_bool } + { + \bool_if:NF \l_tmpa_bool + { + \int_set:Nn \l_@@_last_empty_column_int { ####1 } + \seq_put_right:Nn + \l_@@_empty_corner_cells_seq + { ##1 - ####1 } + } + } + } + } + } +% \end{macrocode} +% +% \bigskip +% The following macro tests whether if a cell is in (at least) one of the blocks +% of the array. +% +% The flag |\l_tmpb_bool| will be raised if the cell |#1|-|#2| is in a block. +% \begin{macrocode} +\cs_new_protected:Npn \@@_test_if_cell_in_a_block:nn #1 #2 + { + \bool_set_false:N \l_tmpb_bool + \seq_map_inline:Nn \g_@@_pos_of_blocks_seq + { \@@_test_if_cell_in_block:nnnnnnn { #1 } { #2 } ##1 } + } +% \end{macrocode} +% +% \begin{macrocode} +\cs_generate_variant:Nn \@@_test_if_cell_in_a_block:nn { nx , xn } +% \end{macrocode} +% +% \begin{macrocode} +\cs_new_protected:Npn \@@_test_if_cell_in_block:nnnnnnn #1 #2 #3 #4 #5 #6 + { + \bool_if:nT + { + \int_compare_p:n { #3 <= #1 } + && \int_compare_p:n { #1 <= #5 } + && \int_compare_p:n { #4 <= #2 } + && \int_compare_p:n { #2 <= #6 } + } + { \bool_set_true:N \l_tmpb_bool } + } +% \end{macrocode} % +% % \bigskip % \subsection*{The commands to draw dotted lines to separate columns and rows} % @@ -10008,7 +10269,7 @@ version 2005/12/01 or later. \cs_new_protected:Npn \@@_Block_iii:nnnnnn #1 #2 #3 #4 #5 #6 { % \end{macrocode} -% The group is for the keys (even if, as for new, there is only one key, called +% The group is for the keys (even if, as for now, there is only one key, called % |tikz| and not documented). % \begin{macrocode} \group_begin: @@ -10785,6 +11046,7 @@ version 2005/12/01 or later. first-row,~ hlines,~ hvlines,~ + hvlines-except-corners,~ last-col,~ last-row,~ left-margin,~ @@ -11309,6 +11571,10 @@ version 2005/12/01 or later. % % It's now possible to use the command |\Block| in the ``last row''. % +% \subsection*{Changes between versions 4.3 and 4.4} +% +% New key |hvlines-except-corners|. +% % % \PrintIndex % diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf index 31fb149271..2c72de6ae1 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix.pdf and b/macros/latex/contrib/nicematrix/nicematrix.pdf differ diff --git a/macros/latex/contrib/pm-isomath/README.txt b/macros/latex/contrib/pm-isomath/README.txt index 2b1f69bd14..0d1a39f96e 100644 --- a/macros/latex/contrib/pm-isomath/README.txt +++ b/macros/latex/contrib/pm-isomath/README.txt @@ -1,31 +1,15 @@ -%% -%% This is file `README.txt', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% pm-isomath.dtx (with options: `txt') -%% ______________________________________________________ -%% The PM-ISOmath bundle -%% Copyright (C) 2017-2020 Claudio Beccari -%% All rights reserved -%% -%% License information appended -%% \ProvidesFile{README.txt}[% + 2020/04/18 v.1.0.06 + README file for pm-isomath.sty] - -%% -%% -%% Distributable under the LaTeX Project Public License, -%% version 1.3c or higher (your choice). The latest version of -%% this license is at: http://www.latex-project.org/lppl.txt -%% -%% This work is "maintained" -%% -%% This work consists of this file pm-isomath.dtx, a README.txt file -%% and the derived files: -%% pm-isomath.sty, pm-isomath.pdf. -%% -%% -%% End of file `README.txt'. + + Distributable under the LaTeX Project Public License, + version 1.3c or higher (your choice). The latest version of + this license is at: http://www.latex-project.org/lppl.txt + + This work is "maintained" + + This work consists of this file pm-isomath.dtx, a README.txt file + and the derived files: + pm-isomath.sty, pm-isomath.pdf. + diff --git a/macros/latex/contrib/pm-isomath/pm-isomath.dtx b/macros/latex/contrib/pm-isomath/pm-isomath.dtx index e72d09d24b..9e456241ff 100644 --- a/macros/latex/contrib/pm-isomath/pm-isomath.dtx +++ b/macros/latex/contrib/pm-isomath/pm-isomath.dtx @@ -32,7 +32,7 @@ This work consists of this file pm-isomath.dtx, a README.txt file \askforoverwritefalse \generate{\file{pm-isomath.sty}{\from{pm-isomath.dtx}{style}} - \file{README.txt}{\from{pm-isomath.dtx}{txt}} +% \file{README.txt}{\from{pm-isomath.dtx}{txt}} } \def\tmpa{plain} @@ -56,11 +56,11 @@ This work consists of this file pm-isomath.dtx, a README.txt file % %