Compare commits

..

No commits in common. "master" and "fast-groupthm" have entirely different histories.

57 changed files with 253 additions and 490 deletions

18
.ci/ci_build.sh Executable file
View file

@ -0,0 +1,18 @@
set -e
cd .ci
export COMMIT_MSG=$(python3 print_deploy_message.py)
cd ..
make ci-build
cd build/LatexPackagesBuild
git add .
git commit -m "${COMMIT_MSG}" || echo "Nothing new to commit"
git push --set-upstream origin ${CI_COMMIT_REF_NAME}-build
cd ../..
mkdir -p ~/texmf/tex/latex
cp -r build/LatexPackagesBuild ~/texmf/tex/latex
make doc
cd build
mv LatexPackagesBuild LatexPackages
zip -r LatexPackages.zip LatexPackages/ -x '*.git*'
zip -r LatexPackagesDocumentation.zip documentation
tree -H '.' -I "index.html" -D --charset utf-8 -T "LatexPackages" > index.html

View file

@ -1,17 +1,12 @@
set -e set -e
eval $(ssh-agent -s)
echo "$GITLAB_DEPLOY_KEY" | base64 -d | tr -d '\r' | ssh-add - > /dev/null
# Set up ssh private key
mkdir -p ~/.ssh mkdir -p ~/.ssh
chmod 700 ~/.ssh chmod 700 ~/.ssh
echo "$DEPLOY_SSH_KEY" > ~/.ssh/id_ed25519 ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
chmod 600 ~/.ssh/id_ed25519
# Set up remote host key fingerprint
echo "git.abstractnonsen.se ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAufJTq206GOv0D8gHs2o3eDusLNWaB0U7JRhUYnux9B" >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts chmod 644 ~/.ssh/known_hosts
git config --global user.email "git@maximilian-kessler.de" git config --global user.email "git@maximilian-kessler.de"
git config --global user.name "Maximilian Keßler (via gitlab runner)" git config --global user.name "Maximilian Keßler (via gitlab runner)"
echo "Successfully added ssh deploy keys"

View file

@ -14,6 +14,6 @@ def get_deploy_message(repo):
"\n" \ "\n" \
"Build branch {branch} ({hexsha}) from {repo_name}" \ "Build branch {branch} ({hexsha}) from {repo_name}" \
.format(old_msg=old_msg, .format(old_msg=old_msg,
branch=os.environ['REF_NAME'], branch=os.environ['CI_COMMIT_REF_NAME'],
hexsha=get_latest_commit(repo).hexsha[0:7], hexsha=get_latest_commit(repo).hexsha[0:7],
repo_name='latex/latex-packages') repo_name='kesslermaximilian/LatexPackages')

View file

@ -1,14 +0,0 @@
set -e
# set up deploy message
cd .ci
export COMMIT_MSG=$(python3 print_deploy_message.py)
cd ..
# push pages to build repository
cd build/packages
git add .
git commit -m "${COMMIT_MSG}" || echo "Nothing new to commit"
git remote set-url origin --push git@git.abstractnonsen.se:latex/latex-packages-build
git push --set-upstream origin ${REF_NAME}-build
cd ../..

View file

@ -1,13 +1,13 @@
# ! /bin/sh # ! /bin/sh
set -e set -e
ssh git@gitlab.com
cd build/packages git clone git@gitlab.com:latexci/packages/LatexPackagesBuild.git build/LatexPackagesBuild
cd build/LatexPackagesBuild
REMOTE_BRANCH=$(git branch -a | sed -n '/remotes\/origin\/.*-build/p' | sed 's/remotes\/origin\///g' | sed 's/-build//g' | sed 's/[[:space:]]//g' | sed -n "/^${REF_NAME}$/p") REMOTE_BRANCH=$(git branch -a | sed -n '/remotes\/origin\/.*-build/p' | sed 's/remotes\/origin\///g' | sed 's/-build//g' | sed 's/[[:space:]]//g' | sed -n "/^${CI_COMMIT_REF_NAME}$/p")
echo ${REMOTE_BRANCH} echo ${REMOTE_BRANCH}
if [ "$REMOTE_BRANCH" = "" ]; then if [ "$REMOTE_BRANCH" = "" ];then
echo "This is the first build on this branch, creating new branch in build repository to push to" echo "This is the first build on this branch, creating new branch in build repository to push to"
git checkout --orphan ${CI_COMMIT_REF_NAME}-build git checkout --orphan ${CI_COMMIT_REF_NAME}-build
ls -ra | sed '/^\.git$/d' | sed '/^\.\.$/d' | sed '/^\.$/d' | xargs -r git rm --cached ls -ra | sed '/^\.git$/d' | sed '/^\.\.$/d' | sed '/^\.$/d' | xargs -r git rm --cached

View file

