diff options
author | Norbert Preining <norbert@preining.info> | 2024-08-19 03:03:32 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-08-19 03:03:32 +0000 |
commit | f6a447f05c5e87db718c554732de55e7ce2424ff (patch) | |
tree | a52edaadc0fc88cfc9d7e5a241a36ba6e15ae39c /macros/latex | |
parent | dc5bdc2dd99b353e929a94cf46e87402543fa2b4 (diff) |
CTAN sync 202408190303
Diffstat (limited to 'macros/latex')
15 files changed, 529 insertions, 205 deletions
diff --git a/macros/latex/contrib/catppuccinpalette/README.md b/macros/latex/contrib/catppuccinpalette/README.md index 105e5497a4..4efad071ce 100644 --- a/macros/latex/contrib/catppuccinpalette/README.md +++ b/macros/latex/contrib/catppuccinpalette/README.md @@ -1,28 +1,75 @@ -# Readme for the package catppuccinPalette +<h3 align="center"> + <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/> + <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/> + Catppuccin for <a href="https://www.latex-project.org/">LaTeX</a> + <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/> +</h3> -Author: Lukas Heindl (`oss.heindl+latex@protonmail.com`). +<p align="center"> + <a href="https://github.com/catppuccin/latex/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/latex?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a> + <a href="https://github.com/catppuccin/latex/issues"><img src="https://img.shields.io/github/issues/catppuccin/latex?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a> + <a href="https://github.com/catppuccin/latex/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/latex?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a> +</p> -CTAN page: [catppuccinPalette](https://ctan.org/pkg/catppuccinpalette) +<p align="center"> + <img src="assets/preview.webp"/> +</p> -## License -The LaTeX package `catppuccinPalette` is distributed under the LPPL 1.3 license. +## Previews -## Description +<details> +<summary>đ» Latte</summary> +<img src="assets/latte.webp"/> +</details> +<details> +<summary>đȘŽ FrappĂ©</summary> +<img src="assets/frappe.webp"/> +</details> +<details> +<summary>đș Macchiato</summary> +<img src="assets/macchiato.webp"/> +</details> +<details> +<summary>đż Mocha</summary> +<img src="assets/mocha.webp"/> +</details> -The LaTeX package `catppuccinPalette` provides new colors for xcolor. +## Usage -## Installation +### Importing the theme file +1. The [catppuccinPalette](https://www.ctan.org/pkg/catppuccinpalette) package is present on CTAN, but probably not included in your TeX Live installation. Follow the steps below to install it manually: + - Shortcut: If you set up your local `texmf` you should be able to simply install by executing `make install` (this installs the package locally for the current user) + - If you don't like installing the package locally for the current user you might also execue `l3build unpack` and move the generated `.sty` file `build/unpacked/catppuccinpalette.sty` to the root directory of your project. + - If you don't have `l3build` available, you can also download the `catppuccinpalette.sty` file from the [latest GitHub release](https://github.com/catppuccin/latex/releases/latest) and move the file to your project root. +2. Import the package by adding `\usepackage[FLAVOR]{catppuccinpalette}`, replacing `FLAVOR` with the flavor of your choice. i.e. `\usepackage[macchiato]{catppuccinpalette}`. Valid options are: mocha (default), latte, frappe, and macchiato. + - If you want the package not only to add color definitions, you can also pass `textcolor=true` and/or `pagecolor=true` to the `catppuccinpalette` package. + - Also note that in the pdf containing the documentation, the available options are described in more detail and also the defined colors are listed and shown. -For a manual installation: +### Color Naming Conventions -* put the files `catppuccinpalette.ins` and `catppuccinpalette.dtx` in the same directory; -* run `latex catppuccinpalette.ins` in that directory. +All [Catppuccin palette colors](https://github.com/catppuccin/catppuccin#-palette), across all flavors, follow the same naming convention. This theme set prefixes all Catppuccin colors with `Ctp`, i.e. `CtpPeach`, or `CtpBlue`. -The file `catppuccinpalette.sty` will be generated. -The file `catppuccinpalette.sty` is the only file necessary to use the latex package `catppuccinPalette`. -You have to put it in the same directory as your document or (best) in a `texmf` tree. +### Examples -Simplified version: +Please refer to the [examples](https://github.com/catppuccin/latex/tree/main/examples) for full demonstrations, with LaTeX sources and their outputs, on theme usage and code highlighting. + +## đ Thanks to + +- [Lukas](https://github.com/atticus-sullivan) +- [Brandon](https://github.com/walshyb) + + + +<p align="center"> + <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" /> +</p> + +<p align="center"> + Copyright © 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a> +</p> + +<p align="center"> + <a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a> +</p> -* run `l3build unpack` to generate the `.sty` in `build/unpacked/` diff --git a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx index f74df5dd95..16d8a60e47 100644 --- a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx +++ b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.dtx @@ -1,21 +1,26 @@ % \iffalse meta-comment % -% Copyright (C) 2024 by Lukas Heindl <oss.heindl+latex@protonmail.com> -% --------------------------------------------------------------------------- -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status `maintained'. -% -% The Current Maintainer of this work is Lukas Heindl. -% -% This work consists of the files catppuccinpalette.dtx and catppuccinpalette.ins -% and the derived filebase catppuccinpalette.sty. +% MIT License +% +% Copyright (c) 2024 Catppuccin +% +% Permission is hereby granted, free of charge, to any person obtaining a copy +% of this software and associated documentation files (the "Software"), to deal +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in all +% copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +% SOFTWARE. % % \fi % @@ -26,7 +31,7 @@ %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] %<package>\ProvidesPackage{catppuccinpalette} %<*package> - [2024/05/22 v1.0.2 catppuccin xcolor palette] + [2024/08/13 v1.1.0 catppuccin xcolor palette] %</package> % %<*driver> @@ -69,13 +74,15 @@ % \changes{v1.0.0}{2024/02/27}{First full release} % \changes{v1.0.1}{2024/05/19}{Make fit for CTAN} % \changes{v1.0.2}{2024/05/19}{Fix colors in documentation} +% \changes{v1.1.0}{2024/08/13}{Move to / Merge with official catppuccin. Thereby deprecate colors with |Cat| prefix. Subject to removal in the future} % % \DoNotIndex{\newcommand,\newenvironment,\color,\colorlet,\def,\fi,\RequirePackage,\ProvidesPackage,\ProcessPgfOptions,\preparecolorset,\pgfkeys,\pagecolor,\newif,\NeedsTeXFormat} % +% \providecommand*\pkg{\textsf} % \providecommand*{\url}{\texttt} % \GetFileInfo{catppuccinpalette.dtx} % \title{The \textsf{catppuccinPalette} package} -% \author{Lukas Heindl \\ \url{oss.heindl+latex@protonmail.com} \\ \url{https://github.com/atticus-sullivan/catpuccinPalette}} +% \author{Lukas Heindl \\ \url{oss.heindl+latex@protonmail.com} \\ \url{https://github.com/catppuccin/latex}} % \date{\fileversion~from \filedate} % % \maketitle @@ -95,14 +102,14 @@ % % Load via |\usepackage{catppuccinpalette}| % -% Just use the new colors (prefixed with \verb|Cat<Style>|) like normal xcolors. +% Just use the new colors (prefixed with \verb|Ctp<Style>|) like normal xcolors. % In addition to the usual colors of the palette, this package defines some % colors according to the % style guide\footnote{\url{https://github.com/catppuccin/catppuccin/blob/main/docs/style-guide.md}} % for ease of use. % % This package also allows you to set a specific style which sets the shortened -% color names (prefixed only with \verb|Cat|) to the selected style (allows for +% color names (prefixed only with \verb|Ctp|) to the selected style (allows for % easy switching style) via the package option \verb|style|. % % This package loads xcolor (without options) so if you want to set some xcolor @@ -113,16 +120,21 @@ % \emph{Option} & \emph{Description} % \\\toprule % \verb|style| & -% set the style used by the shortened prefix (\verb|Cat|). Possible values: +% set the style used by the shortened prefix (\verb|Ctp|). Possible values: % \verb|Latte| (default+initial), \verb|latte|, \verb|Frappe|, \verb|frappe|, -% \verb|Mocha|, \verb|mocha| +% \verb|Mocha|, \verb|mocha|, \verb|Macchiato|, \verb|macchiato| +% \\ +% & +% As a shortcut, you can also just use e.\,g.\, +% |\usepackage[latte]{catppuccinPalette}| as a shorthand for +% |\usepackage[style=latte]{catppuccinPalette}| % \\ % \verb|textcolor| & -% set the default textcolor of the document to \verb|CatText|. Possible values: +% set the default textcolor of the document to \verb|CtpText|. Possible values: % \verb|false| (default+initial), \verb|true| % \\ % \verb|pagecolor| & -% set the pagecolor of the document to \verb|CatBackground|. Possible values: +% set the pagecolor of the document to \verb|CtpBackground|. Possible values: % \verb|false| (default+initial), \verb|true| % \\\midrule % \verb|styleAll| & @@ -130,50 +142,64 @@ % \\\bottomrule % \end{tabularx} % +% \subsubsection{Change settings mid-document} +% \DescribeMacro{\CtpReinit} |\CtpReinit[opts]| +% +% This command allows to reinitialize this package. All previous configuration +% options will be kept. In particular this allows to change the active +% style/flavor mid-document. Note that if you decided this package should +% change the background color when loading the package and only do +% |\CptReinit[style=<another style>]|, then the background color will also be +% adjusted on reinitialization. +% +% The command processes the same options like the ones you can pass when +% loading the package (see documentation above). +% % \subsection{Colors} +% \textbf{Note:} The colors with the prefix |Cat| are deprecated and will be removed in a future version! % \newcommand{\showCol}[1]{\raisebox{0.5ex}{\fcolorbox{black}{#1}{\hspace{1em}}} #1} % \foreach \Style in {Latte,Frappe,Macchiato,Mocha}{ % \subsubsection{Style \texttt{\Style}} % \begin{multicols}{2} -% \showCol{Cat\Style Blue}\par -% \showCol{Cat\Style Rosewater}\par -% \showCol{Cat\Style Flamingo}\par -% \showCol{Cat\Style Pink}\par -% \showCol{Cat\Style Mauve}\par -% \showCol{Cat\Style Red}\par -% \showCol{Cat\Style Maroon}\par -% \showCol{Cat\Style Peach}\par -% \showCol{Cat\Style Yellow}\par -% \showCol{Cat\Style Green}\par -% \showCol{Cat\Style Teal}\par -% \showCol{Cat\Style Sky}\par -% \showCol{Cat\Style Sapphire}\par -% \showCol{Cat\Style Blue}\par -% \showCol{Cat\Style Lavender}\par -% \showCol{Cat\Style Text}\par -% \showCol{Cat\Style Subtext1}\par -% \showCol{Cat\Style Subtext0}\par -% \showCol{Cat\Style Overlay2}\par -% \showCol{Cat\Style Overlay1}\par -% \showCol{Cat\Style Overlay0}\par -% \showCol{Cat\Style Surface2}\par -% \showCol{Cat\Style Surface1}\par -% \showCol{Cat\Style Surface0}\par -% \showCol{Cat\Style Base}\par -% \showCol{Cat\Style Mantle}\par -% \showCol{Cat\Style Crust}\par +% \showCol{Ctp\Style Blue}\par +% \showCol{Ctp\Style Rosewater}\par +% \showCol{Ctp\Style Flamingo}\par +% \showCol{Ctp\Style Pink}\par +% \showCol{Ctp\Style Mauve}\par +% \showCol{Ctp\Style Red}\par +% \showCol{Ctp\Style Maroon}\par +% \showCol{Ctp\Style Peach}\par +% \showCol{Ctp\Style Yellow}\par +% \showCol{Ctp\Style Green}\par +% \showCol{Ctp\Style Teal}\par +% \showCol{Ctp\Style Sky}\par +% \showCol{Ctp\Style Sapphire}\par +% \showCol{Ctp\Style Blue}\par +% \showCol{Ctp\Style Lavender}\par +% \showCol{Ctp\Style Text}\par +% \showCol{Ctp\Style Subtext1}\par +% \showCol{Ctp\Style Subtext0}\par +% \showCol{Ctp\Style Overlay2}\par +% \showCol{Ctp\Style Overlay1}\par +% \showCol{Ctp\Style Overlay0}\par +% \showCol{Ctp\Style Surface2}\par +% \showCol{Ctp\Style Surface1}\par +% \showCol{Ctp\Style Surface0}\par +% \showCol{Ctp\Style Base}\par +% \showCol{Ctp\Style Mantle}\par +% \showCol{Ctp\Style Crust}\par % \end{multicols} % % Some basic colors according to the style guide: % % \begin{multicols}{2} -% \showCol{Cat\Style Background}\par -% \showCol{Cat\Style Link}\par +% \showCol{Ctp\Style Background}\par +% \showCol{Ctp\Style Link}\par % \phantom{}\par % \columnbreak -% \showCol{Cat\Style Success}\par -% \showCol{Cat\Style Warning}\par -% \showCol{Cat\Style Error}\par +% \showCol{Ctp\Style Success}\par +% \showCol{Ctp\Style Warning}\par +% \showCol{Ctp\Style Error}\par % \end{multicols} % % } @@ -201,16 +227,24 @@ % \end{macrocode} % Define the package option keys % \begin{macrocode} + Latte/.style={style=Latte}, + latte/.style={style=Latte}, + Frappe/.style={style=Frappe}, + frappe/.style={style=Frappe}, + Macchiato/.style={style=Macchiato}, + macchiato/.style={style=Macchiato}, + Mocha/.style={style=Mocha}, + mocha/.style={style=Mocha}, style/.is choice, style/.value required, style/Latte/.code = {\def\catppuccinpalette@style{Latte}}, - style/latte/.forward to = /catppuccinPalette/style/Latte, + style/latte/.style = {style=Latte}, style/Frappe/.code = {\def\catppuccinpalette@style{Frappe}}, - style/frappe/.forward to = /catppuccinPalette/style/frappe, + style/frappe/.style = {style=Frappe}, style/Macchiato/.code = {\def\catppuccinpalette@style{Macchiato}}, - style/macchiato/.forward to = /catppuccinPalette/style/Macchiato, + style/macchiato/.style = {style=Macchiato}, style/Mocha/.code = {\def\catppuccinpalette@style{Mocha}}, - style/mocha/.forward to = /catppuccinPalette/style/Mocha, + style/mocha/.style = {style=Mocha}, textcolor/.is if = catppuccinpalette@textcolor, textcolor/.default = true, pagecolor/.is if = catppuccinpalette@pagecolor, @@ -223,7 +257,7 @@ pagecolor = false, style = Latte, } -\ProcessPgfOptions* +\ProcessPgfOptions{catppuccinPalette} % \end{macrocode} % Define the \emph{Latte} colorset % \begin{macrocode} @@ -255,14 +289,48 @@ Mantle,230,233,239/E6E9EF;% Crust,220,224,232/DCE0E8% } -% \end{macrocode} -% Define colors according to the catppuccin style guide -% \begin{macrocode} \colorlet{CatLatteBackground}{CatLatteBase} \colorlet{CatLatteLink}{CatLatteBlue} \colorlet{CatLatteSuccess}{CatLatteGreen} \colorlet{CatLatteWarning}{CatLatteYellow} \colorlet{CatLatteError}{CatLatteRed} + +\preparecolorset{RGB/HTML}{CtpLatte}{}{% + Rosewater,220,138,120/DC8A78;% + Flamingo,221,120,120/DD7878;% + Pink,234,118,203/EA76CB;% + Mauve,136,57,239/8839EF;% + Red,210,15,57/D20F39;% + Maroon,230,69,83/E64553;% + Peach,254,100,11/FE640B;% + Yellow,223,142,29/DF8E1D;% + Green,64,160,43/40A02B;% + Teal,23,146,153/179299;% + Sky,4,165,229/04A5E5;% + Sapphire,32,159,181/209FB5;% + Blue,30,102,245/1E66F5;% + Lavender,114,135,253/7287FD;% + Text,76,79,105/4C4F69;% + Subtext1,92,95,119/5C5F77;% + Subtext0,108,111,133/6C6F85;% + Overlay2,124,127,147/7C7F93;% + Overlay1,140,143,161/8C8FA1;% + Overlay0,156,160,176/9CA0B0;% + Surface2,172,176,190/ACB0BE;% + Surface1,188,192,204/BCC0CC;% + Surface0,204,208,218/CCD0DA;% + Base,239,241,245/EFF1F5;% + Mantle,230,233,239/E6E9EF;% + Crust,220,224,232/DCE0E8% +} +% \end{macrocode} +% Define colors according to the catppuccin style guide +% \begin{macrocode} +\colorlet{CtpLatteBackground}{CtpLatteBase} +\colorlet{CtpLatteLink}{CtpLatteBlue} +\colorlet{CtpLatteSuccess}{CtpLatteGreen} +\colorlet{CtpLatteWarning}{CtpLatteYellow} +\colorlet{CtpLatteError}{CtpLatteRed} % \end{macrocode} % Define the styles \emph{Frappe}, \emph{Macchiato} and \emph{Mocha} accordingly % \begin{macrocode} @@ -299,6 +367,41 @@ \colorlet{CatFrappeSuccess}{CatFrappeGreen} \colorlet{CatFrappeWarning}{CatFrappeYellow} \colorlet{CatFrappeError}{CatFrappeRed} + +\preparecolorset{RGB/HTML}{CtpFrappe}{}{% + Rosewater,242,213,207/F2D5CF;% + Flamingo,238,190,190/EEBEBE;% + Pink,244,184,228/F4B8E4;% + Mauve,202,158,230/CA9EE6;% + Red,231,130,132/E78284;% + Maroon,234,153,156/EA999C;% + Peach,239,159,118/EF9F76;% + Yellow,229,200,144/E5C890;% + Green,166,209,137/A6D189;% + Teal,129,200,190/81C8BE;% + Sky,153,209,219/99D1DB;% + Sapphire,133,193,220/85C1DC;% + Blue,140,170,238/8CAAEE;% + Lavender,186,187,241/BABBF1;% + Text,198,208,245/C6D0F5;% + Subtext1,181,191,226/B5BFE2;% + Subtext0,165,173,206/A5ADCE;% + Overlay2,148,156,187/949CBB;% + Overlay1,131,139,167/838BA7;% + Overlay0,115,121,148/737994;% + Surface2,98,104,128/626880;% + Surface1,81,87,109/51576D;% + Surface0,65,69,89/414559;% + Base,48,52,70/303446;% + Mantle,41,44,60/292C3C;% + Crust,35,38,52/232634% +} +\colorlet{CtpFrappeBackground}{CtpFrappeBase} +\colorlet{CtpFrappeLink}{CtpFrappeBlue} +\colorlet{CtpFrappeSuccess}{CtpFrappeGreen} +\colorlet{CtpFrappeWarning}{CtpFrappeYellow} +\colorlet{CtpFrappeError}{CtpFrappeRed} + \preparecolorset{RGB/HTML}{CatMacchiato}{}{% Rosewater,244,219,214/F4DBD6;% Flamingo,240,198,198/F0C6C6;% @@ -332,6 +435,41 @@ \colorlet{CatMacchiatoSuccess}{CatMacchiatoGreen} \colorlet{CatMacchiatoWarning}{CatMacchiatoYellow} \colorlet{CatMacchiatoError}{CatMacchiatoRed} + +\preparecolorset{RGB/HTML}{CtpMacchiato}{}{% + Rosewater,244,219,214/F4DBD6;% + Flamingo,240,198,198/F0C6C6;% + Pink,245,189,230/F5BDE6;% + Mauve,198,160,246/C6A0F6;% + Red,237,135,150/ED8796;% + Maroon,238,153,160/EE99A0;% + Peach,245,169,127/F5A97F;% + Yellow,238,212,159/EED49F;% + Green,166,218,149/A6DA95;% + Teal,139,213,202/8BD5CA;% + Sky,145,215,227/91D7E3;% + Sapphire,125,196,228/7DC4E4;% + Blue,138,173,244/8AADF4;% + Lavender,183,189,248/B7BDF8;% + Text,202,211,245/CAD3F5;% + Subtext1,184,192,224/B8C0E0;% + Subtext0,165,173,203/A5ADCB;% + Overlay2,147,154,183/939AB7;% + Overlay1,128,135,162/8087A2;% + Overlay0,110,115,141/6E738D;% + Surface2,91,96,120/5B6078;% + Surface1,73,77,100/494D64;% + Surface0,54,58,79/363A4F;% + Base,36,39,58/24273A;% + Mantle,30,32,48/1E2030;% + Crust,24,25,38/181926% +} +\colorlet{CtpMacchiatoBackground}{CtpMacchiatoBase} +\colorlet{CtpMacchiatoLink}{CtpMacchiatoBlue} +\colorlet{CtpMacchiatoSuccess}{CtpMacchiatoGreen} +\colorlet{CtpMacchiatoWarning}{CtpMacchiatoYellow} +\colorlet{CtpMacchiatoError}{CtpMacchiatoRed} + \preparecolorset{RGB/HTML}{CatMocha}{}{% Rosewater,245,224,220/F5E0DC;% Flamingo,242,205,205/F2CDCD;% @@ -360,57 +498,139 @@ Mantle,24,24,37/181825;% Crust,17,17,27/11111B% } -% \end{macrocode} -% Define shortcuts for active style -% \begin{macrocode} \colorlet{CatMochaBackground}{CatMochaBase} \colorlet{CatMochaLink}{CatMochaBlue} \colorlet{CatMochaSuccess}{CatMochaGreen} \colorlet{CatMochaWarning}{CatMochaYellow} \colorlet{CatMochaError}{CatMochaRed} -\colorlet{CatRosewater}{Cat\catppuccinpalette@style Rosewater} -\colorlet{CatFlamingo}{Cat\catppuccinpalette@style Flamingo} -\colorlet{CatPink}{Cat\catppuccinpalette@style Pink} -\colorlet{CatMauve}{Cat\catppuccinpalette@style Mauve} -\colorlet{CatRed}{Cat\catppuccinpalette@style Red} -\colorlet{CatMaroon}{Cat\catppuccinpalette@style Maroon} -\colorlet{CatPeach}{Cat\catppuccinpalette@style Peach} -\colorlet{CatYellow}{Cat\catppuccinpalette@style Yellow} -\colorlet{CatGreen}{Cat\catppuccinpalette@style Green} -\colorlet{CatTeal}{Cat\catppuccinpalette@style Teal} -\colorlet{CatSky}{Cat\catppuccinpalette@style Sky} -\colorlet{CatSapphire}{Cat\catppuccinpalette@style Sapphire} -\colorlet{CatBlue}{Cat\catppuccinpalette@style Blue} -\colorlet{CatLavender}{Cat\catppuccinpalette@style Lavender} -\colorlet{CatText}{Cat\catppuccinpalette@style Text} -\colorlet{CatSubtext1}{Cat\catppuccinpalette@style Subtext1} -\colorlet{CatSubtext0}{Cat\catppuccinpalette@style Subtext0} -\colorlet{CatOverlay2}{Cat\catppuccinpalette@style Overlay2} -\colorlet{CatOverlay1}{Cat\catppuccinpalette@style Overlay1} -\colorlet{CatOverlay0}{Cat\catppuccinpalette@style Overlay0} -\colorlet{CatSurface2}{Cat\catppuccinpalette@style Surface2} -\colorlet{CatSurface1}{Cat\catppuccinpalette@style Surface1} -\colorlet{CatSurface0}{Cat\catppuccinpalette@style Surface0} -\colorlet{CatBase}{Cat\catppuccinpalette@style Base} -\colorlet{CatMantle}{Cat\catppuccinpalette@style Mantle} -\colorlet{CatCrust}{Cat\catppuccinpalette@style Crust} -\colorlet{CatBackground}{Cat\catppuccinpalette@style Base} -\colorlet{CatLink}{Cat\catppuccinpalette@style Blue} -\colorlet{CatSuccess}{Cat\catppuccinpalette@style Green} -\colorlet{CatWarning}{Cat\catppuccinpalette@style Yellow} -\colorlet{CatError}{Cat\catppuccinpalette@style Red} + +\preparecolorset{RGB/HTML}{CtpMocha}{}{% + Rosewater,245,224,220/F5E0DC;% + Flamingo,242,205,205/F2CDCD;% + Pink,245,194,231/F5C2E7;% + Mauve,203,166,247/CBA6F7;% + Red,243,139,168/F38BA8;% + Maroon,235,160,172/EBA0AC;% + Peach,250,179,135/FAB387;% + Yellow,249,226,175/F9E2AF;% + Green,166,227,161/A6E3A1;% + Teal,148,226,213/94E2D5;% + Sky,137,220,235/89DCEB;% + Sapphire,116,199,236/74C7EC;% + Blue,137,180,250/89B4FA;% + Lavender,180,190,254/B4BEFE;% + Text,205,214,244/CDD6F4;% + Subtext1,186,194,222/BAC2DE;% + Subtext0,166,173,200/A6ADC8;% + Overlay2,147,153,178/9399B2;% + Overlay1,127,132,156/7F849C;% + Overlay0,108,112,134/6C7086;% + Surface2,88,91,112/585B70;% + Surface1,69,71,90/45475A;% + Surface0,49,50,68/313244;% + Base,30,30,46/1E1E2E;% + Mantle,24,24,37/181825;% + Crust,17,17,27/11111B% +} +\colorlet{CtpMochaBackground}{CtpMochaBase} +\colorlet{CtpMochaLink}{CtpMochaBlue} +\colorlet{CtpMochaSuccess}{CtpMochaGreen} +\colorlet{CtpMochaWarning}{CtpMochaYellow} +\colorlet{CtpMochaError}{CtpMochaRed} + +% \end{macrocode} +% Define shortcuts for active style (legacy part) +% \begin{macrocode} +\colorlet{CatRosewater}{Ctp\catppuccinpalette@style Rosewater} +\colorlet{CatFlamingo}{Ctp\catppuccinpalette@style Flamingo} +\colorlet{CatPink}{Ctp\catppuccinpalette@style Pink} +\colorlet{CatMauve}{Ctp\catppuccinpalette@style Mauve} +\colorlet{CatRed}{Ctp\catppuccinpalette@style Red} +\colorlet{CatMaroon}{Ctp\catppuccinpalette@style Maroon} +\colorlet{CatPeach}{Ctp\catppuccinpalette@style Peach} +\colorlet{CatYellow}{Ctp\catppuccinpalette@style Yellow} +\colorlet{CatGreen}{Ctp\catppuccinpalette@style Green} +\colorlet{CatTeal}{Ctp\catppuccinpalette@style Teal} +\colorlet{CatSky}{Ctp\catppuccinpalette@style Sky} +\colorlet{CatSapphire}{Ctp\catppuccinpalette@style Sapphire} +\colorlet{CatBlue}{Ctp\catppuccinpalette@style Blue} +\colorlet{CatLavender}{Ctp\catppuccinpalette@style Lavender} +\colorlet{CatText}{Ctp\catppuccinpalette@style Text} +\colorlet{CatSubtext1}{Ctp\catppuccinpalette@style Subtext1} +\colorlet{CatSubtext0}{Ctp\catppuccinpalette@style Subtext0} +\colorlet{CatOverlay2}{Ctp\catppuccinpalette@style Overlay2} +\colorlet{CatOverlay1}{Ctp\catppuccinpalette@style Overlay1} +\colorlet{CatOverlay0}{Ctp\catppuccinpalette@style Overlay0} +\colorlet{CatSurface2}{Ctp\catppuccinpalette@style Surface2} +\colorlet{CatSurface1}{Ctp\catppuccinpalette@style Surface1} +\colorlet{CatSurface0}{Ctp\catppuccinpalette@style Surface0} +\colorlet{CatBase}{Ctp\catppuccinpalette@style Base} +\colorlet{CatMantle}{Ctp\catppuccinpalette@style Mantle} +\colorlet{CatCrust}{Ctp\catppuccinpalette@style Crust} +\colorlet{CatBackground}{Ctp\catppuccinpalette@style Base} +\colorlet{CatLink}{Ctp\catppuccinpalette@style Blue} +\colorlet{CatSuccess}{Ctp\catppuccinpalette@style Green} +\colorlet{CatWarning}{Ctp\catppuccinpalette@style Yellow} +\colorlet{CatError}{Ctp\catppuccinpalette@style Red} + % \end{macrocode} -% Set (only initial) pagecolor according to the style guide if the user wants this +% New command which parses the same options like the package. Can be used to e.\,g.\, reset/reinit the selected style. % \begin{macrocode} -\ifcatppuccinpalette@pagecolor - \pagecolor{CatBackground} -\fi +\NewDocumentCommand\CtpReinit{O{}}{% + \pgfkeys{% + /catppuccinPalette/.cd,% + #1% + }% +% \end{macrocode} +% Define shortcuts for active style +% \begin{macrocode} + \colorlet{CtpRosewater}{Ctp\catppuccinpalette@style Rosewater}% + \colorlet{CtpFlamingo}{Ctp\catppuccinpalette@style Flamingo}% + \colorlet{CtpPink}{Ctp\catppuccinpalette@style Pink}% + \colorlet{CtpMauve}{Ctp\catppuccinpalette@style Mauve}% + \colorlet{CtpRed}{Ctp\catppuccinpalette@style Red}% + \colorlet{CtpMaroon}{Ctp\catppuccinpalette@style Maroon}% + \colorlet{CtpPeach}{Ctp\catppuccinpalette@style Peach}% + \colorlet{CtpYellow}{Ctp\catppuccinpalette@style Yellow}% + \colorlet{CtpGreen}{Ctp\catppuccinpalette@style Green}% + \colorlet{CtpTeal}{Ctp\catppuccinpalette@style Teal}% + \colorlet{CtpSky}{Ctp\catppuccinpalette@style Sky}% + \colorlet{CtpSapphire}{Ctp\catppuccinpalette@style Sapphire}% + \colorlet{CtpBlue}{Ctp\catppuccinpalette@style Blue}% + \colorlet{CtpLavender}{Ctp\catppuccinpalette@style Lavender}% + \colorlet{CtpText}{Ctp\catppuccinpalette@style Text}% + \colorlet{CtpSubtext1}{Ctp\catppuccinpalette@style Subtext1}% + \colorlet{CtpSubtext0}{Ctp\catppuccinpalette@style Subtext0}% + \colorlet{CtpOverlay2}{Ctp\catppuccinpalette@style Overlay2}% + \colorlet{CtpOverlay1}{Ctp\catppuccinpalette@style Overlay1}% + \colorlet{CtpOverlay0}{Ctp\catppuccinpalette@style Overlay0}% + \colorlet{CtpSurface2}{Ctp\catppuccinpalette@style Surface2}% + \colorlet{CtpSurface1}{Ctp\catppuccinpalette@style Surface1}% + \colorlet{CtpSurface0}{Ctp\catppuccinpalette@style Surface0}% + \colorlet{CtpBase}{Ctp\catppuccinpalette@style Base}% + \colorlet{CtpMantle}{Ctp\catppuccinpalette@style Mantle}% + \colorlet{CtpCrust}{Ctp\catppuccinpalette@style Crust}% + \colorlet{CtpBackground}{Ctp\catppuccinpalette@style Base}% + \colorlet{CtpLink}{Ctp\catppuccinpalette@style Blue}% + \colorlet{CtpSuccess}{Ctp\catppuccinpalette@style Green}% + \colorlet{CtpWarning}{Ctp\catppuccinpalette@style Yellow}% + \colorlet{CtpError}{Ctp\catppuccinpalette@style Red}% +% \end{macrocode} +% Set pagecolor according to the style guide if the user wants this +% \begin{macrocode} +\ifcatppuccinpalette@pagecolor% + \pagecolor{CtpBackground}% +\fi% % \end{macrocode} % Set textcolor according to the style guide if the user wants this % \begin{macrocode} -\ifcatppuccinpalette@textcolor - \color{CatText} -\fi +\ifcatppuccinpalette@textcolor% + \color{CtpText}% +\fi% +% \end{macrocode} +% \begin{macrocode} +} +\CtpReinit[] % \end{macrocode} \endinput % diff --git a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins index c93b929dcd..2e44fa2b5f 100644 --- a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins +++ b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.ins @@ -1,20 +1,24 @@ -%% Copyright (C) 2024 by Lukas Heindl <oss.heindl+latex@protonmail.com> -%% -------------------------------------------------------------------------- -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Lukas Heindl. -%% -%% This work consists of the files catppuccinpalette.dtx and catppuccinpalette.ins -%% and the derived filebase catppuccinpalette.sty. -%% +%% MIT License +%% +%% Copyright (c) 2021 Catppuccin +%% +%% Permission is hereby granted, free of charge, to any person obtaining a copy +%% of this software and associated documentation files (the "Software"), to deal +%% in the Software without restriction, including without limitation the rights +%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +%% copies of the Software, and to permit persons to whom the Software is +%% furnished to do so, subject to the following conditions: +%% +%% The above copyright notice and this permission notice shall be included in all +%% copies or substantial portions of the Software. +%% +%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +%% SOFTWARE. \input docstrip.tex \keepsilent @@ -25,15 +29,25 @@ This is a generated file. -Copyright (C) 2024 by Lukas Heindl <oss.heindl+latex@protonmail.com> --------------------------------------------------------------------------- -This work may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 -of this license or (at your option) any later version. -The latest version of this license is in - http://www.latex-project.org/lppl.txt -and version 1.3 or later is part of all distributions of LaTeX -version 2005/12/01 or later. +Copyright (c) 2021 Catppuccin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \endpreamble diff --git a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf Binary files differindex 8a5e2d9c89..b66eca9b01 100644 --- a/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf +++ b/macros/latex/contrib/catppuccinpalette/catppuccinpalette.pdf diff --git a/macros/latex/contrib/lstaddons/README b/macros/latex/contrib/lstaddons/README.txt index 7306f47deb..04cca2d309 100644 --- a/macros/latex/contrib/lstaddons/README +++ b/macros/latex/contrib/lstaddons/README.txt @@ -1,8 +1,8 @@ LaTeX bundle 'lstaddons' ~~~~~~~~~~~~~~~~~~~~~~~~ -Copyright (c) 2011-2012 by Martin Scharrer <martin@scharrer-online.de> +Copyright (c) 2011-2022 by Martin Scharrer <martin.scharrer@web.de> CTAN: http://www.ctan.org/pkg/lstaddons -Code repository: https://bitbucket.org/martin_scharrer/lstaddons +Code repository: https://github.com/MartinScharrer/lstaddons/ This bundle contains a small collections of add-on packages for the 'listings' package. diff --git a/macros/latex/contrib/lstaddons/lstautogobble.dtx b/macros/latex/contrib/lstaddons/lstautogobble.dtx index f9d62cf8d3..106034b6bb 100644 --- a/macros/latex/contrib/lstaddons/lstautogobble.dtx +++ b/macros/latex/contrib/lstaddons/lstautogobble.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment %<=*COPYRIGHT> -%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de> +%% Copyright (c) 2011-2022 by Martin Scharrer <martin.scharrer@web.de> %% ----------------------------------------------------------------------- %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -69,9 +69,9 @@ % % \GetFileInfo{lstautogobble.dtx} % \author{Martin Scharrer} -% \email{martin@scharrer-online.de} +% \email{martin.scharrer@web.de} % \ifdefined\repository -% \repository{https://bitbucket.org/martin_scharrer/lstautogobble} +% \repository{https://github.com/MartinScharrer/lstaddons/} % \fi % % \maketitle diff --git a/macros/latex/contrib/lstaddons/lstautogobble.pdf b/macros/latex/contrib/lstaddons/lstautogobble.pdf Binary files differindex 5321a97319..f054ba6597 100644 --- a/macros/latex/contrib/lstaddons/lstautogobble.pdf +++ b/macros/latex/contrib/lstaddons/lstautogobble.pdf diff --git a/macros/latex/contrib/lstaddons/lstlinebgrd.dtx b/macros/latex/contrib/lstaddons/lstlinebgrd.dtx index 860e6b6e81..705ffd19a7 100644 --- a/macros/latex/contrib/lstaddons/lstlinebgrd.dtx +++ b/macros/latex/contrib/lstaddons/lstlinebgrd.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment %<=*COPYRIGHT> -%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de> +%% Copyright (c) 2011-2024 by Martin Scharrer <martin.scharrer@web.de> %% ---------------------------------------------------------------------- %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -24,10 +24,10 @@ %<*driver> \ProvidesFile{lstlinebgrd.dtx}[% %<=*DATE> - 2012/05/03 + 2014/08/18 %<=/DATE> %<=*VERSION> - v0.1 + v0.2 %<=/VERSION> DTX file for 'lstlinebgrd'] \documentclass{ydoc} @@ -73,14 +73,15 @@ % % \changes{v0.1}{2012/05/03}{Initial release.} +% \changes{v0.2}{2024/08/18}{Updated internal separator.} % % \DoNotIndex{\newcommand,\newenvironment} % % \GetFileInfo{lstlinebgrd.dtx} % \author{Martin Scharrer} -% \email{martin@scharrer-online.de} +% \email{martin.scharrer@web.de} % \ifdefined\repository -% \repository{https://bitbucket.org/martin_scharrer/lstlinebgrd} +% \repository{https://github.com/MartinScharrer/lstaddons/} % \fi % % \maketitle @@ -238,10 +239,10 @@ \lst@Key{numbers}{none}{% \def\lst@PlaceNumber{\lst@linebgrd}% \lstKV@SwitchCases{#1}% - {none&\\% - left&\def\lst@PlaceNumber{\llap{\normalfont + {none:\\% + left:\def\lst@PlaceNumber{\llap{\normalfont \lst@numberstyle{\thelstnumber}\kern\lst@numbersep}\lst@linebgrd}\\% - right&\def\lst@PlaceNumber{\rlap{\normalfont + right:\def\lst@PlaceNumber{\rlap{\normalfont \kern\linewidth \kern\lst@numbersep \lst@numberstyle{\thelstnumber}}\lst@linebgrd}% }{\PackageError{Listings}{Numbers #1 unknown}\@ehc}} diff --git a/macros/latex/contrib/lstaddons/lstlinebgrd.pdf b/macros/latex/contrib/lstaddons/lstlinebgrd.pdf Binary files differindex 55843f75a6..af15c644f5 100644 --- a/macros/latex/contrib/lstaddons/lstlinebgrd.pdf +++ b/macros/latex/contrib/lstaddons/lstlinebgrd.pdf diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md index c84cd4389b..ca87d0cf3b 100644 --- a/macros/latex/required/babel/base/README.md +++ b/macros/latex/required/babel/base/README.md @@ -1,6 +1,6 @@ -## Babel 24.7 +## Babel 24.8 -2024-06-26 +2024-08-18 `babel` is the multilingual framework for localizing documents in LaTeX, LuaLaTeX, XeLaTeX. It manages culturally-determined @@ -10,9 +10,9 @@ languages even work with Plain formats. The latest stable version is available on <https://ctan.org/pkg/babel>. -Changes in version 24.7 are described in: +Changes in version 24.8 are described in: -https://latex3.github.io/babel/news/whats-new-in-babel-24.7.html +https://latex3.github.io/babel/news/whats-new-in-babel-24.8.html Apart from the manual, you can find information on some aspects of babel at: @@ -43,15 +43,15 @@ You may also report them to the current maintainer more informally on: https://latex3.github.io/babel/contact.html -Bugs related to specific languages are best reported to their +Bugs related to specific languages are best reported to theirs respective authors. ### Summary of latest changes ``` -24.7 2024-06-26 - * Improvements in some locales: - - Filipino (thanks to Leothelion, @ponte-vecchio) - - Line breaking in Blin, Geez, Tigre, Tigrinya, Wolaytta. +24.8 2024-08-18 + * Internal changes in bidi=basic (more reliable). + * Hook 'foreign' and \BabelWrapText. + * Improved some locales thanks to Stephen Huan (@stephen-huan). ``` ### Previous changes diff --git a/macros/latex/required/babel/base/babel-code.pdf b/macros/latex/required/babel/base/babel-code.pdf Binary files differindex 8be7825803..3e5cfe9306 100644 --- a/macros/latex/required/babel/base/babel-code.pdf +++ b/macros/latex/required/babel/base/babel-code.pdf diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx index 19db345759..84e16b7207 100644 --- a/macros/latex/required/babel/base/babel.dtx +++ b/macros/latex/required/babel/base/babel.dtx @@ -32,7 +32,7 @@ % % \iffalse %<*filedriver> -\ProvidesFile{babel.dtx}[2024/06/26 v24.7 The Babel package] +\ProvidesFile{babel.dtx}[2024/08/18 v24.8 The Babel package] \documentclass{ltxdoc} \GetFileInfo{babel.dtx} \usepackage{fontspec} @@ -3908,10 +3908,14 @@ intrinsic direction of scripts and weak directionality.) In \xetex, |bidi-r| and |bidi-l| resort to the package \textsf{bidi} (by Vafa Khalighi). For RL documents use the former, and for LR ones -use the latter. However, this package patches heavily lots of macros -and packages even if the RL script is not the main one, which can lead -to some surprising results, so for short and simple texts (letters and -punctuation) the |default| method can be preferable. +use the latter. + +\begin{warning} + This package patches heavily lots of macros and packages even if the + RL script is not the main one, which can lead to some surprising + results, so for short and simple texts (letters and punctuation) the + |default| method is more often than not much preferable. +\end{warning} There are samples on GitHub, under \texttt{/required/babel/samples}. See particularly |lua-bidibasic.tex| and |lua-secenum.tex|. @@ -4293,6 +4297,17 @@ three \TeX{} parameters (|#1|, |#2|, |#3|), with the meaning given: language in this particular case is the language that wrote the code. The special value |/| means âreturn to the core \babel{} definitionsâ (in other words, what follows hasnât been written by any language). +\item[foreign] \New{24.8} Executed by |\foreignlanguage| after the + language has been set up and just before typesetting the text from the + second argument. Its main purpose it to wrap the text with some + code, with the help of |\BabelWrapText|. For example, with: +\begin{verbatim} +\AddBabelHook{one}{foreign}{\BabelWrapText{\textit{##1}} +\AddBabelHook{two}{foreign}{\BabelWrapText{\parse{##1}} +\end{verbatim} +the text becomes |\textit{\parse{|\m{text}|}}|. + + % STILL UNDER STUDY: % \item[beforestart] \New{3.34} Executed either at the beginning of the % |aux| file (when read at the start of the document), or else at begin @@ -5479,8 +5494,8 @@ wouldnât exist. % \section{Tools} % % \begin{macrocode} -%<<version=24.7>> -%<<date=2024/06/26>> +%<<version=24.8>> +%<<date=2024/08/18>> % \end{macrocode} % % \textbf{Do not use the following macros in \texttt{ldf} files. They @@ -6984,6 +6999,9 @@ wouldnât exist. \BabelText{#2}% Still in vertical mode! {\par}% \endgroup} +\providecommand\BabelWrapText[1]{% + \def\bbl@tempa{\def\BabelText####1}% + \expandafter\bbl@tempa\expandafter{\BabelText{#1}}} % \end{macrocode} % % \end{macro} @@ -11569,6 +11587,7 @@ wouldnât exist. \let\bbl@noamsmath\@empty} \@namedef{bbl@ADJ@bidi.math@off}{% \let\bbl@noamsmath\relax} +% \@namedef{bbl@ADJ@bidi.mapdigits@on}{% \bbl@adjust@lua{bidi}{digits_mapped=true}} \@namedef{bbl@ADJ@bidi.mapdigits@off}{% @@ -12533,11 +12552,10 @@ wouldnât exist. \let\bbl@textdir@i\@gobbletwo \let\bbl@xebidipar\@empty \AddBabelHook{bidi}{foreign}{% - \def\bbl@tempa{\def\BabelText####1}% \ifcase\bbl@thetextdir - \expandafter\bbl@tempa\expandafter{\BabelText{\LR{##1}}}% + \BabelWrapText{\LR{##1}}% \else - \expandafter\bbl@tempa\expandafter{\BabelText{\RL{##1}}}% + \BabelWrapText{\RL{##1}}% \fi} \def\bbl@pardir#1{\ifcase#1\relax\setLR\else\setRL\fi} \fi @@ -15516,7 +15534,7 @@ end return head end % - function Babel.pre_otfload_h(head, gc, sz, pt, dir) + function Babel.pre_otfload_h(head, gc, sz, pt, dir) %%% TODO if Babel.numbers and Babel.digits_mapped then head = Babel.numbers(head) end @@ -15543,7 +15561,8 @@ end % The basic setup. The output is modified at a very low level to set % the |\bodydir| to the |\pagedir|. Sadly, we have to deal with boxes % in math with basic, so the |\bbl@mathboxdir| hack is activated every -% math with the package option bidi=. +% math with the package option bidi=. The hack for the PUA is no longer +% necessary with |basic|, but itâs kept in |basic-r|. % % \begin{macrocode} \breakafterdirmode=1 @@ -15557,7 +15576,10 @@ end \ifcase\expandafter\@gobbletwo\the\bbl@bidimode\or require('babel-bidi-basic.lua') \or - require('babel-bidi-basic-r.lua') + require('babel-bidi-basic-r.lua') + table.insert(Babel.ranges, {0xE000, 0xF8FF, 'on'}) + table.insert(Babel.ranges, {0xF0000, 0xFFFFD, 'on'}) + table.insert(Babel.ranges, {0x100000, 0x10FFFD, 'on'}) \fi} \newattribute\bbl@attr@dir \directlua{ Babel.attr_dir = luatexbase.registernumber'bbl@attr@dir' } @@ -15633,6 +15655,12 @@ end end luatexbase.add_to_callback("hpack_filter", Babel.math_box_dir, "Babel.math_box_dir", 0) + if Babel.unset_atdir then + luatexbase.add_to_callback("pre_linebreak_filter", Babel.unset_atdir, + "Babel.unset_atdir") + luatexbase.add_to_callback("hpack_filter", Babel.unset_atdir, + "Babel.unset_atdir") + end }}% \fi % \end{macrocode} @@ -15892,7 +15920,9 @@ end {\chardef\bbl@tabular@mode\z@}% {\chardef\bbl@tabular@mode\@ne}}% Mixed, with LTR cols \ifnum\bbl@bidimode>\@ne % Any lua bidi= except default=1 - \ifcase\bbl@tabular@mode\or % 1 + % Redefine: vrules mess up dirs: + \def\@arstrut{\relax\copy\@arstrutbox}% + \ifcase\bbl@tabular@mode\or % 1 = Mixed - default \let\bbl@parabefore\relax \AddToHook{para/before}{\bbl@parabefore} \AtBeginDocument{% @@ -15917,7 +15947,7 @@ end {\\\do@row@strut\<fi>}{\\\do@row@strut\<fi>\egroup}}}% {}}% \fi}% - \or % 2 + \or % 2 = All RTL - tabular \let\bbl@parabefore\relax \AddToHook{para/before}{\bbl@parabefore}% \AtBeginDocument{% @@ -15962,9 +15992,9 @@ end \ifnum\bbl@bidimode>\z@ % Any bidi= \def\bbl@nextfake#1{% non-local changes, use always inside a group! \bbl@exp{% - \def\\\bbl@insidemath{0}% \mathdir\the\bodydir #1% Once entered in math, set boxes to restore values + \def\\\bbl@insidemath{0}% \<ifmmode>% \everyvbox{% \the\everyvbox @@ -16448,7 +16478,7 @@ function Babel.hyphenate_replace(head, mode) if crep then step = crep.step or step end - + if crep and crep.after then crep.insert = true if dummy_node then @@ -16459,7 +16489,7 @@ function Babel.hyphenate_replace(head, mode) dummy_node = item end end - + if crep and not crep.after and dummy_node then node.remove(head, dummy_node) dummy_node = nil @@ -16480,7 +16510,7 @@ function Babel.hyphenate_replace(head, mode) sc = sc - 1 -- Nothing has been inserted. last_match = utf8.offset(w, sc+1+step) goto next - + elseif crep and crep.kashida then -- Experimental node.set_attribute(item, Babel.attr_kashida, @@ -16558,7 +16588,7 @@ function Babel.hyphenate_replace(head, mode) placeholder = ' ' end head, new = node.insert_before(head, item, d) - + elseif crep and crep.norule then -- 655360 = 10 pt = 10 * 65536 sp d = node.new(2, 3) -- (rule, empty) = \no*rule @@ -16582,14 +16612,14 @@ function Babel.hyphenate_replace(head, mode) elseif mode == 0 and crep and crep.space then -- ERROR - + elseif crep and crep.kern then d = node.new(13, 1) -- (kern, user) local quad = font.getfont(item_base.font).size or 655360 d.attr = item_base.attr d.kern = crep.kern * quad head, new = node.insert_before(head, item, d) - + elseif crep and crep.node then d = node.new(crep.node[1], crep.node[2]) d.attr = item_base.attr @@ -16621,7 +16651,7 @@ function Babel.hyphenate_replace(head, mode) print('.....', '/') Babel.debug_hyph(w, w_nodes, sc, first, last, last_match) end - + if dummy_node then node.remove(head, dummy_node) dummy_node = nil @@ -16776,16 +16806,13 @@ Babel.ranges = { {0x07C0, 0x085F, 'r'}, {0x0860, 0x086F, 'al'}, {0x08A0, 0x08FF, 'al'}, - {0xE000, 0xF8FF, 'on'}, -- PUA {0xFB1D, 0xFB4F, 'r'}, {0xFB50, 0xFDFF, 'al'}, {0xFE70, 0xFEFF, 'al'}, {0x10800, 0x10C4F, 'r'}, {0x1E800, 0x1E8DF, 'r'}, {0x1E900, 0x1E95F, 'r'}, - {0x1F300, 0x1F9FF, 'on'}, - {0xF0000, 0xFFFFD, 'on'}, -- PUA - {0x100000, 0x10FFFD, 'on'} -- PUA + {0x1F300, 0x1F9FF, 'on'} } Babel.characters = { @@ -23085,7 +23112,7 @@ function Babel.bidi(head, ispar) elseif first_d and dir ~= strong_lr then dir_mark(head, first_d, last_d, outer) first_d, last_d = nil, nil - end + end end % \end{macrocode} % @@ -23094,10 +23121,8 @@ function Babel.bidi(head, ispar) % clearly <r> and <l>, resptly, but with other combinations depends on % outer. From all these, we select only those resolving <on> $\to$ % <r>. At the beginning (when |last_lr| is nil) of an R text, they are -% mirrored directly. -% -% TODO - numbers in R mode are processed. It doesn't hurt, but should -% not be done. +% mirrored directly. Numbers in R mode are processed. It should not be +% done, but it doesn't hurt. % % \begin{macrocode} if dir and not last_lr and dir ~= 'l' and outer == 'r' then @@ -23254,6 +23279,7 @@ function Babel.bidi(head, ispar, hdir) local has_hyperlink = false local ATDIR = Babel.attr_dir + local attr_d local save_outer local temp = node.get_attribute(head, ATDIR) @@ -23285,9 +23311,11 @@ function Babel.bidi(head, ispar, hdir) -- current one is not added until we start processing the neutrals. -- three cases: glyph, dir, otherwise - if glyph_not_symbol_font(item) + if glyph_not_symbol_font(item) or (item.id == 7 and item.subtype == 2) then + if node.get_attribute(item, ATDIR) == 128 then goto nextnode end + local d_font = nil local item_r if item.id == 7 and item.subtype == 2 then @@ -23295,6 +23323,7 @@ function Babel.bidi(head, ispar, hdir) else item_r = item end + local chardata = characters[item_r.char] d = chardata and chardata.d or nil if not d or d == 'nsm' then @@ -23422,6 +23451,7 @@ function Babel.bidi(head, ispar, hdir) -- Force mathdir in math if ON (currently works as expected only -- with 'l') + if inmath and d == 'on' then d = ('TRT' == tex.mathdir) and 'r' or 'l' end @@ -23437,9 +23467,12 @@ function Babel.bidi(head, ispar, hdir) table.insert(nodes, {item, d, outer_first}) end + node.set_attribute(item, ATDIR, 128) outer_first = nil - end + ::nextnode:: + + end -- for each node -- TODO -- repeated here in case EN/ET is the last node. Find a -- better way of doing things: @@ -23600,6 +23633,15 @@ function Babel.bidi(head, ispar, hdir) return head end +-- Make sure anything is marked as 'bidi done' (including nodes inserted +-- after the babel algorithm). +function Babel.unset_atdir(head) + local ATDIR = Babel.attr_dir + for item in node.traverse(head) do + node.set_attribute(item, ATDIR, 128) + end + return head +end %</basic> % \end{macrocode} % diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins index 9c640a94cb..50ebda7423 100644 --- a/macros/latex/required/babel/base/babel.ins +++ b/macros/latex/required/babel/base/babel.ins @@ -26,7 +26,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %% -\def\filedate{2024/06/26} +\def\filedate{2024/08/18} \def\batchfile{babel.ins} \input docstrip.tex diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf Binary files differindex 8d3e32fbc8..e99c81ec6f 100644 --- a/macros/latex/required/babel/base/babel.pdf +++ b/macros/latex/required/babel/base/babel.pdf diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx index d88b690b23..f45bc18a0e 100644 --- a/macros/latex/required/babel/base/bbcompat.dtx +++ b/macros/latex/required/babel/base/bbcompat.dtx @@ -30,7 +30,7 @@ % % \iffalse %<*dtx> -\ProvidesFile{bbcompat.dtx}[2024/06/26 v24.7] +\ProvidesFile{bbcompat.dtx}[2024/08/18 v24.8] %</dtx> % %% File 'bbcompat.dtx' |