2005-06-20 15:51:48 +02:00
|
|
|
pkgs:
|
|
|
|
|
|
|
|
rec {
|
|
|
|
|
2005-06-20 16:26:07 +02:00
|
|
|
|
2005-06-20 15:51:48 +02:00
|
|
|
runLaTeX =
|
|
|
|
{ rootFile
|
2007-03-12 18:55:08 +01:00
|
|
|
, generatePDF ? true # generate PDF, not DVI
|
|
|
|
, generatePS ? false # generate PS in addition to DVI
|
2005-06-21 00:43:35 +02:00
|
|
|
, extraFiles ? []
|
2005-11-28 15:19:46 +01:00
|
|
|
, compressBlanksInIndex ? true
|
2007-03-11 00:51:59 +01:00
|
|
|
, packages ? []
|
2007-03-12 18:55:08 +01:00
|
|
|
, searchRelativeTo ? dirOf (toString rootFile) # !!! duplication
|
2005-06-20 15:51:48 +02:00
|
|
|
}:
|
2007-03-12 18:55:08 +01:00
|
|
|
|
|
|
|
assert generatePDF -> !generatePS;
|
2005-06-20 15:51:48 +02:00
|
|
|
|
|
|
|
pkgs.stdenv.mkDerivation {
|
|
|
|
name = "doc";
|
2005-06-20 17:06:58 +02:00
|
|
|
|
2005-06-20 15:51:48 +02:00
|
|
|
builder = ./run-latex.sh;
|
2005-06-20 17:06:58 +02:00
|
|
|
copyIncludes = ./copy-includes.pl;
|
2005-06-20 15:51:48 +02:00
|
|
|
|
2007-03-12 18:55:08 +01:00
|
|
|
inherit rootFile generatePDF generatePS extraFiles
|
2005-11-28 15:19:46 +01:00
|
|
|
compressBlanksInIndex;
|
2005-06-20 16:26:07 +02:00
|
|
|
|
2007-03-12 18:55:08 +01:00
|
|
|
includes = import (findLaTeXIncludes {inherit rootFile searchRelativeTo;});
|
2005-06-20 15:51:48 +02:00
|
|
|
|
2007-03-11 00:51:59 +01:00
|
|
|
buildInputs = [ pkgs.tetex pkgs.perl ] ++ packages;
|
2005-06-20 15:51:48 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2005-06-20 16:26:07 +02:00
|
|
|
findLaTeXIncludes =
|
|
|
|
{ rootFile
|
2007-03-12 18:55:08 +01:00
|
|
|
, searchRelativeTo ? dirOf (toString rootFile)
|
2005-06-20 16:26:07 +02:00
|
|
|
}:
|
|
|
|
|
2005-06-20 17:06:58 +02:00
|
|
|
pkgs.stdenv.mkDerivation {
|
2005-06-20 16:26:07 +02:00
|
|
|
name = "latex-includes";
|
2005-06-20 17:06:58 +02:00
|
|
|
|
2006-10-17 16:06:18 +02:00
|
|
|
realBuilder = pkgs.perl + "/bin/perl";
|
2005-06-20 16:26:07 +02:00
|
|
|
args = [ ./find-includes.pl ];
|
|
|
|
|
|
|
|
rootFile = toString rootFile; # !!! hacky
|
2005-06-20 17:20:37 +02:00
|
|
|
|
2007-03-12 18:55:08 +01:00
|
|
|
inherit searchRelativeTo;
|
|
|
|
|
2005-06-20 17:20:37 +02:00
|
|
|
# Forces rebuilds.
|
|
|
|
hack = __currentTime;
|
2005-06-20 17:06:58 +02:00
|
|
|
};
|
2005-06-21 00:43:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
dot2pdf =
|
|
|
|
{ dotGraph
|
|
|
|
}:
|
|
|
|
|
|
|
|
pkgs.stdenv.mkDerivation {
|
|
|
|
name = "pdf";
|
|
|
|
builder = ./dot2pdf.sh;
|
|
|
|
inherit dotGraph;
|
|
|
|
buildInputs = [
|
|
|
|
pkgs.perl pkgs.tetex pkgs.graphviz pkgs.ghostscript
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2005-06-27 11:44:27 +02:00
|
|
|
|
2006-04-11 15:27:01 +02:00
|
|
|
dot2ps =
|
|
|
|
{ dotGraph
|
|
|
|
}:
|
|
|
|
|
|
|
|
pkgs.stdenv.mkDerivation {
|
|
|
|
name = "ps";
|
|
|
|
builder = ./dot2ps.sh;
|
|
|
|
inherit dotGraph;
|
|
|
|
buildInputs = [
|
|
|
|
pkgs.perl pkgs.tetex pkgs.graphviz pkgs.ghostscript
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2005-06-27 11:44:27 +02:00
|
|
|
animateDot = dotGraph: nrFrames: pkgs.stdenv.mkDerivation {
|
|
|
|
name = "dot-frames";
|
|
|
|
builder = ./animatedot.sh;
|
|
|
|
inherit dotGraph nrFrames;
|
|
|
|
};
|
|
|
|
|
2006-04-11 15:27:01 +02:00
|
|
|
}
|