@ -1,81 +0,0 @@
name: Build LaTeX packages
on: [push]
jobs:
build:
runs-on: latex-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # We need all history to correctly parse tag names
fetch-tags: true
- name: Setup git credentials and committer
run: .ci/configure_git.sh
env:
DEPLOY_SSH_KEY: ${{ secrets.deploy_ssh_key }}
- name: Clone build repository
uses: actions/checkout@v4
with:
repository: latex/latex-packages-build
path: build/packages
ref: master
- name: Checkout correct branch in build repository
run: |
.ci/setup_build_repo_branch.sh
env:
REF_NAME: ${{ github.ref_name }}
- name: Build packages incrementally
run: make
- name: Push packages to build repo
run: |
.ci/deploy_to_build_repo.sh
env:
REF_NAME: ${{ github.ref_name }}
- name: Clean up git files from build repo
if: github.ref == 'refs/heads/master'
run: rm -rf build/packages/.git
- name: Save built packages to cache
if: github.ref == 'refs/heads/master'
uses: actions/cache/save@v3
with:
path: build/packages/
key: ${{ github.ref }}-packages
pages:
runs-on: latex-latest
needs: build
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Load package cache
uses: actions/cache/restore@v3
with:
path: build/packages/
key: ${{ github.ref }}-packages
- name: Load compilation cache
uses: actions/cache/restore@v3
with:
path: .compile
key: ${{ github.ref }}-doc
- name: Compile documentation
run: make doc
env:
TEXINPUTS: '${{ github.workspace }}/build/packages//:'
- name: Prepage pages
run: |
cd build
rm -rf packages/.git # Don't deploy the git files
zip -r latex-packages.zip packages/ -x '*.git*'
zip -r latex-packages-doc.zip doc/
- name: Deploy to pages
uses: actions/pages@v1
with:
directory: build/
- name: Upload compilation cache
uses: actions/cache/save@v3
with:
path: .compile
key: ${{ github.ref }}-doc

44
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,44 @@
stages:
- get
- build
- pages
get-build-repo:
stage: get
before_script:
- source .ci/configure_git.sh
script:
- echo "Getting old Build repo..."
- .ci/get_build_repo_from_origin.sh
artifacts:
paths:
- build/
tags:
- latex
build-packages:
stage: build
before_script:
- source .ci/configure_git.sh
script:
- echo "Building packages incrementally..."
- sh .ci/ci_build.sh
variables:
GIT_SUBMODULE_STRATEGY: recursive
artifacts:
paths:
- build/
tags:
- latex
pages:
stage: pages
artifacts:
paths:
- public/
script:
- mv build/ public/
tags:
- latex
only:
- master

View file

@ -1,29 +1,11 @@
# Makefile for latex-packages
BUILD_DIR=build
DOC_SUBDIR=doc
PACKAGES_SUBDIR=packages
COMPILE_SUBDIR=.compile
BUILD_FLAGS=--recursive --git-version --pytex-version --license --author "Maximilian Keßler" --pytex-info-text --extra-header ".build/header_info.txt" --name "prepend-author" --clean-old-files BUILD_FLAGS=--recursive --git-version --pytex-version --license --author "Maximilian Keßler" --pytex-info-text --extra-header ".build/header_info.txt" --name "prepend-author" --clean-old-files
BUILD_DIRS= --source-dir src --build-dir build
ROOT=$(shell pwd)
BUILD_ROOT=${ROOT}/${BUILD_DIR}
# Build packages
build: .initsubmodulelock build: .initsubmodulelock
python3 build.py --source-dir src --build-dir ${BUILD_ROOT}/${PACKAGES_SUBDIR} ${BUILD_FLAGS} @python3 build.py ${BUILD_DIRS} ${BUILD_FLAGS}
# Build packages and allow repo to be dirty (use with caution and only when developing)
dirty: .initsubmodulelock dirty: .initsubmodulelock
python3 build.py --source-dir src --build-dir ${BUILD_ROOT}/${PACKAGES_SUBDIR} ${BUILD_FLAGS} --allow-dirty @python3 build.py ${BUILD_DIRS} ${BUILD_FLAGS} --allow-dirty
# generate documentation files from /doc
doc:
@scripts/compile_doc.sh
@mkdir -p ${BUILD_ROOT}/${DOC_SUBDIR}
@cp .compile/*.pdf ${BUILD_ROOT}/${DOC_SUBDIR}
@echo Documentation files written to ${BUILD_ROOT}/${DOC_SUBDIR}
init: .initsubmodulelock .gitconfiglock init: .initsubmodulelock .gitconfiglock
@ -45,9 +27,12 @@ all: clean build
clean: clean:
@-rm -r build/ @-rm -r build/
@-rm -r .compile/
ci-build:
@python3 build.py --source-dir src --build-dir build/LatexPackagesBuild ${BUILD_FLAGS}
doc:
@-rm -r build/documentation
$(MAKE) -C doc central-doc
.PHONY: build doc .PHONY: build doc
#!/bin/bash
# Compiles all correspondence letters in repository

View file

@ -11,11 +11,11 @@ Mostly, they are available as a repository so that
- This motivates me to keep things organized - This motivates me to keep things organized
## Usage ## Usage
If you want to use these, just clone [latex-packages-build][lp-build] into your `~/texmf/tex/latex` directory, and you are ready to go. If you want to use these, just clone [LatexPackagesBuild](https://gitlab.com/latexci/packages/LatexPackagesBuild) into your `~/texmf/tex/latex` directory, and you are ready to go.
The builds are also available as single files or as zip at the [pages][pages]. The builds are also available as single files or as zip at [GitLab pages](https://latexci.gitlab.io/packages/LatexPackages).
## Documentation ## Documentation
See the `documentation` folder (or zip file) at [pages][pages] for documentation to most of the packages. See the `documentation` folder (or zip file) at [GitLab pages](https://latexci.gitlab.io/packages/LatexPackages) for documentation to most of the packages.
## Bugs ## Bugs
As already mentioned, not all of these are intended for generic use. If you however feel like this should be the case, feel free to point out bugs or troubles when using these here at GitHub or to me directly. As already mentioned, not all of these are intended for generic use. If you however feel like this should be the case, feel free to point out bugs or troubles when using these here at GitHub or to me directly.
@ -27,9 +27,3 @@ Feel free to send pull requests if you have suggestions for improvements.
This is free software. This is free software.
Prior to version 2.6 this has been MIT-licensed. Starting with version 1.6 this is licensed under the LPPL and/or the GPLv3. Prior to version 2.6 this has been MIT-licensed. Starting with version 1.6 this is licensed under the LPPL and/or the GPLv3.
See `LICENSE.md` for further details. See `LICENSE.md` for further details.
The `quiver.sty` package here is taken from [varkor/quiver][quiver] and licensed under the MIT License. It is redistributed unchanged for dependency reasons of my projects.
[pages]: https://latex.users.abstractnonsen.se/latex-packages
[lp-build]: https://git.abstractnonsen.se/latex/latex-packages-build
[quiver]: https://github.com/varkor/quiver

12
doc/DIR_MAKEFILE Normal file
View file

@ -0,0 +1,12 @@
TOPTARGETS := all clean doc full central-doc
SUBDIRS := $(wildcard */.)
$(TOPTARGETS): $(SUBDIRS)
$(SUBDIRS):
$(MAKE) -C $@ $(MAKECMDGOALS)
central-doc: $(SUBDIRS)
mv *.pdf ..
.PHONY: $(TOPTARGETS) $(SUBDIRS)

