{ description = "BGU MSc Thesis — ROLL Method"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; texPkgs = with pkgs.texlive; { inherit (pkgs.texlive) scheme-small latexmk # Hebrew + multilingual (XeLaTeX path) bidi polyglossia # Page layout fancyhdr setspace titling appendix # Figures caption float pgf # Math mathtools amsmath amscls gensymb # Text enumitem footmisc csquotes # Theorems + algorithms relsize ntheorem chngcntr algorithm2e # Bibliography natbib tocbibind # Cross-references zref ifoddpage cleveref # Misc silence ; }; fontsConf = pkgs.makeFontsConf { fontDirectories = [ pkgs.culmus ]; }; in { devShells.${system}.default = pkgs.mkShell { buildInputs = [ (pkgs.texlive.combine texPkgs) pkgs.culmus pkgs.fontconfig ]; shellHook = '' export FONTCONFIG_FILE="${fontsConf}" ''; }; packages.${system}.default = pkgs.stdenvNoCC.mkDerivation rec { name = "roll-thesis"; src = self; buildInputs = [ pkgs.coreutils pkgs.fontconfig (pkgs.texlive.combine texPkgs) pkgs.culmus ]; phases = [ "unpackPhase" "buildPhase" "installPhase" ]; buildPhase = '' export PATH="${pkgs.lib.makeBinPath buildInputs}"; mkdir -p .cache/texmf-var .cache/fontconfig # Build a fontconfig pointing at culmus with a writable cache FCACHE="$(pwd)/.cache/fontconfig" cat > .cache/fonts.conf < ${pkgs.culmus}/share/fonts/truetype $FCACHE EOF export FONTCONFIG_FILE="$(pwd)/.cache/fonts.conf" export FONTCONFIG_CACHE="$FCACHE" fc-cache -f 2>/dev/null || true env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \ latexmk -xelatex -f --interaction=nonstopmode \ main.tex || true test -f main.pdf ''; installPhase = '' mkdir -p $out cp main.pdf $out/ ''; }; }; }