LinAlg2/flake.nix

70 lines
2.0 KiB
Nix

{
description = "BSc LinAlg2 Mitschrift";
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
};
outputs = { self, nixpkgs }:
let
pkgs = import nixpkgs { system="x86_64-linux"; };
tex = (pkgs.texlive.combine {
inherit (pkgs.texlive)
scheme-medium
latexmk# My favorite tool for compiling
babel-german
booktabs
eso-pic
faktor
koma-script
listings
marvosym
mathdots
mathpunctspace
mathtools
metafont
cancel# Cancelling out stuff
cleveref# References with automatic names
collection-fontsextra# additional fonts
enumitem# fancier enumeration
environ# Needed for hiding proofs
forloop# Basically what the name says, repeated code
framed# Frames around envs
gitinfo2# Including commit hash in compiled PDF
etoolbox
harpoon# "Vector" arrow above glyphs
import# Used for importing svgs in LaTeX
lettrine# Fancy letters in the beginning of a paragraph
lipsum# lorem ipsum text
listingsutf8# Importing code files
minifp# Fixed point calculations, dependency for something else
ntheorem# Fancy theorem environments
pdfjam# Resize PDFs to other paper sizes
pgfplots# Easy graphs of functions
tcolorbox# colored boxes for pretty environments
tikzmark# markings in tikz images
verse# Prettier verse spacing
xstring# String manipulation etc, dependency for something else
;
});
in
{
defaultPackage."x86_64-linux" = pkgs.stdenvNoCC.mkDerivation rec {
src = self;
name = "LinAlg2";
buildInputs = with pkgs; [ gawk gnuplot tex coreutils findutils ];
buildPhase = ''
export HOME=.
export PATH="${pkgs.lib.makeBinPath buildInputs}";
mkdir -p .cache/texmf-var
env TEXMFHOME=.cache TEXMFVAR=.cache/texmfvar \
latexmk -pdf -f
'';
installPhase = ''
mkdir -p $out
cp LinAlg2.pdf $out/
'';
};
};
}