11
doc/DOC_MAKEFILE Normal file
View file

@ -0,0 +1,11 @@
doc:
latexmk
full:
latexmk -gg
clean:
latexmk -C
central-doc: full
mv *.pdf ..

View file

@ -1,10 +1,3 @@
# This is the .latexmkrc file that needs to be used for compiling the documentation
# Note that the makeindex command is non-standard and follows the LaTeX3 architecture
# Without this, generating the indexes properly will not work and leads to compiling
# errors.
# When adding new packages, this should be symlinked to in each new directory,
# so that a call to latexmk will automatically use these options
$makeindex = 'makeindex -s gind.ist %O -o %D %S'; $makeindex = 'makeindex -s gind.ist %O -o %D %S';
$clean_ext .= ' glo'; $clean_ext .= ' glo';
$clean_ext .= ' hd'; $clean_ext .= ' hd';

13
doc/Makefile Normal file
View file

@ -0,0 +1,13 @@
TOPTARGETS := all clean doc full central-doc
SUBDIRS := $(wildcard */.)
$(TOPTARGETS): $(SUBDIRS)
$(SUBDIRS):
$(MAKE) -C $@ $(MAKECMDGOALS)
central-doc: $(SUBDIRS)
mkdir -p ../build/documentation
mv *.pdf ../build/documentation
.PHONY: $(TOPTARGETS) $(SUBDIRS)

1
doc/environments/Makefile Symbolic link
View file

@ -0,0 +1 @@
../DIR_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/indexing/Makefile Symbolic link
View file

@ -0,0 +1 @@
../DIR_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/indexing/vocab/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/Makefile Symbolic link
View file

@ -0,0 +1 @@
../DIR_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/faktor/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/mathalias/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/mathfig/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/mathfixes/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/mathfont/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/mathop/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/math/mathsymb/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/wrappers/Makefile Symbolic link
View file

@ -0,0 +1 @@
../DIR_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/wrappers/math/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

1
doc/wrappers/todo/Makefile Symbolic link
View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

View file

@ -0,0 +1 @@
../../DOC_MAKEFILE

View file

@ -1,8 +0,0 @@
#! /bin/bash
# Compiles all documentation files in repository
set -e
BUILD_COMMAND="latexmk -output-directory=$(pwd)/.compile $1"
find doc -type f -name "*.tex" -execdir sh -c "$BUILD_COMMAND" -- {} \;

View file

@ -0,0 +1,10 @@
pdf:
latexmk
full:
latexmk -gg
clean:
latexmk -C
.PHONY: clean

View file

