# flake.nix { description = "LaTeX compilation environment for thesis and beamer presentation"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; fibeamer = { url = "github:Witiko/fibeamer"; flake = false; }; }; outputs = { self, nixpkgs, flake-utils, fibeamer }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; texlive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full; }; # Build a TEXMF tree for fibeamer so LaTeX can find it fibeamerTexmf = pkgs.runCommand "fibeamer-texmf" {} '' mkdir -p $out/tex/latex/fibeamer cp -r ${fibeamer}/* $out/tex/latex/fibeamer/ ''; in { devShells.default = pkgs.mkShell { name = "latex-env"; buildInputs = [ texlive pkgs.biber ]; shellHook = '' export TEXMFHOME="${fibeamerTexmf}:" echo "LaTeX environment loaded (pdflatex + biber + fibeamer)" pdflatex --version | head -1 ''; }; }); }