2023-10-13 15:57:53 +02:00
{
description = " A j u p y t e r f l a k e , w i t h a c u s t o m h a s k e l l k e r n e l a n d p r o p e r p d f l a t e x L a T e X e x p o r t s u p o p r t " ;
inputs = {
flake-utils . url = " g i t h u b : n u m t i d e / f l a k e - u t i l s " ;
} ;
outputs = { self , nixpkgs , flake-utils }:
flake-utils . lib . eachDefaultSystem ( sys :
let pkgs = import nixpkgs { system = sys ; } ;
2025-01-23 14:56:51 +01:00
python = pkgs . python311 ;
2023-10-13 15:57:53 +02:00
latex = pkgs . texlive . combine {
inherit ( pkgs . texlive )
scheme-basic # Base
tcolorbox pgf environ etoolbox pdfcol parskip caption float upquote eurosym ucs fancyvrb grffile adjustbox hyperref titling booktabs enumitem ulem soul rsfs jknapltx cm-super # Other packages needed by jupyter.
2023-10-15 11:15:04 +02:00
tikz-among-us ; # extra packages
2023-10-13 15:57:53 +02:00
} ;
jupyter-config = python . pkgs . buildPythonPackage rec {
name = " j u p y t e r - c o n f i g " ;
format = " o t h e r " ;
src = ./jupyter-config ;
installPhase = ''
find . - type f - exec sed - i ' s | <pdflatex> | $ { latex } /bin/pdflatex | g' { } +
mkdir - p $ out/etc/jupyter /
cp - r . $ out/etc/jupyter /
'' ;
} ;
2023-10-15 12:36:25 +02:00
python-environment = ( python . withPackages ( ps : with ps ; [
2025-01-23 14:56:51 +01:00
ipympl numpy matplotlib scipy cvxpy
2023-10-15 11:15:04 +02:00
2023-10-13 15:57:53 +02:00
jupyter-core jupyter
2025-01-23 14:56:51 +01:00
jupyter-config
2023-10-13 15:57:53 +02:00
] ) ) ;
in rec {
packages . latex = latex ;
packages . python-environment = python-environment ;
2025-01-23 14:56:51 +01:00
packages . default = pkgs . writeShellApplication {
name = " s t a r t - n o t e b o o k " ;
runtimeInputs = [ latex pkgs . pandoc python-environment ] ;
text = " ${ python-environment } / b i n / j u p y t e r - n o t e b o o k " ;
} ;
2023-10-13 15:57:53 +02:00
devShells . default = pkgs . mkShell {
packages = [ python-environment latex ] ;
} ;
}
) ;
}