From 6fcee91442b3dc39cf12757fd693fb176118c1cb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 20 Jun 2005 13:51:48 +0000 Subject: [PATCH] * Macros for building LaTeX documents using Nix. svn path=/nixpkgs/trunk/; revision=3216 --- pkgs/misc/tex/nix/default.nix | 20 +++++++++++++++++ pkgs/misc/tex/nix/run-latex.sh | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 pkgs/misc/tex/nix/default.nix create mode 100644 pkgs/misc/tex/nix/run-latex.sh diff --git a/pkgs/misc/tex/nix/default.nix b/pkgs/misc/tex/nix/default.nix new file mode 100644 index 000000000000..eca48ca25bfc --- /dev/null +++ b/pkgs/misc/tex/nix/default.nix @@ -0,0 +1,20 @@ +pkgs: + +rec { + + runLaTeX = + { rootFile + , generatePDF ? true + }: + + pkgs.stdenv.mkDerivation { + name = "doc"; + builder = ./run-latex.sh; + + inherit rootFile generatePDF; + + buildInputs = [ pkgs.tetex ]; + }; + + +} \ No newline at end of file diff --git a/pkgs/misc/tex/nix/run-latex.sh b/pkgs/misc/tex/nix/run-latex.sh new file mode 100644 index 000000000000..afc0608e7240 --- /dev/null +++ b/pkgs/misc/tex/nix/run-latex.sh @@ -0,0 +1,40 @@ +. $stdenv/setup + +ensureDir $out + +for i in $rootFile $sources; do + if test -d $i; then + cp $i/* . + else + cp $i $(stripHash $i; echo $strippedName) + fi +done + +rootName=$(basename $(stripHash "$rootFile"; echo $strippedName)) +echo "root name is $rootName" + +rootNameBase=$(echo "$rootName" | sed 's/\..*//') + +if test -n "$generatePDF"; then + latex=pdflatex +else + latex=latex +fi + +$latex $rootName + +if grep -q '\\bibitem' $rootNameBase.bbl; then + bibtex $rootNameBase +fi + +$latex $rootName + +makeindex $rootNameBase.idx + +$latex $rootName + +if test -n "$generatePDF"; then + cp $rootNameBase.pdf $out +else + cp $rootNameBase.dvi $out +fi \ No newline at end of file