From e75604f4f5ee50c38533b47e7ffb2c0f554dcd87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phaneDucasse?= Date: Thu, 23 May 2024 16:20:13 +0200 Subject: [PATCH] git subrepo pull --force --branch=v0.2.8 archetypes/bod-book/support/latex/sbabook subrepo: subdir: "archetypes/bod-book/support/latex/sbabook" merged: "ffabafec" upstream: origin: "https://github.com/cdlm/sbabook.git" branch: "v0.2.8" commit: "ffabafec" git-subrepo: version: "0.4.6" origin: "https://github.com/Homebrew/brew" commit: "82c2e743a5" --- .../bod-book/support/latex/sbabook/.drone.yml | 109 ++++++++++++++++++ .../bod-book/support/latex/sbabook/.gitrepo | 8 +- .../support/latex/sbabook/.travis.yml | 27 ----- .../latex/sbabook/CreativeCommons-BY-SA.pdf | Bin 0 -> 4615 bytes .../latex/sbabook/CreativeCommons-BYNOCND.pdf | Bin 12106 -> 0 bytes .../support/latex/sbabook/README.markdown | 5 +- .../support/latex/sbabook/ci/install-texlive | 73 ++++++------ .../support/latex/sbabook/ci/list-deps | 100 ++++++++++++++++ .../support/latex/sbabook/sbabook.bod.tex | 2 + .../sbabook/{sbabook.bod.cls => sbabook.cls} | 29 ++--- .../support/latex/sbabook/sbabook.spiral.tex | 1 + .../support/latex/sbabook/sbabook.tex | 13 +-- .../support/latex/sbabook/texlive-2023.deps | 70 +++++++++++ .../support/latex/sbabook/texlive.deps | 35 +----- 14 files changed, 341 insertions(+), 131 deletions(-) create mode 100644 archetypes/bod-book/support/latex/sbabook/.drone.yml delete mode 100644 archetypes/bod-book/support/latex/sbabook/.travis.yml create mode 100644 archetypes/bod-book/support/latex/sbabook/CreativeCommons-BY-SA.pdf delete mode 100644 archetypes/bod-book/support/latex/sbabook/CreativeCommons-BYNOCND.pdf create mode 100755 archetypes/bod-book/support/latex/sbabook/ci/list-deps create mode 100644 archetypes/bod-book/support/latex/sbabook/sbabook.bod.tex rename archetypes/bod-book/support/latex/sbabook/{sbabook.bod.cls => sbabook.cls} (96%) create mode 100644 archetypes/bod-book/support/latex/sbabook/texlive-2023.deps mode change 100644 => 120000 archetypes/bod-book/support/latex/sbabook/texlive.deps diff --git a/archetypes/bod-book/support/latex/sbabook/.drone.yml b/archetypes/bod-book/support/latex/sbabook/.drone.yml new file mode 100644 index 00000000..374f5d92 --- /dev/null +++ b/archetypes/bod-book/support/latex/sbabook/.drone.yml @@ -0,0 +1,109 @@ +--- +kind: pipeline +type: docker +name: TeXlive + +steps: + - name: build + image: texlive/texlive + commands: + - tlmgr option repository https://ctan.gutenberg-asso.fr/systems/texlive/tlnet + - tlmgr update --self --all + - latexmk sbabook + - latexmk sbabook.bod + - latexmk sbabook.spiral + + - name: build log + image: alpine + commands: + - cat sbabook.log + - cat sbabook.bod.log + - cat sbabook.spiral.log + when: + status: [failure, success] + +--- +kind: pipeline +type: docker +name: minimal TeXlive + +steps: + - name: build + image: texlive/texlive:latest-minimal + pull: always + commands: + - tlmgr option repository https://ctan.gutenberg-asso.fr/systems/texlive/tlnet + - tlmgr update --self --all + - tlmgr install latex-bin latexmk + - xargs tlmgr install < texlive.deps + - tlmgr path add + - latexmk sbabook + - latexmk sbabook.bod + - latexmk sbabook.spiral + + - name: build log + image: alpine + commands: + - cat sbabook.log + - cat sbabook.bod.log + - cat sbabook.spiral.log + when: + status: [failure, success] + +--- +kind: pipeline +type: docker +name: Ubuntu + TeXlive 2023 + +environment: + TEXLIVE_RELEASE: 2023 + +steps: + - name: build + image: ubuntu + commands: + - apt update && apt install -y curl perl + - export PATH=$HOME/texlive/bin/x86_64-linux:$HOME/texlive/bin/aarch64-linux:$PATH + - ./ci/install-texlive + - xargs tlmgr install < texlive-2023.deps + - latexmk sbabook + - latexmk sbabook.bod + - latexmk sbabook.spiral + + - name: build log + image: alpine + commands: + - cat sbabook.log + - cat sbabook.bod.log + - cat sbabook.spiral.log + when: + status: [failure, success] + +--- +kind: pipeline +type: docker +name: Ubuntu + TeXlive rolling + +environment: + TEXLIVE_RELEASE: rolling + +steps: + - name: build + image: ubuntu + commands: + - apt update && apt install -y curl perl + - export PATH=$HOME/texlive/bin/x86_64-linux:$HOME/texlive/bin/aarch64-linux:$PATH + - ./ci/install-texlive + - xargs tlmgr install < texlive.deps + - latexmk sbabook + - latexmk sbabook.bod + - latexmk sbabook.spiral + + - name: build log + image: alpine + commands: + - cat sbabook.log + - cat sbabook.bod.log + - cat sbabook.spiral.log + when: + status: [failure, success] diff --git a/archetypes/bod-book/support/latex/sbabook/.gitrepo b/archetypes/bod-book/support/latex/sbabook/.gitrepo index b8bd1d63..2dd199c3 100644 --- a/archetypes/bod-book/support/latex/sbabook/.gitrepo +++ b/archetypes/bod-book/support/latex/sbabook/.gitrepo @@ -5,8 +5,8 @@ ; [subrepo] remote = https://github.com/cdlm/sbabook.git - branch = master - commit = 6ba943f40408c19528b5c62d5c498c9507e44335 - parent = d9663feb3a92f12b7cc6268e6cc41a5d6aef60da + branch = v0.2.8 + commit = ffabafecf60c20d856b706f9377595a45be7704f + parent = 45207449de0cce8a515afcfe358fabf185a14d30 method = merge - cmdver = 0.4.1 + cmdver = 0.4.6 diff --git a/archetypes/bod-book/support/latex/sbabook/.travis.yml b/archetypes/bod-book/support/latex/sbabook/.travis.yml deleted file mode 100644 index b473bdc7..00000000 --- a/archetypes/bod-book/support/latex/sbabook/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: "~> 1.0" -env: - global: - - PATH=$HOME/texlive/bin/x86_64-linux:$PATH - jobs: - - TEXLIVE_RELEASE=rolling - - TEXLIVE_RELEASE=2018 - -install: - - ./ci/install-texlive - -script: - - latexmk - -after_failure: - - cat sbabook.log - -deploy: - - provider: releases - edge: true - api_key: - secure: tOQFCGi5LjrbGVGh22mQmLZvo6aAjw17pj6Hd2mpcgaMGwjNG7gBbvODFfuyCZMorVBwTu5YBk2QSXY9lk0xhmSfZ5XdPAh6foC/vP+y8XZzZV/YsrFR0yltGp6CFL7QtxoTiK3h7VmlD2gM8pgThG3N68Dy/tKxuSEednOOjBI= - file: sbabook.pdf - on: - repo: cdlm/sbabook - tags: true - condition: $TEXLIVE_RELEASE = rolling diff --git a/archetypes/bod-book/support/latex/sbabook/CreativeCommons-BY-SA.pdf b/archetypes/bod-book/support/latex/sbabook/CreativeCommons-BY-SA.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7ffff96c5561c845657793ea346ceb9993f76d18 GIT binary patch literal 4615 zcmai2c|4ST_g0q4Afg2^#$(SiGiER&WDgC=Qg((JjAWRZEG1dWzC@B`EK!#1OJy%) zDF)eP-;#ZakmMcD`g?!RAMgFoeSfa+bV$7BNKz) z-UXo-lv@^8ilnZv zQFbo4bY!$0I`Nb|Oz>tkV5ega8=DC&$zMdA2-{!oET~BR^&oX#;IiVk*!4??I|n`o zd&S>&XKahf(J&*>_uip$)?ckdHSsg)_iJ4)8r#k|SEauIrQhguNXz2RO7mHpX+`Fz z-Lj@o-V}dzdi$Yz6J>-Ne~pPLpLIxm^*nin>%i54`s+Tjzdn`dL;SAdr2HkRw@8v< zKknPXkNqV=vG3&lzQ9qV&*td(818Rvw^D0XvZM}5zEpYgUe=usGWc%#xN3leE=qLR zaY!iddb0PhN`9dl9;1`Jy}vy>n{dCdZRuQC)~hM;Y-Eta^+4;}{3BYP#pws zdD;DW#gAs$zV!=BcN;!PrczbPE-PBGed;e+h71%l zh4Z@2eEYn;++NXSQ%SjpH&;s9=tyMe)Wi7-A$>k9$x~#ug}inerTB?#@OM`0Ys;tN z#OipC)lE`$#Q?Wlp}T&4G&4+vxXNPdzpV z1i3|JiDzHOJW$mkFN6ZxS+=++Z@+Ga)wArC)O!Y}w?jVmr2_AMa=&3D&2QT>f3HBT zUvKQ^VBDO2{D@%h^#%)io5+0m;j+E%WR%Xu!jwmI_TV?rY|Brp8A7>`;O42u7rTD5 zgC{?;pWyvb2`+8yIZ<2i+&5ca=myfzz^xGRZ0CBdWzmF%fBe-}v&b~1i{%`FB~K$B zXcHH2s$x53i*1S}g=uf92LVr`LN9WL^8EM6U_Uq!e4 zq^mzMoA)d@8>7-*%ktSWS6@;>Z6vsV&GwD`GuEz(Fp3(5CmmB-LRYx}- zkpGs)T{_M7m8oMde7h|j>thZ0l
    bvi> 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 literal 0 HcmV?d00001 diff --git a/archetypes/bod-book/support/latex/sbabook/CreativeCommons-BYNOCND.pdf b/archetypes/bod-book/support/latex/sbabook/CreativeCommons-BYNOCND.pdf deleted file mode 100644 index 50f150f4b84b565305c2c83c969185b4168ddafb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12106 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 E2ZEAN*Z=?k diff --git a/archetypes/bod-book/support/latex/sbabook/README.markdown b/archetypes/bod-book/support/latex/sbabook/README.markdown index e7fbe991..655c1bbd 100644 --- a/archetypes/bod-book/support/latex/sbabook/README.markdown +++ b/archetypes/bod-book/support/latex/sbabook/README.markdown @@ -4,13 +4,12 @@ SBAbook — A LaTeX class for technical books This is a set of layout, typography, and markup definitions for LaTeX books based on the [memoir][] document class. It is intended for use by [Square Bracket Associates (SBA)][sba], and heavily customized in this direction — by this I mean it's made to setup specific semantic markup and typographic style, rather than to be flexible. -[![Build Status](https://travis-ci.org/cdlm/sbabook.svg?branch=master)](https://travis-ci.org/cdlm/sbabook) -[![Flattr this git repo](https://button.flattr.com/flattr-badge-large.png)](https://flattr.com/submit/auto?url=https%3A%2F%2Fgithub.com%2Fcdlm%2Fsbabook) +[![Donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/cdlm/donate "Donate using Liberapay") ## Usage (nearly there) -The preamble is limited to the minimum: +Here is the minimal preamble: ```latex \documentclass{sbabook} diff --git a/archetypes/bod-book/support/latex/sbabook/ci/install-texlive b/archetypes/bod-book/support/latex/sbabook/ci/install-texlive index 02f5fd16..eca7fcac 100755 --- a/archetypes/bod-book/support/latex/sbabook/ci/install-texlive +++ b/archetypes/bod-book/support/latex/sbabook/ci/install-texlive @@ -4,6 +4,8 @@ trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR IFS=$'\n\t' # preamble from https://disconnected.systems/blog/another-bash-strict-mode/ +: "${TEXLIVE_TARBALL:=install-tl-unx.tar.gz}" + function die() { echo "$@" >&2 exit 1 @@ -11,49 +13,34 @@ function die() { function texlive-repo() { [[ $# -eq 1 ]] || die "${FUNCNAME[0]}: No release specified (YYYY or rolling)" - local release="$1" + local release="$1" url if [[ "$release" = rolling ]]; then - echo 'http://mirror.ctan.org/systems/texlive/tlnet' + url='http://mirror.ctan.org/systems/texlive/tlnet' else [[ "$release" = [0-9][0-9][0-9][0-9] ]] || die "${FUNCNAME[0]}: incorrect release '$release'" - echo "https://ftp.tu-chemnitz.de/pub/tug/historic/systems/texlive/${release}/tlnet-final/" + url="https://ftp.tu-chemnitz.de/pub/tug/historic/systems/texlive/${release}/tlnet-final/" # the rolling release is missing the shasum, and the tlnet directory # US mirror: http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${release}/ fi -} - -function deps-file() { - if [[ "$1" = [0-9][0-9][0-9][0-9] ]]; then - echo "texlive-$1.deps" - else - echo texlive.deps - fi -} -function texlive-release() { - tlmgr --version \ - | grep 'TeX Live .*version' \ - | grep --only-matching '\d\d\d\d' + # resolve possible mirror to fixed URL + curl -LIs -o /dev/null -w '%{url_effective}' "$url" } -# Ensure meaningful default values for required environment variables. -# Override the full repository URL or set TEXLIVE_RELEASE to pick that year's frozen release. -# Defaults to the current rolling release. -: "${TEXLIVE_RELEASE:=rolling}" -: "${TEXLIVE_REPOSITORY:="$(texlive-repo "$TEXLIVE_RELEASE")"}" -: "${TEXLIVE_TARBALL:=install-tl-unx.tar.gz}" - function get-texlive-installer() { + [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME[0]} texlive-repo-url" + local repo="$1" + # download, checksum, extract - curl --silent --location --remote-name-all "${TEXLIVE_REPOSITORY}/${TEXLIVE_TARBALL}"{,.sha512} - shasum --check "${TEXLIVE_TARBALL}.sha512" + curl --silent --location --remote-name-all "${repo}/${TEXLIVE_TARBALL}"{,.sha512} + sha512sum --check "${TEXLIVE_TARBALL}.sha512" tar --extract --gzip --file "${TEXLIVE_TARBALL}" } function texlive-profile() { cat <> texlive.profile - "$installer" --repository "$TEXLIVE_REPOSITORY" --profile texlive.profile -} + "$installer" --repository "$repo" --profile texlive.profile + tlmgr option repository "$repo" -function install-deps() { - xargs tlmgr install \ - latexmk \ - < "$(deps-file "$TEXLIVE_RELEASE")" + tlmgr update --self --all + tlmgr install latex-bin latexmk } # Only call the main function if this script was called as a command. This makes # it possible to source this script as a library. if [[ ${BASH_SOURCE[0]} == "$0" ]]; then - install-texlive - install-deps + # Override the full repository URL or set TEXLIVE_RELEASE to pick that year's frozen release. + # Defaults to the current rolling release. + release="${1:-${TEXLIVE_RELEASE:-rolling}}" + repo="${2:-${TEXLIVE_REPOSITORY:-$(texlive-repo "$release")}}" + + install-texlive "$release" "$repo" fi diff --git a/archetypes/bod-book/support/latex/sbabook/ci/list-deps b/archetypes/bod-book/support/latex/sbabook/ci/list-deps new file mode 100755 index 00000000..25dd1b8a --- /dev/null +++ b/archetypes/bod-book/support/latex/sbabook/ci/list-deps @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +set -o nounset +set -o errexit +set -o errtrace +set -o pipefail +IFS= +trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR + +shopt -s extglob +declare -A DEPS + +: "${TEXLIVE_REPOSITORY:=http://mirror.ctan.org/systems/texlive/tlnet}" +TEXLIVE_REPOSITORY="$(curl -LIs -o /dev/null -w '%{url_effective}' "$TEXLIVE_REPOSITORY")" +PREFIX="$(kpsewhich --var-value TEXMFROOT)" + +function die { + local code="${1:-1}" + [[ $# -ge 1 ]] && shift + + printf "$(tput setaf 1)%s$(tput sgr0)\n" "$@" 1>&2 + exit "$code" +} + +function info-inline { + printf "$(tput setaf 3)%s$(tput sgr0)" "$@" 1>&2 +} + +function info { + info-inline "$@" + printf "\n" 1>&2 +} + +function texlive-release() { + tlmgr --version \ + | sed '/^tlmgr/d ; s/.*version //' +} + +function filter-inputs { + sed -e '\#^INPUT '"$PREFIX"'/texmf-dist#!d' \ + -e 's#^INPUT '"$PREFIX"'/##' \ + "$@" +} + +function query-package-containing { + local filename="${1?}" + tlmgr --repository "$TEXLIVE_REPOSITORY" \ + search --global --file "$filename" \ + | sed '/^\t/d ; /^tlmgr:/d ; s/:$//' +} + +function list-package-files { + local pkgname="${1?}" + tlmgr --repository "$TEXLIVE_REPOSITORY" \ + info --list "$pkgname" \ + | sed '/^ /!d ; s/^ *//' +} + +function encache-file { + local filename="${1?}" pkgname + pkgname="$(query-package-containing "${filename}")" + while read -r provided; do + DEPS["$provided"]="$pkgname" + done < <(list-package-files "$pkgname") +} + +function package-name { + local filename="${1?}" + info-inline "$filename" + if [[ -z "${DEPS["$filename"]+found}" ]]; then + info " (querying ${TEXLIVE_REPOSITORY})" + encache-file "$filename" + echo "${DEPS["$filename"]}" || info "failed to resolve ${filename}" + else + info " (from ${DEPS[$filename]})" + fi +} + +function find-packages { + while read -r filename; do + package-name "$filename" + done +} + +function list-deps { + local main="${1:-main}" + main="${main%.@(tex|aux|fls)}" # extglob + [[ -f "$main.fls" ]] || die 1 "no such file: $main.fls" + + filter-inputs "$main.fls" | sort --unique > "$main.inputs" + info "$(wc -l "$main.inputs")" + + find-packages < "$main.inputs" | tee "$main.deps" + sort --unique --output "$main.deps" "$main.deps" +} + +# Only call the main function if this script was called as a command. This makes +# it possible to source this script as a library. +if [[ ${BASH_SOURCE[0]} == "$0" ]]; then + list-deps "$@" +fi diff --git a/archetypes/bod-book/support/latex/sbabook/sbabook.bod.tex b/archetypes/bod-book/support/latex/sbabook/sbabook.bod.tex new file mode 100644 index 00000000..a1617eb8 --- /dev/null +++ b/archetypes/bod-book/support/latex/sbabook/sbabook.bod.tex @@ -0,0 +1,2 @@ +% Paper format for https://librairie.bod.fr +\providecommand{\setuppage}{\bodpage}\input{sbabook} diff --git a/archetypes/bod-book/support/latex/sbabook/sbabook.bod.cls b/archetypes/bod-book/support/latex/sbabook/sbabook.cls similarity index 96% rename from archetypes/bod-book/support/latex/sbabook/sbabook.bod.cls rename to archetypes/bod-book/support/latex/sbabook/sbabook.cls index e6ec4227..2337e088 100644 --- a/archetypes/bod-book/support/latex/sbabook/sbabook.bod.cls +++ b/archetypes/bod-book/support/latex/sbabook/sbabook.cls @@ -1,7 +1,6 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{sbabook}[2020/02/28] +\ProvidesClass{sbabook}[2024/03/18] -% \ExecuteOptions{a4paper,11pt,twoside} \ProcessOptions* \LoadClassWithOptions{memoir} @@ -20,19 +19,30 @@ \advance\stockheight 2\trimtop \advance\stockwidth 2\trimedge} +% Paper format for US trade paperback (e.g. Lulu) \newcommand{\paperbackpage}{ \stockustrade \setbleed{.125in} % \setbinding{5mm} \setlrmarginsandblock{.85in}{.65in}{*} \setulmarginsandblock{.75in}{.75in}{*}} - + +% Paper format for office binding (both A4 and letter paper) \newcommand{\spiralboundpage}{ \stockaivus \setbleed{0pt}% trims not required (unless we deliver this via Lulu as well?) \setlrmarginsandblock{1.25in}{1.25in}{*} \setulmarginsandblock{.75in}{1in}{*}} +% Paper format for https://librairie.bod.fr +\newcommand{\bodpage}{ + \setstocksize{220mm}{155mm} % final trimmed book dimensions + \setbleed{5mm} % additional paper, before trimming + \setlrmarginsandblock{.85in}{.65in}{*} + \setulmarginsandblock{.75in}{.75in}{*}} + +% Use this to select the page layout. +% Pass one of the above \FOOpage, or an equivalent custom macro \newcommand{\pagelayout}[1]{ \providecommand{\setuppage}{#1}% set default page layout \setuppage\checkandfixthelayout @@ -42,20 +52,12 @@ \raggedbottom -%%for www.BOD.fr -\newcommand{\bodpage}{ - \setstocksize{220mm}{155mm} % final trimmed book dimensions - \setbleed{5mm} % additional paper, before trimming - \setlrmarginsandblock{.85in}{.65in}{*} - \setulmarginsandblock{.75in}{.75in}{*}} -\pagelayout{\bodpage} - %%% %%% Fonts & paragraph typography %%% -\RequirePackage{fontspec,gentium,opensans,FiraMono} +\RequirePackage{fontspec,gentiumbook,opensans,FiraMono} -\setmainfont{Gentium Book Basic} +\setmainfont{Gentium Book Plus} \setsansfont{Open Sans}[ \@ifpackagelater{opensans}{2019/06/19}% test for font naming bug {}% 2019/06/20 fixed it @@ -500,7 +502,6 @@ %% verbatim setup \bvtopandtail % \bvsides \setlength{\bvboxsep}{.25em} -\tabson[4] \setverbatimfont{\normalfont\codefamily\small} \DeclareRobustCommand{\LaTeX}{% diff --git a/archetypes/bod-book/support/latex/sbabook/sbabook.spiral.tex b/archetypes/bod-book/support/latex/sbabook/sbabook.spiral.tex index 2327175d..630cda9f 100644 --- a/archetypes/bod-book/support/latex/sbabook/sbabook.spiral.tex +++ b/archetypes/bod-book/support/latex/sbabook/sbabook.spiral.tex @@ -1 +1,2 @@ +% Paper format for office binding (A4 or letter paper) \providecommand{\setuppage}{\spiralboundpage}\input{sbabook} diff --git a/archetypes/bod-book/support/latex/sbabook/sbabook.tex b/archetypes/bod-book/support/latex/sbabook/sbabook.tex index d66f4e88..70ce50b3 100644 --- a/archetypes/bod-book/support/latex/sbabook/sbabook.tex +++ b/archetypes/bod-book/support/latex/sbabook/sbabook.tex @@ -1,13 +1,8 @@ -\documentclass[twoside,openany,showtrims]{sbabook.bod} +\documentclass[twoside,openany,showtrims]{sbabook} -%\pagelayout{\paperbackpage} - -\newcommand{\bodpage}{ - \setstocksize{220mm}{155mm} % final trimmed book dimensions - \setbleed{5mm} % additional paper, before trimming - \setlrmarginsandblock{.85in}{.65in}{*} - \setulmarginsandblock{.75in}{.75in}{*}} -\pagelayout{\bodpage} +% Setup paper format. +% Defaults to US trade paperback unless another format is already setup (see sbabook.*.tex) +\pagelayout{\paperbackpage} \usepackage[useregional]{datetime2} diff --git a/archetypes/bod-book/support/latex/sbabook/texlive-2023.deps b/archetypes/bod-book/support/latex/sbabook/texlive-2023.deps new file mode 100644 index 00000000..6451341b --- /dev/null +++ b/archetypes/bod-book/support/latex/sbabook/texlive-2023.deps @@ -0,0 +1,70 @@ +auxhook +bigintcalc +bitset +booktabs +cm +ctablestack +datetime2 +datetime2-english +environ +epstopdf-pkg +eso-pic +etoolbox +fira +fontaxes +fontspec +footmisc +gentium-tug +gettitlestring +gitinfo2 +graphics +graphics-cfg +graphics-def +hycolor +hyperref +iftex +infwarerr +intcalc +kvdefinekeys +kvoptions +kvsetkeys +l3backend +l3kernel +l3packages +latex +latexconfig +listings +ltxcmds +lua-uni-algos +lualibs +luaotfload +luatexbase +memoir +mptopdf +multirow +opensans +pdfcol +pdfescape +pdftexcmds +pgf +polyglossia +ragged2e +refcount +rerunfilecheck +stringenc +tcolorbox +tex-ini-files +textcase +tikzfill +tools +tracklang +trimspaces +unicode-data +uniquecounter +url +varwidth +xcolor +xkeyval +xpatch +xstring +xtab diff --git a/archetypes/bod-book/support/latex/sbabook/texlive.deps b/archetypes/bod-book/support/latex/sbabook/texlive.deps deleted file mode 100644 index 82efeada..00000000 --- a/archetypes/bod-book/support/latex/sbabook/texlive.deps +++ /dev/null @@ -1,34 +0,0 @@ -ctablestack -datetime2 -datetime2-english -environ -eso-pic -filehook -fira -fontspec -footmisc -gentium-tug -gitinfo2 -graphics -hyphen-english -import -listings -luatexbase -memoir -multirow -opensans -pgf -polyglossia -tcolorbox -tools -tracklang -trimspaces -ulem -varwidth -xcolor -xstring -xtab - -fontaxes -ragged2e -textcase diff --git a/archetypes/bod-book/support/latex/sbabook/texlive.deps b/archetypes/bod-book/support/latex/sbabook/texlive.deps new file mode 120000 index 00000000..de02d411 --- /dev/null +++ b/archetypes/bod-book/support/latex/sbabook/texlive.deps @@ -0,0 +1 @@ +texlive-2023.deps \ No newline at end of file