@ -64,6 +64,7 @@
% \subsection{Dependencies} % \subsection{Dependencies}
% \begin{macrocode} % \begin{macrocode}
\RequirePackage{l3keys2e} \RequirePackage{l3keys2e}
\RequirePackage{groupthm}
\RequirePackage[default styles]{thmstyle} \RequirePackage[default styles]{thmstyle}
% \end{macrocode} % \end{macrocode}
% %
@ -237,21 +238,10 @@
% \cs{counter_alias:nn}\marg{counter_1}\marg{counter_2} % \cs{counter_alias:nn}\marg{counter_1}\marg{counter_2}
% \end{syntax} % \end{syntax}
% %
% Note that since 2022-06-02, the implementation of \cs{@counteralias} %
% in \pkg{thmtools} has changed.
% Before, aliasing an already existing counter did not throw an error,
% which is considered a bug now
% (\href{https://github.com/muzimuzhi/thmtools/issues/28}{https://github.com/muzimuzhi/thmtools/issues/28}).
% Since \pkg{!!} relies on the old functionality,
% we adapt this here by undefining \cs{c@\meta{countername}} before calling
% \cs{@counteralias}.
% %
% \begin{macrocode} % \begin{macrocode}
\cs_new:Npn \counter_alias:nn #1 % trailing #2 \cs_set_eq:Nc \counter_alias:nn { @counteralias }
{
\cs_undefine:c { c@ #1 }
\use:c { @counteralias } { #1 } % implicit #2
}
\cs_generate_variant:Nn \counter_alias:nn { n x } \cs_generate_variant:Nn \counter_alias:nn { n x }
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
@ -359,22 +349,6 @@
% \end{macrocode} % \end{macrocode}
% \end{variable} % \end{variable}
% %
%
%
% \begin{variable}{\g_@@_groupthm_option_clist}
%
%
%
% \begin{macrocode}
\clist_new:N \g_@@_groupthm_option_clist
% \end{macrocode}
% \end{variable}
%
%
%
%
%
%
% \subsection{Key interface} % \subsection{Key interface}
% %
% \begin{texnote} % \begin{texnote}
@ -388,32 +362,22 @@
% \begin{macrocode} % \begin{macrocode}
\keys_define:nn { fancythm } \keys_define:nn { fancythm }
{ {
translator .bool_set:N = \g_@@_translator_bool , translator .bool_set:N = \g_@@_translator_bool ,
translator .default:n = { true } , translator .default:n = { true } ,
generate defaults .bool_set:N = \g_@@_generate_defaults_bool , generate defaults .bool_set:N = \g_@@_generate_defaults_bool ,
generate defaults .default:n = { true } , generate defaults .default:n = { true } ,
number in .choices:nn = number in .choices:nn =
{ document, section, subsection, chapter, part } { document, section, subsection, chapter, part }
{ {
\counter_alias:nx { toplevel } { in \tl_use:N \l_keys_choice_tl } \counter_alias:nx { toplevel } { in \tl_use:N \l_keys_choice_tl }
} , } ,
number in .default:n = { document } , number in .default:n = { document } ,
style .choices:nn = style .choices:nn =
{ fancy, plain, classic } { fancy, plain, classic }
{ {
\str_set:Nn \g_@@_style_str { \tl_use:N \l_keys_choice_tl } \str_set:Nn \g_@@_style_str { \tl_use:N \l_keys_choice_tl }
} , } ,
style .default:n = { fancy } , style .default:n = { fancy } ,
cache .code:n =
{
\clist_put_right:Nn \g_@@_groupthm_option_clist { cache = #1 }
} ,
cache .default:n = { true } ,
cache version .code:n =
{
\clist_put_right:Nn \g_@@_groupthm_option_clist { cache version = #1 }
} ,
cache version .default:n = { 0 } ,
} }
% \end{macrocode} % \end{macrocode}
% %
@ -444,26 +408,6 @@
\ProcessKeysOptions{ fancythm } \ProcessKeysOptions{ fancythm }
% \end{macrocode} % \end{macrocode}
% %
% \begin{macro}{\@@_require_package:nn}
%
%
% \begin{macrocode}
\cs_new:Npn \@@_require_package:nn #1
{
\RequirePackage [ #1 ]
}
\cs_generate_variant:Nn \@@_require_package:nn { V n }
% \end{macrocode}
% \end{macro}
%
%
%
%
% \begin{macrocode}
\@@_require_package:Vn \g_@@_groupthm_option_clist { groupthm }
% \end{macrocode}
% %
% %
% %
@ -577,10 +521,10 @@
{ new, provide } { new, provide }
{ fancythm_#1_theorem:nnnn } { fancythm_#1_theorem:nnnn }
{ {
\use:c { groupthm_#1_family:nnnnn } { ##1 } { dagger, star, nobraces } { ##3 } { ##4 } { ##2 } \use:c { groupthm_#1_family:nnnnn } { ##1 } { dagger, star } { ##3 } { ##4 } { ##2 }
\use:c { groupthm_#1_family_options:nnnn } \use:c { groupthm_#1_family_options:nnnn }
{ ##1 } { ##1 }
{ !s !t+ !t-} { !s !t+ }
{ {
\IfBooleanT { ####1 } \IfBooleanT { ####1 }
{ {
@ -590,10 +534,6 @@
{ {
\AddTheoremToGroup { dagger } \AddTheoremToGroup { dagger }
} }
\IfBooleanT { ####3 }
{
\AddTheoremToGroup { nobraces }
}
} }
{ ##2 } { ##2 }
} }
@ -701,14 +641,12 @@
% %
% %
% \begin{macrocode} % \begin{macrocode}
\declaretheoremstyle[notebraces={{}{}}]{nobraces}
\groupthm_new_group:nnnnn { star } { } { * } { } { } \groupthm_new_group:nnnnn { star } { } { * } { } { }
\groupthm_new_group:nnnnn { dagger } { } { $^{\dagger}$ } { } { } \groupthm_new_group:nnnnn { dagger } { } { $^{\dagger}$ } { } { }
\groupthm_new_group:nnnnn { big } { } { } { } { sibling = toplevel } \groupthm_new_group:nnnnn { big } { } { } { } { sibling = toplevel }
\groupthm_new_group:nnnnn { small } { } { } { } { sibling = sublevel } \groupthm_new_group:nnnnn { small } { } { } { } { sibling = sublevel }
\groupthm_new_group:nnnnn { tiny } { } { } { } { numbered = no } \groupthm_new_group:nnnnn { tiny } { } { } { } { numbered = no }
\groupthm_new_group:nnnnn { custom } { } { } { } { sibling = sublevel } \groupthm_new_group:nnnnn { custom } { } { } { } { sibling = sublevel }
\groupthm_new_group:nnnnn { nobraces } { } { } { } { style = nobraces }
% \end{macrocode} % \end{macrocode}
% \end{variable} % \end{variable}
% %

View file

@ -0,0 +1,10 @@
pdf:
latexmk
full:
latexmk -gg
clean:
latexmk -C
.PHONY: clean

View file

@ -5,7 +5,7 @@
\keepsilent \keepsilent
\usedir{tex/latex/mkessler/groupthm} \usedir{tex/latex/mkessler/groupthm}
\askforoverwritefalse \askforoverwritefalse
\generate{\file{groupthm.sty}{\from{groupthm.dtx}{package}}} \generate{\file{groupthm.sty}{\from{groupthm.dtx}{package,benchmark}}}
\def\tmpa{plain} \def\tmpa{plain}
\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi \ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
\endgroup \endgroup
@ -2959,15 +2959,6 @@
% \end{macro} % \end{macro}
% %
% %
% \begin{macro}{\@@_cache_slow:n}
%
%
% \begin{macrocode}
\cs_set_eq:NN \@@_cache_slow:n \use_none:n
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\@@_lazy:n} % \begin{macro}{\@@_lazy:n}
% %
% %

View file

@ -46,27 +46,33 @@ __HEADER__(Automatic references to theorems in proofs. Claim counters within pro
%%%Now, we internally got a proof and a subproof environment %%%Now, we internally got a proof and a subproof environment
%%%Make them available as 'old' variants, with their defautl behaviour %%%Make them available as 'old' variants, with their defautl behaviour
\NewDocumentEnvironment{oldproof} { } \NewDocumentEnvironment{oldproof}{ o }
{ {
__PACKAGE_MACRO__(saved_proof:w) \IfValueTF { #1 }
} {
{ __PACKAGE_MACRO__(saved_proof:w) { #1 }
__PACKAGE_MACRO__(saved_endproof:) }
} {
__PACKAGE_MACRO__(saved_proof:w)
}
}
{
__PACKAGE_MACRO__(saved_endproof:)
}
\NewDocumentEnvironment{oldsubproof} { o } \NewDocumentEnvironment{oldsubproof}{ o }
{ {
\IfValueTF { #1 } \IfValueTF { #1 }
{ {
__PACKAGE_MACRO__(saved_subproof:n) { #1 } __PACKAGE_MACRO__(saved_subproof:n) { #1 }
} }
{ {
__PACKAGE_MACRO__(saved_subproof:n) { \translate { Subproof } } __PACKAGE_MACRO__(saved_subproof:n) { \translate { Subproof } }
} }
} }
{ {
__PACKAGE_MACRO__(saved_endsubproof:) __PACKAGE_MACRO__(saved_endsubproof:)
} }
%%% Main implementation %%% Main implementation

View file

@ -0,0 +1,10 @@
pdf:
latexmk
full:
latexmk -gg
clean:
latexmk -C
.PHONY: clean

View file

@ -80,13 +80,6 @@
% \end{function} % \end{function}
% %
% \section{Default styles} % \section{Default styles}
%
%
% The package has the option to provide some default styles.
% These can be loaded with the |default styles| (the space is optional)
% option, when loading the package.
%
%
% \subsection{colors} % \subsection{colors}
% %
% \begin{variable}{gold} % \begin{variable}{gold}
@ -268,11 +261,7 @@
rightline = false, rightline = false,
topline = false, topline = false,
bottomline = false, bottomline = false,
backgroundcolor = #3, backgroundcolor = #3
skipabove = 0.7\baselineskip,
skipbelow = 0pt,
innerrightmargin = 10pt,
innerbottommargin = 5pt
} }
{ {
#1 #1
@ -382,7 +371,6 @@
\DeclareFancyThmStyle[orange!10]{orange}[thmorangemarginandfill] \DeclareFancyThmStyle[orange!10]{orange}[thmorangemarginandfill]
\DeclareFancyThmStyle[blue!7]{blue}[thmbluemarginandfill] \DeclareFancyThmStyle[blue!7]{blue}[thmbluemarginandfill]
\DeclareFancyThmStyle{green!70!black}[thmgreenmargin] \DeclareFancyThmStyle{green!70!black}[thmgreenmargin]
\DeclareFancyThmStyle[green!10]{green!70!black}[thmgreenmarginandfill]
\DeclareFancyThmStyle{gold}[thmgoldmargin] \DeclareFancyThmStyle{gold}[thmgoldmargin]
\DeclareFancyThmStyle{yellow!80!orange}[thmyellowmargin] \DeclareFancyThmStyle{yellow!80!orange}[thmyellowmargin]
\DeclareFancyThmStyle{gray}[thmgraymargin] \DeclareFancyThmStyle{gray}[thmgraymargin]

View file

@ -1,8 +1,6 @@
__HEADER__(Declaring of math symbols with automatic indexing) __HEADER__(Declaring of math symbols with automatic indexing)
\@ifclassloaded{beamer}{}{ \RequirePackage{imakeidx}
\RequirePackage{imakeidx}
}
\RequirePackage{xparse} \RequirePackage{xparse}
% Keys used for declaring symbols % Keys used for declaring symbols
@ -37,15 +35,13 @@ __HEADER__(Declaring of math symbols with automatic indexing)
{ {
\bool_if:cF { used_#2 } \bool_if:cF { used_#2 }
{ {
\@ifclassloaded{beamer}{}{ \index[#1]
\index[#1] {
{ #7
#7 @
@ $#4{#5}#6$
$#4{#5}#6$ #3
#3 }
}
}
\bool_gset_true:c { used_#2 } \bool_gset_true:c { used_#2 }
} }
#4{#5} #4{#5}

View file

@ -21,25 +21,25 @@ __IF__(index)
%Emphasize \vocabulary %Emphasize \vocabulary
\RequirePackage{expl3} \RequirePackage{expl3}
\ExplSyntaxOn \ExplSyntaxOn
\NewDocumentCommand{\vocab}{O{} m}{% \NewDocumentCommand{\vocab}{O{} m}{
\textbf{\color{blue} #2}% \textbf{\color{blue} #2}%
\if\relax\detokenize{#1}\relax% \if\relax\detokenize{#1}\relax%
\index[vocabindex]{\text_titlecase_first:n{#2}} % true branch: #1 was empty \index[vocabindex]{\text_titlecase_first:n{#2}} % true branch: #1 was empty
\else% \else
\index[vocabindex]{#1} % false branch: #1 was supplied \index[vocabindex]{#1} % false branch: #1 was supplied
\fi% \fi
} }
\ExplSyntaxOff \ExplSyntaxOff
\newcommand\printvocabindex{% \newcommand\printvocabindex{
\printindex[vocabindex]% \printindex[vocabindex]
} }
\NewDocumentCommand{\PrintVocabIndex}{ } \NewDocumentCommand{\PrintVocabIndex}{ }
{% {
\printindex[vocabindex]% \printindex[vocabindex]
} }
\else \else
\NewDocumentCommand{\vocab}{O{} m }{% \NewDocumentCommand{\vocab}{O{} m }{
\textbf{\color{blue} #2}% \textbf{\color{blue} #2}
}% }
\fi \fi

View file

@ -8,7 +8,7 @@ __HEADER__(Definitions of categories with automatic indexing)%% Wrapper commands
\NewDocumentCommand{\category}{ m } \NewDocumentCommand{\category}{ m }
{ {
\operatorname{\textup{\textbf{#1}}} \operatorname{\textbf{#1}}
} }
@ -148,19 +148,6 @@ __HEADER__(Definitions of categories with automatic indexing)%% Wrapper commands
[ [
\translate{GrAb~(Category~description)} \translate{GrAb~(Category~description)}
] ]
\DeclareSimpleCategory
{ CGHaus }
[
\translate{CGHaus~(Category~description)}
]
\DeclareSimpleCategory
[
formula = S
]
{ SimplicialSet }
[
\translate{SimplicialSet~(Category~description)}
]
\DeclareCategory \DeclareCategory
[ [
operator = \operatorname, operator = \operatorname,

View file

@ -17,5 +17,3 @@ AffVar (Category description),Affine Varieties over $k$,Affine Varietäten über
Sch (Category description),Schemes and homomorphisms,Schemata und Homomorphismen Sch (Category description),Schemes and homomorphisms,Schemata und Homomorphismen
GrAb (Category description),Graded abelian groups and homomorphisms,Graduierte Gruppen und Homomorphismen GrAb (Category description),Graded abelian groups and homomorphisms,Graduierte Gruppen und Homomorphismen
Ordinal number category (Category description),Finite ordinal numbers and order-preserving maps,Endliche Ordinalzahlen und ordnungserhaltende Abbildungen Ordinal number category (Category description),Finite ordinal numbers and order-preserving maps,Endliche Ordinalzahlen und ordnungserhaltende Abbildungen
CGHaus (Category description), Compactly generated Hausdorff spaces and continuous maps, Kompakt erzeugte Hausdorffräume und stetige Abbildungen
SimplicialSet (Category description),|Functor category $[\OrdCat, \Set]$|,|Funktorkategorie $[\OrdCat, \Set]$|

View file

@ -8,7 +8,7 @@ __HEADER__(Math figures with TikZ / pgfplots / xy)
\pgfplotsset{compat=1.7} \pgfplotsset{compat=1.7}
\RequirePackage{tikz} % Plots / drawings \RequirePackage{tikz} % Plots / drawings
\usetikzlibrary{calc, intersections, through, quotes, angles, babel, positioning, snakes, decorations.markings} \usetikzlibrary{calc, intersections, through, quotes, angles, babel, positioning, snakes}
\RequirePackage{tikz-cd} %Commutative diagrams \RequirePackage{tikz-cd} %Commutative diagrams
\RequirePackage{xparse} \RequirePackage{xparse}
@ -42,31 +42,3 @@ __HEADER__(Math figures with TikZ / pgfplots / xy)
\NewDocumentCommand\pullback{ O{dr} }{ \NewDocumentCommand\pullback{ O{dr} }{
\arrow[phantom, pos=0.45]{#1}{\pullbacksymbol} \arrow[phantom, pos=0.45]{#1}{\pullbacksymbol}
} }
%% Fix for equal arrows in tikz, see
% https://tex.stackexchange.com/questions/443017/equal-arrows-without-transparent-ends-possible-in-tikzcd
\tikzset {
double line with arrow/.style args =
{#1,#2}%
{
decorate, decoration =
{
markings,
mark = at position 0 with
{
\coordinate (ta-base-1) at (0,1pt);
\coordinate (ta-base-2) at (0,-1pt);
}
,
mark = at position 1 with
{
\draw[#1] (ta-base-1) -- (0,1pt);
\draw[#2] (ta-base-2) -- (0,-1pt);
}
}
}
}
\tikzset{Equal/.style={-,double line with arrow={-,-}}}

View file

@ -43,19 +43,19 @@ __END_OPTIONS_X__
% The starred versions of the four commands will ignore the language option and print their % The starred versions of the four commands will ignore the language option and print their
% exact names (without the *, of course) % exact names (without the *, of course)
\DeclareMathOperator{\@__PACKAGE_PREFIX__ggT}{ggT} \DeclareMathOperator{\@__PACKAGE_PREFIX__ggT}{ggT}
\DeclareMathOperator{\@@__PACKAGE_PREFIX__ggT}{__IF__(english) gcd\else ggT\fi} \DeclareMathOperator{\@@__PACKAGE_PREFIX__ggT}{\if@__PACKAGE_PREFIX__english gcd\else ggT\fi}
\def\ggT{\@ifstar\@__PACKAGE_PREFIX__ggT\@@__PACKAGE_PREFIX__ggT} \def\ggT{\@ifstar\@__PACKAGE_PREFIX__ggT\@@__PACKAGE_PREFIX__ggT}
\DeclareMathOperator{\@__PACKAGE_PREFIX__gcd}{gcd} \DeclareMathOperator{\@__PACKAGE_PREFIX__gcd}{gcd}
\DeclareMathOperator{\@@__PACKAGE_PREFIX__gcd}{__IF__(english) gcd\else ggT\fi} \DeclareMathOperator{\@@__PACKAGE_PREFIX__gcd}{\if@__PACKAGE_PREFIX__english gcd\else ggT\fi}
\def\gcd{\@ifstar\@__PACKAGE_PREFIX__gcd\@@__PACKAGE_PREFIX__gcd} \def\gcd{\@ifstar\@__PACKAGE_PREFIX__gcd\@@__PACKAGE_PREFIX__gcd}
\DeclareMathOperator{\@__PACKAGE_PREFIX__kgV}{kgV} \DeclareMathOperator{\@__PACKAGE_PREFIX__kgV}{kgV}
\DeclareMathOperator{\@@__PACKAGE_PREFIX__kgV}{__IF__(english) lcm\else kgV\fi} \DeclareMathOperator{\@@__PACKAGE_PREFIX__kgV}{\if@__PACKAGE_PREFIX__english lcm\else kgV\fi}
\def\kgV{\@ifstar\@__PACKAGE_PREFIX__kgV\@@__PACKAGE_PREFIX__kgV} \def\kgV{\@ifstar\@__PACKAGE_PREFIX__kgV\@@__PACKAGE_PREFIX__kgV}
\DeclareMathOperator{\@__PACKAGE_PREFIX__lcm}{lcm} \DeclareMathOperator{\@__PACKAGE_PREFIX__lcm}{lcm}
\DeclareMathOperator{\@@__PACKAGE_PREFIX__lcm}{__IF__(english) lcm\else kgV\fi} \DeclareMathOperator{\@@__PACKAGE_PREFIX__lcm}{\if@__PACKAGE_PREFIX__english lcm\else kgV\fi}
\def\lcm{\@ifstar\@__PACKAGE_PREFIX__lcm\@@__PACKAGE_PREFIX__lcm} \def\lcm{\@ifstar\@__PACKAGE_PREFIX__lcm\@@__PACKAGE_PREFIX__lcm}
%Complex numbers %Complex numbers
@ -87,11 +87,9 @@ __END_OPTIONS_X__
\DeclareSimpleMathOperator{Tor} \DeclareSimpleMathOperator{Tor}
\DeclareSimpleMathOperator{MaxSpec} \DeclareSimpleMathOperator{MaxSpec}
\DeclareSimpleMathOperator{Sh} \DeclareSimpleMathOperator{Sh}
\DeclareSimpleMathOperator{PSh}
\DeclareSimpleMathOperator{Proj} \DeclareSimpleMathOperator{Proj}
\DeclareSimpleMathOperator{QCoh} \DeclareSimpleMathOperator{QCoh}
\DeclareSimpleMathOperator{Fun} \DeclareSimpleMathOperator{Fun}
\DeclareSimpleMathOperator{ord}
\DeclareMathOperator{\Nil}{\mathcal{N}il} \DeclareMathOperator{\Nil}{\mathcal{N}il}
\DeclareMathOperator{\Ouv}{\mathcal{O}uv} \DeclareMathOperator{\Ouv}{\mathcal{O}uv}
\DeclareMathOperator{\PreSh}{Pre-Sh} \DeclareMathOperator{\PreSh}{Pre-Sh}
@ -193,11 +191,6 @@ __END_OPTIONS_X__
\newcommand\abelianization{^{\ab}} \newcommand\abelianization{^{\ab}}
\NewDocumentCommand\set{m}
{
\left\{ #1 \right\}
}
%Taken from user egreg on %Taken from user egreg on
% https://tex.stackexchange.com/a/22255 % https://tex.stackexchange.com/a/22255
\newcommand\frestriction[2]{{% we make the whole thing an ordinary symbol \newcommand\frestriction[2]{{% we make the whole thing an ordinary symbol

View file

@ -42,4 +42,6 @@ __HEADER__(Some extra math-related symbols.)
% When dealing with chain complexes, one often uses a bullet as placeholder for the index to mean the whole chain: % When dealing with chain complexes, one often uses a bullet as placeholder for the index to mean the whole chain:
\newcommand\chainbullet{\bullet} \newcommand\chainbullet{\bullet}
\newcommand{\blank}{\text{--}}

View file

@ -1,62 +0,0 @@
%MIT License
%
% Copyright (c) 2018 varkor
%
% 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. *** quiver ***
%
%
% A package for drawing commutative diagrams exported from https://q.uiver.app.
%
% This package is currently a wrapper around the `tikz-cd` package, importing necessary TikZ
% libraries, and defining a new TikZ style for curves of a fixed height.
%
% Version: 1.2.1
% Authors:
% - varkor (https://github.com/varkor)
% - AndréC (https://tex.stackexchange.com/users/138900/andr%C3%A9c)
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{quiver}[2021/01/11 quiver]
% `tikz-cd` is necessary to draw commutative diagrams.
\RequirePackage{tikz-cd}
% `amssymb` is necessary for `\lrcorner` and `\ulcorner`.
\RequirePackage{amssymb}
% `calc` is necessary to draw curved arrows.
\usetikzlibrary{calc}
% `pathmorphing` is necessary to draw squiggly arrows.
\usetikzlibrary{decorations.pathmorphing}
% A TikZ style for curved arrows of a fixed height, due to AndréC.
\tikzset{curve/.style={settings={#1},to path={(\tikztostart)
.. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
.. (\tikztotarget)\tikztonodes}},
settings/.code={\tikzset{quiver/.cd,#1}
\def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
quiver/.cd,pos/.initial=0.35,height/.initial=0}
% TikZ arrowhead/tail styles.
\tikzset{tail reversed/.code={\pgfsetarrowsstart{tikzcd to}}}
\tikzset{2tail/.code={\pgfsetarrowsstart{Implies[reversed]}}}
\tikzset{2tail reversed/.code={\pgfsetarrowsstart{Implies}}}
% TikZ arrow styles.
\tikzset{no body/.style={/tikz/dash pattern=on 0 off 1mm}}
\endinput

View file

@ -1,34 +0,0 @@
__HEADER__(Hacky code setup for verbatim code)
__NEW_IF__(pipe,false)
\DeclareOption{pipe}{__SET_IF__(pipe,true)}
\ProcessOptions
% This is needed in general: when _ is active, we want it to expand to
% an actual _ character
\catcode`_=13
\let_\_
\catcode`_=8
\ExplSyntaxOn
\NewDocumentCommand{\code}{m}
{
\tl_set_rescan:Nnn \l_tmpa_tl
{
\char_set_catcode_active:N _
}
{ #1 }
\texttt{ \tl_use:N \l_tmpa_tl }
}
\ExplSyntaxOff
__IF__(pipe)
\catcode`|=\active
\def|#1|{
\code{#1}
}
% Do not make | active inside tables
\AddToHook{env/tabular/before}[code]{\catcode`|=12}
\AddToHook{env/tabular/after}[code]{\catcode`|=13}
\fi

View file

@ -9,18 +9,18 @@ __HEADER__(Easy standards for the todonotes package)
\setuptodonotes{tickmarkheight=0.1cm, size=\small} \setuptodonotes{tickmarkheight=0.1cm, size=\small}
\NewDocumentCommand\todoref{O{}}{ \newcommand\todoref{
\todo[color=red!40, #1]{Add reference.} \todo[color=red!40]{Add reference.}
} }
\NewDocumentCommand\todoquestion{O{}}{ \newcommand\todoquestion{
\todo[color=black!10, size=\tiny, #1] \todo[color=black!10, size=\tiny]
} }
\NewDocumentCommand\todotex{O{}}{ \newcommand\todotex{
\todo[color=green!75!black, #1] \todo[color=green!75!black]
} }
\NewDocumentCommand\todotypo{O{}}{ \newcommand\todotypo{
\todo[color=blue!40, size=\tiny, #1]{Typo corrected, double check this.} \todo[color=blue!40, size=\tiny]{Typo corrected, double check this.}
} }

View file

@ -1,16 +1,12 @@
\documentclass{minimal} \documentclass{minimal}
\usepackage[cache version = 1]{fancythm} \usepackage[cache]{groupthm}
\NewFancyTheorem{hello} \usepackage{fancythm}
\begin{document} \begin{document}
\begin{abuse} \begin{abuse}
\end{abuse} \end{abuse}
\begin{hello}
\end{hello}
\end{document} \end{document}

View file

@ -1,24 +0,0 @@
\documentclass[12pt]{article}
\usepackage[pipe]{mkessler-code}
\usepackage{mkessler-vocab}
\begin{document}
\begin{table}[htpb]
\centering
\begin{tabular}{c| c | c}
test & bla & \code{test_}
\end{tabular}
\caption{caption}
\label{tab:label}
\end{table}
\code{test__}
\vocab{| this is a test_|}
%| test ___|
\end{document}