Moved all LaTeX expressions into tools/typesetting hierarchy.
svn path=/nixpkgs/trunk/; revision=32028
This commit is contained in:
@@ -1,24 +0,0 @@
|
||||
{ stdenv, fetchurl, emacs, texLive }:
|
||||
|
||||
stdenv.mkDerivation ( rec {
|
||||
pname = "auctex";
|
||||
version = "11.85";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
meta = {
|
||||
description = "AUCTeX is an extensible package for writing and formatting TeX files in GNU Emacs and XEmacs.";
|
||||
homepage = http://www.gnu.org/software/auctex;
|
||||
};
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.gnu.org/pub/gnu/${pname}/${name}.tar.gz";
|
||||
sha256 = "aebbea00431f8fd1e6be6519d9cc28e974942000737f956027da2c952a6d304e";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs texLive ];
|
||||
|
||||
configureFlags = [
|
||||
"--with-lispdir=\${out}/share/emacs/site-lisp"
|
||||
"--disable-preview"
|
||||
];
|
||||
})
|
||||
@@ -1,22 +0,0 @@
|
||||
{ stdenv, fetchurl, python, libxslt, tetex }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dblatex-0.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/dblatex/${name}.tar.bz2";
|
||||
sha256 = "0jg2acv2lyrbw06l8rr0id75lj1pws7xbsmryq58r3n13xzb1p7b";
|
||||
};
|
||||
|
||||
buildPhase = "true";
|
||||
|
||||
installPhase = "python ./setup.py install --prefix=$out";
|
||||
|
||||
buildInputs = [ python libxslt tetex ];
|
||||
|
||||
meta = {
|
||||
description = "A program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt";
|
||||
homepage = http://dblatex.sourceforge.net/;
|
||||
license = "GPL";
|
||||
};
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
x@{builderDefsPackage
|
||||
, unzip, texLive, texLiveCMSuper, texLiveAggregationFun
|
||||
, ...}:
|
||||
builderDefsPackage
|
||||
(a :
|
||||
let
|
||||
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
|
||||
["texLive" "texLiveCMSuper" "texLiveAggregationFun"];
|
||||
|
||||
buildInputs = map (n: builtins.getAttr n x)
|
||||
(builtins.attrNames (builtins.removeAttrs x helperArgNames))
|
||||
++ [(a.texLiveAggregationFun {paths=[a.texLive a.texLiveCMSuper];})];
|
||||
sourceInfo = rec {
|
||||
baseName="disser";
|
||||
version="1.1.8";
|
||||
name="${baseName}-${version}";
|
||||
project="${baseName}";
|
||||
url="mirror://sourceforge/project/${project}/${baseName}/${version}/${name}.zip";
|
||||
hash="15509hfcvkk5kfcza149c74qpamwgw88dg0ra749axs8xj8qmlw8";
|
||||
};
|
||||
in
|
||||
rec {
|
||||
src = a.fetchurl {
|
||||
url = sourceInfo.url;
|
||||
sha256 = sourceInfo.hash;
|
||||
};
|
||||
|
||||
inherit (sourceInfo) name version;
|
||||
inherit buildInputs;
|
||||
|
||||
/* doConfigure should be removed if not needed */
|
||||
phaseNames = ["setVars" "doMakeInstall"];
|
||||
|
||||
setVars = a.noDepEntry ''
|
||||
export HOME="$TMPDIR"
|
||||
'';
|
||||
|
||||
makeFlags = ["DESTDIR=$out/share/texmf-dist"];
|
||||
|
||||
meta = {
|
||||
description = "Russian PhD thesis LaTeX package";
|
||||
maintainers = with a.lib.maintainers;
|
||||
[
|
||||
raskin
|
||||
];
|
||||
platforms = with a.lib.platforms;
|
||||
linux; # platform-independent
|
||||
license = "free"; # LaTeX Project Public License
|
||||
};
|
||||
passthru = {
|
||||
updateInfo = {
|
||||
downloadPage = "http://sourceforge.net/projects/disser/files/disser/";
|
||||
};
|
||||
};
|
||||
}) x
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
{stdenv, fetchurl, tex, perl, netpbm, ghostscript}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "latex2html-2002-1";
|
||||
|
||||
buildInputs = [ tex perl ghostscript netpbm ];
|
||||
|
||||
preConfigure = ''
|
||||
configureFlags="--with-texpath=$out/share/texmf-nix";
|
||||
'';
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://ubuntu/pool/multiverse/l/latex2html/latex2html_2002-2-1-20050114.orig.tar.gz;
|
||||
sha256 = "22049a77cf88a647776e61e06800ace4f9a06afc6ffe2590574487f023d0881f";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = http://www.latex2html.org/;
|
||||
license = "unfree-redistributable";
|
||||
description = "Convertor written in Perl that converts LaTeX documents to HTML";
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
buildPhase=true
|
||||
|
||||
installPhase=myInstallPhase
|
||||
myInstallPhase() {
|
||||
ensureDir "$out/share/texmf-nix/tex/latex/lazylist"
|
||||
cp lazylist.sty "$out/share/texmf-nix/tex/latex/lazylist"
|
||||
}
|
||||
|
||||
genericBuild
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{stdenv, fetchurl, tetex}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "lazylist-1.0a";
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://www.iai.uni-bonn.de/~loeh/lhs2tex/lazylist-1.0a.tar.bz2;
|
||||
md5 = "8ef357df5845bd8d6075fca6e1f214ab";
|
||||
};
|
||||
|
||||
buildInputs = [tetex];
|
||||
|
||||
inherit tetex;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{stdenv, fetchurl, unzip}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "lkproof-3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://mirror.ctan.org/macros/latex/contrib/lkproof.zip;
|
||||
sha256 = "1qjkjhpc4rm62qxn18r83zdlwnj1wvnkcpdiqlv7w4bakh0gvjly";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip ];
|
||||
|
||||
installPhase = "
|
||||
ensureDir $out/share/texmf-nix/tex/generic/lkproof
|
||||
cp -prd *.sty $out/share/texmf-nix/tex/generic/lkproof
|
||||
";
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
ensureDir $out
|
||||
|
||||
for ((i = 1; i <= $nrFrames; i++)); do
|
||||
echo "producing frame $i...";
|
||||
targetName=$out/$(basename $(stripHash $dotGraph; echo $strippedName) .dot)-f-$i.dot
|
||||
cpp -DFRAME=$i < $dotGraph > $targetName
|
||||
done
|
||||
@@ -1,43 +0,0 @@
|
||||
use strict;
|
||||
use File::Basename;
|
||||
|
||||
sub createDirs;
|
||||
sub createDirs {
|
||||
my $path = shift;
|
||||
return unless $path =~ /^(.*)\/([^\/]*)$/;
|
||||
my $dir = $1;
|
||||
return if -d $dir;
|
||||
return if -e $dir;
|
||||
createDirs $dir;
|
||||
mkdir $dir or die "cannot create directory `$dir'";
|
||||
}
|
||||
|
||||
my $maxParents = 0;
|
||||
for (my $n = 0; $n < @ARGV; $n += 2) {
|
||||
my $fullPath = $ARGV[$n];
|
||||
my $relPath = $ARGV[$n + 1];
|
||||
my $parents = 0;
|
||||
foreach my $comp (split /\//, $relPath) {
|
||||
$parents++ if ($comp eq "..")
|
||||
}
|
||||
$maxParents = $parents if $parents > $maxParents;
|
||||
}
|
||||
|
||||
my $startDir = "./";
|
||||
for (my $n = 0; $n < $maxParents; $n++) {
|
||||
$startDir .= "dotdot/";
|
||||
mkdir "$startDir" or die "cannot create directory `$startDir': $!";
|
||||
}
|
||||
|
||||
chdir $startDir or die;
|
||||
|
||||
for (my $n = 0; $n < @ARGV; $n += 2) {
|
||||
my $fullPath = $ARGV[$n];
|
||||
my $relPath = $ARGV[$n + 1];
|
||||
|
||||
createDirs $relPath;
|
||||
|
||||
symlink $fullPath, $relPath or die "cannot create symlink `$relPath'";
|
||||
}
|
||||
|
||||
print "$startDir\n";
|
||||
@@ -1,244 +0,0 @@
|
||||
pkgs:
|
||||
|
||||
rec {
|
||||
|
||||
|
||||
runLaTeX =
|
||||
{ rootFile
|
||||
, generatePDF ? true # generate PDF, not DVI
|
||||
, generatePS ? false # generate PS in addition to DVI
|
||||
, extraFiles ? []
|
||||
, compressBlanksInIndex ? true
|
||||
, packages ? []
|
||||
, copySources ? false
|
||||
}:
|
||||
|
||||
assert generatePDF -> !generatePS;
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "doc";
|
||||
|
||||
builder = ./run-latex.sh;
|
||||
copyIncludes = ./copy-includes.pl;
|
||||
|
||||
inherit rootFile generatePDF generatePS extraFiles
|
||||
compressBlanksInIndex copySources;
|
||||
|
||||
includes = map (x: [x.key (baseNameOf (toString x.key))])
|
||||
(findLaTeXIncludes {inherit rootFile;});
|
||||
|
||||
buildInputs = [ pkgs.tetex pkgs.perl ] ++ packages;
|
||||
};
|
||||
|
||||
|
||||
# Returns the closure of the "dependencies" of a LaTeX source file.
|
||||
# Dependencies are other LaTeX source files (e.g. included using
|
||||
# \input{}), images (e.g. \includegraphics{}), bibliographies, and
|
||||
# so on.
|
||||
findLaTeXIncludes =
|
||||
{ rootFile
|
||||
}:
|
||||
|
||||
builtins.genericClosure {
|
||||
startSet = [{key = rootFile;}];
|
||||
|
||||
operator =
|
||||
{key, ...}:
|
||||
|
||||
let
|
||||
|
||||
# `find-includes.pl' returns the dependencies of the current
|
||||
# source file (`key') as a list, e.g. [{type = "tex"; name =
|
||||
# "introduction.tex";} {type = "img"; name = "example"}].
|
||||
# The type denotes the kind of dependency, which determines
|
||||
# what extensions we use to look for it.
|
||||
deps = import (pkgs.runCommand "latex-includes"
|
||||
{ rootFile = baseNameOf (toString rootFile); src = key; }
|
||||
"${pkgs.perl}/bin/perl ${./find-includes.pl}");
|
||||
|
||||
# Look for the dependencies of `key', trying various
|
||||
# extensions determined by the type of each dependency.
|
||||
# TODO: support a search path.
|
||||
foundDeps = dep: xs:
|
||||
let
|
||||
exts =
|
||||
if dep.type == "img" then [".pdf" ".png" ".ps" ".jpg"]
|
||||
else if dep.type == "tex" then [".tex" ""]
|
||||
else [""];
|
||||
fn = pkgs.lib.findFirst (fn: builtins.pathExists fn) null
|
||||
(map (ext: "${dirOf key}/${dep.name}${ext}") exts);
|
||||
in if fn != null then [{key = fn;}] ++ xs
|
||||
else xs;
|
||||
|
||||
in pkgs.lib.fold foundDeps [] deps;
|
||||
};
|
||||
|
||||
|
||||
findLhs2TeXIncludes =
|
||||
{ rootFile
|
||||
}:
|
||||
|
||||
builtins.genericClosure {
|
||||
startSet = [{key = rootFile;}];
|
||||
|
||||
operator =
|
||||
{key, ...}:
|
||||
|
||||
let
|
||||
|
||||
deps = import (pkgs.runCommand "lhs2tex-includes"
|
||||
{ src = key; }
|
||||
"${pkgs.stdenv.bash}/bin/bash ${./find-lhs2tex-includes.sh}");
|
||||
|
||||
in pkgs.lib.concatMap (x : if builtins.pathExists x then [{key = x;}] else [])
|
||||
(map (x : "${dirOf key}/${x}") deps);
|
||||
};
|
||||
|
||||
dot2pdf =
|
||||
{ dotGraph
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "pdf";
|
||||
builder = ./dot2pdf.sh;
|
||||
inherit dotGraph fontsConf;
|
||||
buildInputs = [
|
||||
pkgs.perl pkgs.tetex pkgs.graphviz
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
dot2ps =
|
||||
{ dotGraph
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "ps";
|
||||
builder = ./dot2ps.sh;
|
||||
inherit dotGraph;
|
||||
buildInputs = [
|
||||
pkgs.perl pkgs.tetex pkgs.graphviz pkgs.ghostscript
|
||||
];
|
||||
};
|
||||
|
||||
lhs2tex =
|
||||
{ source, flags ? null } :
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "tex";
|
||||
builder = ./lhs2tex.sh;
|
||||
inherit source flags;
|
||||
buildInputs = [ pkgs.lhs2tex pkgs.perl ];
|
||||
copyIncludes = ./copy-includes.pl;
|
||||
includes = map (x: [x.key (baseNameOf (toString x.key))])
|
||||
(findLhs2TeXIncludes {rootFile = source;});
|
||||
};
|
||||
|
||||
animateDot = dotGraph: nrFrames: pkgs.stdenv.mkDerivation {
|
||||
name = "dot-frames";
|
||||
builder = ./animatedot.sh;
|
||||
inherit dotGraph nrFrames;
|
||||
};
|
||||
|
||||
|
||||
# Wrap a piece of TeX code in a document. Useful when generating
|
||||
# inline images from TeX code.
|
||||
wrapSimpleTeX =
|
||||
{ preamble ? null
|
||||
, body
|
||||
, name ? baseNameOf (toString body)
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
inherit name preamble body;
|
||||
buildCommand = ''
|
||||
touch $out
|
||||
echo '\documentclass{article}' >> $out
|
||||
echo '\pagestyle{empty}' >> $out
|
||||
if test -n "$preamble"; then cat $preamble >> $out; fi
|
||||
echo '\begin{document}' >> $out
|
||||
cat $body >> $out
|
||||
echo '\end{document}' >> $out
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
# Convert a Postscript file to a PNG image, trimming it so that
|
||||
# there is no unnecessary surrounding whitespace.
|
||||
postscriptToPNG =
|
||||
{ postscript
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "png";
|
||||
inherit postscript;
|
||||
|
||||
buildInputs = [pkgs.imagemagick pkgs.ghostscript];
|
||||
|
||||
buildCommand = ''
|
||||
if test -d $postscript; then
|
||||
input=$(ls $postscript/*.ps)
|
||||
else
|
||||
input=$(stripHash $postscript; echo $strippedName)
|
||||
ln -s $postscript $input
|
||||
fi
|
||||
|
||||
ensureDir $out
|
||||
convert -units PixelsPerInch \
|
||||
-density 600 \
|
||||
-trim \
|
||||
-matte \
|
||||
-transparent '#ffffff' \
|
||||
-type PaletteMatte \
|
||||
+repage \
|
||||
$input \
|
||||
"$out/$(basename $input .ps).png"
|
||||
''; # */
|
||||
};
|
||||
|
||||
|
||||
# Convert a piece of TeX code to a PNG image.
|
||||
simpleTeXToPNG =
|
||||
{ preamble ? null
|
||||
, body
|
||||
, name ? baseNameOf (toString body)
|
||||
, packages ? []
|
||||
}:
|
||||
|
||||
postscriptToPNG {
|
||||
postscript = runLaTeX {
|
||||
rootFile = wrapSimpleTeX {
|
||||
inherit body preamble;
|
||||
};
|
||||
inherit packages;
|
||||
generatePDF = false;
|
||||
generatePS = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# Convert a piece of TeX code to a PDF.
|
||||
simpleTeXToPDF =
|
||||
{ preamble ? null
|
||||
, body
|
||||
, name ? baseNameOf (toString body)
|
||||
, packages ? []
|
||||
}:
|
||||
|
||||
runLaTeX {
|
||||
rootFile = wrapSimpleTeX {
|
||||
inherit body preamble;
|
||||
};
|
||||
inherit packages;
|
||||
};
|
||||
|
||||
|
||||
# Some tools (like dot) need a fontconfig configuration file.
|
||||
# This should be extended to allow the called to add additional
|
||||
# fonts.
|
||||
fontsConf = pkgs.makeFontsConf {
|
||||
fontDirectories = [
|
||||
"${pkgs.ghostscript}/share/ghostscript/fonts"
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
ensureDir $out
|
||||
|
||||
dot2pdf() {
|
||||
sourceFile=$1
|
||||
targetName=$out/$(basename $(stripHash $sourceFile; echo $strippedName) .dot).pdf
|
||||
echo "converting $sourceFile to $targetName..."
|
||||
export FONTCONFIG_FILE=$fontsConf
|
||||
dot -Tpdf $sourceFile > $targetName
|
||||
}
|
||||
|
||||
for i in $dotGraph; do
|
||||
if test -d $i; then
|
||||
for j in $i/*; do dot2pdf $j; done
|
||||
else
|
||||
dot2pdf $i
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
ensureDir $out
|
||||
|
||||
dot2ps() {
|
||||
sourceFile=$1
|
||||
targetName=$out/$(basename $(stripHash $sourceFile; echo $strippedName) .dot).ps
|
||||
echo "converting $sourceFile to $targetName..."
|
||||
dot -Tps $sourceFile > $targetName
|
||||
}
|
||||
|
||||
for i in $dotGraph; do
|
||||
if test -d $i; then
|
||||
for j in $i/*; do dot2ps $j; done
|
||||
else
|
||||
dot2ps $i
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
use strict;
|
||||
use File::Basename;
|
||||
|
||||
my $src = $ENV{"src"};
|
||||
my $out = $ENV{"out"};
|
||||
my $path = $ENV{"searchRelativeTo"};
|
||||
|
||||
open OUT, ">$out" or die;
|
||||
print OUT "[\n";
|
||||
|
||||
open FILE, "< $src" or die;
|
||||
|
||||
sub addName {
|
||||
my ($type, $name) = @_;
|
||||
print OUT "{ type = \"$type\"; name = \"$name\"; }\n";
|
||||
}
|
||||
|
||||
while (<FILE>) {
|
||||
if (/\\input\{(.*)\}/) {
|
||||
my $fn2 = $1;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "tex", "$fn2";
|
||||
} elsif (/\\input (.*)$/) {
|
||||
my $fn2 = $1;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "tex", "$fn2";
|
||||
} elsif (/\\RequirePackage(\[.*\])?\{(.*)\}/) {
|
||||
my $fn2 = $2;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "misc", "$fn2.sty";
|
||||
} elsif (/\\usepackage(\[.*\])?\{(.*)\}/) {
|
||||
my $fn2 = $2;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "misc", "$fn2.sty";
|
||||
} elsif (/\\documentclass(\[.*\])?\{(.*)\}/) {
|
||||
my $fn2 = $2;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "misc", "$fn2.cls";
|
||||
} elsif (/\\bibliographystyle\{(.*)\}/) {
|
||||
my $fn2 = $1;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "misc", "$fn2.bst";
|
||||
} elsif (/\\bibliography\{(.*)\}/) {
|
||||
foreach my $bib (split /,/, $1) {
|
||||
$bib =~ s/^\s+//; # remove leading / trailing whitespace
|
||||
$bib =~ s/\s+$//;
|
||||
addName "misc", "$bib.bib";
|
||||
addName "misc", (basename($ENV{"rootFile"}, ".tex", ".ltx") . ".bbl");
|
||||
}
|
||||
} elsif (/\\includegraphics(\[.*\])?\{(.*)\}/) {
|
||||
my $fn2 = $2;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "img", "$fn2";
|
||||
} elsif (/\\pgfdeclareimage(\[.*\])?\{.*\}\{(.*)\}/) {
|
||||
my $fn2 = $2;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "img", "$fn2";
|
||||
} elsif (/\\pgfimage(\[.*\])?\{(.*)\}/) {
|
||||
my $fn2 = $2;
|
||||
die "absolute path! $fn2" if substr($fn2, 0, 1) eq "/";
|
||||
addName "img", "$fn2";
|
||||
}
|
||||
# !!! also support \usepackage
|
||||
}
|
||||
|
||||
close FILE;
|
||||
|
||||
print OUT "]\n";
|
||||
close OUT;
|
||||
@@ -1,3 +0,0 @@
|
||||
echo '[' > $out
|
||||
grep '^%include ' $src | cut -d ' ' -f 2 | sed 's/^\(.*\)$/"\1"/' >> $out
|
||||
echo ']' >> $out
|
||||
@@ -1,19 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
ensureDir $out
|
||||
|
||||
mkdir root
|
||||
cd root
|
||||
|
||||
startDir=$(perl $copyIncludes $includes)
|
||||
cd $startDir
|
||||
|
||||
lhstex() {
|
||||
sourceFile=$1
|
||||
targetName=$out/$(basename $(stripHash $sourceFile; echo $strippedName) .lhs).tex
|
||||
echo "converting $sourceFile to $targetName..."
|
||||
lhs2TeX -o "$targetName" $flags "$sourceFile"
|
||||
}
|
||||
|
||||
lhstex $source
|
||||
|
||||
@@ -1,165 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
ensureDir $out
|
||||
|
||||
export TEXMFCNF=$TMPDIR:
|
||||
echo 'max_print_line = 8192' >> $TMPDIR/texmf.cnf
|
||||
|
||||
mkdir root
|
||||
cd root
|
||||
|
||||
startDir=$(perl $copyIncludes $includes)
|
||||
cd $startDir
|
||||
|
||||
for i in $extraFiles; do
|
||||
if test -d $i; then
|
||||
ln -s $i/* .
|
||||
else
|
||||
ln -s $i $(stripHash $i; echo $strippedName)
|
||||
fi
|
||||
done
|
||||
|
||||
rootName=$(basename $(stripHash "$rootFile"; echo $strippedName))
|
||||
|
||||
rootNameBase=$(echo "$rootName" | sed 's/\..*//')
|
||||
|
||||
if test -n "$generatePDF"; then
|
||||
latex=pdflatex
|
||||
else
|
||||
latex=latex
|
||||
fi
|
||||
|
||||
latexFlags="-file-line-error"
|
||||
tmpFile=$out/log
|
||||
|
||||
showError() {
|
||||
echo
|
||||
echo "LATEX ERROR (LAST LOG LINES SHOWN):"
|
||||
tail -n 20 $tmpFile
|
||||
bzip2 $tmpFile
|
||||
exit 1
|
||||
}
|
||||
|
||||
runLaTeX() {
|
||||
if ! $latex $latexFlags $rootName >$tmpFile 2>&1; then showError; fi
|
||||
runNeeded=
|
||||
if fgrep -q \
|
||||
-e "LaTeX Warning: Label(s) may have changed." \
|
||||
-e "Rerun to get citations correct." \
|
||||
"$tmpFile"; then
|
||||
runNeeded=1
|
||||
fi
|
||||
}
|
||||
|
||||
echo
|
||||
|
||||
|
||||
if test -n "$copySources"; then
|
||||
cp -prd $TMPDIR/root $out/tex-srcs
|
||||
fi
|
||||
|
||||
|
||||
echo "PASS 1..."
|
||||
runLaTeX
|
||||
echo
|
||||
|
||||
|
||||
for auxFile in $(find . -name "*.aux"); do
|
||||
# Run bibtex to process all bibliographies. There may be several
|
||||
# when we're using the multibib package.
|
||||
if grep -q '\\citation' $auxFile; then
|
||||
auxBase=$(basename $auxFile .aux)
|
||||
if [ -e $auxBase.bbl ]; then
|
||||
echo "SKIPPING BIBTEX ON $auxFile!"
|
||||
else
|
||||
echo "RUNNING BIBTEX ON $auxFile..."
|
||||
bibtex --terse $auxBase
|
||||
cp $auxBase.bbl $out
|
||||
runNeeded=1
|
||||
fi
|
||||
echo
|
||||
fi
|
||||
|
||||
# "\pgfsyspdfmark" in the aux file seems to indicate that PGF/TikZ
|
||||
# requires a second run (e.g. to resolve arrows between pictures).
|
||||
if grep -q pgfsyspdfmark $auxFile; then
|
||||
runNeeded=1
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
if test "$runNeeded"; then
|
||||
echo "PASS 2..."
|
||||
runLaTeX
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
if test -f $rootNameBase.idx; then
|
||||
echo "MAKING INDEX..."
|
||||
if test -n "$compressBlanksInIndex"; then
|
||||
makeindexFlags="$makeindexFlags -c"
|
||||
fi
|
||||
makeindex $makeindexFlags $rootNameBase.idx
|
||||
runNeeded=1
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
if test "$runNeeded"; then
|
||||
echo "PASS 3..."
|
||||
runLaTeX
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
if test "$runNeeded"; then
|
||||
echo "PASS 4..."
|
||||
runLaTeX
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
if test "$runNeeded"; then
|
||||
echo "Hm, still not done :-("
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
if test -n "$generatePDF"; then
|
||||
cp $rootNameBase.pdf $out
|
||||
else
|
||||
cp $rootNameBase.dvi $out
|
||||
if test -n "$generatePS"; then
|
||||
echo "CONVERTING TO POSTSCRIPT..."
|
||||
dvips $rootNameBase.dvi -o $out/$rootNameBase.ps
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
echo "WARNINGS:"
|
||||
cat $tmpFile | grep "Warning:" | grep -v "Citation.*undefined" || true
|
||||
|
||||
echo
|
||||
echo "OVERFULL/UNDERFULL:"
|
||||
cat $tmpFile | egrep "Overfull|Underfull" || true
|
||||
|
||||
echo
|
||||
echo "UNDEFINED REFERENCES:"
|
||||
cat $tmpFile | grep "Reference.*undefined" || true
|
||||
|
||||
echo
|
||||
echo "UNDEFINED CITATIONS:"
|
||||
cat $tmpFile | grep "Citation.*undefined" || true
|
||||
|
||||
echo
|
||||
echo "STATS:"
|
||||
printf "%5d overfull/underfull h/vboxes\n" $(cat $tmpFile | egrep -c "Overfull|Underfull" || true)
|
||||
printf "%5d undefined references\n" $(cat $tmpFile | grep -c "Reference.*undefined" || true)
|
||||
printf "%5d undefined citations\n" $(cat $tmpFile | grep -c "Citation.*undefined" || true)
|
||||
printf "%5d pages\n" \
|
||||
$(cat $tmpFile | grep "Output written.*(.*pages" | sed "s/.*(\([0-9]*\) pages.*/\1/" || true)
|
||||
echo
|
||||
|
||||
bzip2 $tmpFile
|
||||
@@ -1,16 +0,0 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "pgf-1.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/pgf/pgf-1.10.tar.gz;
|
||||
sha256 = "1y605wmjxryphh0y5zgzvdq6xjxb2bjb95j36d4wg1a7n93ksswl";
|
||||
};
|
||||
|
||||
buildPhase = "true";
|
||||
installPhase = "
|
||||
ensureDir $out/share/texmf-nix
|
||||
cp -prd * $out/share/texmf-nix
|
||||
";
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "pgf-2.00";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/pgf/pgf-2.00.tar.gz;
|
||||
sha256 = "0j57niag4jb2k0iyrvjsannxljc3vkx0iag7zd35ilhiy4dh6264";
|
||||
};
|
||||
|
||||
buildPhase = "true";
|
||||
|
||||
installPhase = "
|
||||
ensureDir $out/share/texmf-nix
|
||||
cp -prd * $out/share/texmf-nix
|
||||
";
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
buildPhase=true
|
||||
|
||||
installPhase=myInstallPhase
|
||||
myInstallPhase() {
|
||||
ensureDir "$out/share/texmf-nix/tex/latex/polytable"
|
||||
ensureDir "$out/share/texmf-nix/doc/latex/polytable"
|
||||
latex polytable.ins
|
||||
pdflatex polytable.dtx
|
||||
pdflatex polytable.dtx
|
||||
cp polytable.sty "$out/share/texmf-nix/tex/latex/polytable"
|
||||
cp polytable.pdf "$out/share/texmf-nix/doc/latex/polytable"
|
||||
ensureDir "$out/nix-support"
|
||||
echo "$propagatedUserEnvPackages" > "$out/nix-support/propagated-user-env-packages"
|
||||
}
|
||||
|
||||
genericBuild
|
||||
@@ -1,19 +0,0 @@
|
||||
{stdenv, fetchurl, tetex, lazylist}:
|
||||
|
||||
#assert tetex == lazylist.tetex;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "polytable-0.8.2";
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://www.iai.uni-bonn.de/~loeh/polytable-0.8.2.tar.gz;
|
||||
md5 = "c59edf035ae6e19b64b1ae920fea28e7";
|
||||
};
|
||||
|
||||
buildInputs = [tetex];
|
||||
propagatedBuildInputs = [lazylist];
|
||||
propagatedUserEnvPackages = [lazylist];
|
||||
|
||||
inherit tetex;
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{ stdenv, fetchurl, flex, bison, zlib, libpng, ncurses, ed }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "tetex-3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = ftp://cam.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/tetex-src-3.0.tar.gz;
|
||||
md5 = "944a4641e79e61043fdaf8f38ecbb4b3";
|
||||
};
|
||||
|
||||
texmf = fetchurl {
|
||||
url = ftp://cam.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/tetex-texmf-3.0.tar.gz;
|
||||
md5 = "11aa15c8d3e28ee7815e0d5fcdf43fd4";
|
||||
};
|
||||
|
||||
buildInputs = [ flex bison zlib libpng ncurses ed ];
|
||||
|
||||
patches = [ ./environment.patch ./getline.patch ];
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
configureFlags =
|
||||
[ "--disable-multiplatform"
|
||||
"--without-x11"
|
||||
"--without-xdvik"
|
||||
"--without-oxdvik"
|
||||
"--without-texinfo"
|
||||
"--without-texi2html"
|
||||
"--with-system-zlib"
|
||||
"--with-system-pnglib"
|
||||
"--with-system-ncurses"
|
||||
];
|
||||
|
||||
postUnpack =
|
||||
''
|
||||
ensureDir $out/share/texmf
|
||||
ensureDir $out/share/texmf-dist
|
||||
gunzip < $texmf | (cd $out/share/texmf-dist && tar xvf -)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A full-featured (La)TeX distribution";
|
||||
};
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
diff -rc --exclude=texmf.in tetex-src-3.0.orig/texk/kpathsea/texmf.in-teTeX tetex-src-3.0/texk/kpathsea/texmf.in-teTeX
|
||||
*** tetex-src-3.0.orig/texk/kpathsea/texmf.in-teTeX 2006-01-27 17:33:11.000000000 +0100
|
||||
--- tetex-src-3.0/texk/kpathsea/texmf.in-teTeX 2006-01-27 17:38:35.000000000 +0100
|
||||
***************
|
||||
*** 104,109 ****
|
||||
--- 104,115 ----
|
||||
% TEXMFCONFIG = @texmf@-config
|
||||
TEXMFCONFIG = $HOME/.texmf-config
|
||||
|
||||
+ % TEXMFNIX is supposed to be unset. It's used by the Nix
|
||||
+ % system to add trees during the build of nix-expressions.
|
||||
+
|
||||
+ % TEXMFNIXHOME, for packages in the user environment.
|
||||
+ TEXMFNIXHOME = $HOME/.nix-profile/share/texmf-nix
|
||||
+
|
||||
% Now, list all the texmf trees. If you have multiple trees you can
|
||||
% use shell brace notation, like this:
|
||||
% TEXMF = {$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFMAIN}
|
||||
***************
|
||||
*** 111,117 ****
|
||||
%
|
||||
% For texconfig to work properly, TEXMFCONGIG and TEXMFVAR should be named
|
||||
% explicitly and before all other trees.
|
||||
! TEXMF = {!!$TEXMFCONFIG,!!$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
|
||||
|
||||
% The system trees. These are the trees that are shared by all the users.
|
||||
SYSTEXMF = $TEXMFLOCAL;$TEXMFMAIN;$TEXMFDIST
|
||||
--- 117,123 ----
|
||||
%
|
||||
% For texconfig to work properly, TEXMFCONGIG and TEXMFVAR should be named
|
||||
% explicitly and before all other trees.
|
||||
! TEXMF = {!!$TEXMFCONFIG,!!$TEXMFVAR,$TEXMFNIX,$TEXMFHOME,$TEXMFNIXHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
|
||||
|
||||
% The system trees. These are the trees that are shared by all the users.
|
||||
SYSTEXMF = $TEXMFLOCAL;$TEXMFMAIN;$TEXMFDIST
|
||||
@@ -1,96 +0,0 @@
|
||||
Glibc 2.10 has a `getline' symbol that clashes with teTeX's.
|
||||
Taken from http://lists.ibiblio.org/pipermail/sm-commit/2009-July/024831.html
|
||||
|
||||
diff -rc -x '*~' tetex-src-3.0-orig/texk/dvipsk/afm2tfm.c tetex-src-3.0/texk/dvipsk/afm2tfm.c
|
||||
*** tetex-src-3.0-orig/texk/dvipsk/afm2tfm.c 2005-01-30 14:17:09.000000000 +0100
|
||||
--- tetex-src-3.0/texk/dvipsk/afm2tfm.c 2010-02-03 13:50:21.000000000 +0100
|
||||
***************
|
||||
*** 257,263 ****
|
||||
}
|
||||
|
||||
int
|
||||
! getline P1H(void) {
|
||||
register char *p ;
|
||||
register int c ;
|
||||
|
||||
--- 257,263 ----
|
||||
}
|
||||
|
||||
int
|
||||
! tetex_getline P1H(void) {
|
||||
register char *p ;
|
||||
register int c ;
|
||||
|
||||
***************
|
||||
*** 606,612 ****
|
||||
ai = newchar() ;
|
||||
ai->adobenum = -1 ;
|
||||
ai->adobename = "||" ; /* boundary character name */
|
||||
! while (getline()) {
|
||||
switch(interest(paramstring())) {
|
||||
case FontName:
|
||||
fontname = paramnewstring() ;
|
||||
--- 606,612 ----
|
||||
ai = newchar() ;
|
||||
ai->adobenum = -1 ;
|
||||
ai->adobename = "||" ; /* boundary character name */
|
||||
! while (tetex_getline()) {
|
||||
switch(interest(paramstring())) {
|
||||
case FontName:
|
||||
fontname = paramnewstring() ;
|
||||
***************
|
||||
*** 1882,1888 ****
|
||||
|
||||
while (1) {
|
||||
while (param == 0 || *param == 0) {
|
||||
! if (getline() == 0)
|
||||
error("! premature end in encoding file") ;
|
||||
for (p=buffer; *p; p++)
|
||||
if (*p == '%') {
|
||||
--- 1882,1888 ----
|
||||
|
||||
while (1) {
|
||||
while (param == 0 || *param == 0) {
|
||||
! if (tetex_getline() == 0)
|
||||
error("! premature end in encoding file") ;
|
||||
for (p=buffer; *p; p++)
|
||||
if (*p == '%') {
|
||||
***************
|
||||
*** 1973,1979 ****
|
||||
p = gettoken() ;
|
||||
if (strcmp(p, "]"))
|
||||
error("! token 258 in encoding must be make-array (])") ;
|
||||
! while (getline()) {
|
||||
for (p=buffer; *p; p++)
|
||||
if (*p == '%') {
|
||||
if (ignoreligkern == 0)
|
||||
--- 1973,1979 ----
|
||||
p = gettoken() ;
|
||||
if (strcmp(p, "]"))
|
||||
error("! token 258 in encoding must be make-array (])") ;
|
||||
! while (tetex_getline()) {
|
||||
for (p=buffer; *p; p++)
|
||||
if (*p == '%') {
|
||||
if (ignoreligkern == 0)
|
||||
diff -rc -x '*~' tetex-src-3.0-orig/texk/web2c/cpascal.h tetex-src-3.0/texk/web2c/cpascal.h
|
||||
*** tetex-src-3.0-orig/texk/web2c/cpascal.h 2004-08-28 22:49:59.000000000 +0200
|
||||
--- tetex-src-3.0/texk/web2c/cpascal.h 2010-02-03 13:51:04.000000000 +0100
|
||||
***************
|
||||
*** 240,245 ****
|
||||
--- 240,255 ----
|
||||
#undef getname
|
||||
#define getname vms_getname
|
||||
#endif
|
||||
+
|
||||
+ /* Apparently POSIX 2008 has getline and glibc 2.9.90 exports it.
|
||||
+ * tangle, weave, et al. use that symbol; try to define it away so
|
||||
+ * something that a standard won't usurp.
|
||||
+ * From http://tutimura.ath.cx/ptetex/?%C6%B0%BA%EE%CA%F3%B9%F0%2F134 */
|
||||
+ #ifdef getline
|
||||
+ #undef getline
|
||||
+ #endif
|
||||
+ #define getline web2c_getline
|
||||
+
|
||||
|
||||
/* Declarations for the routines we provide ourselves in lib/. */
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
addTeXMFPath () {
|
||||
if test -d "$1/share/texmf-nix"; then
|
||||
export TEXINPUTS="${TEXINPUTS}${TEXINPUTS:+:}$1/share/texmf-nix//:"
|
||||
fi
|
||||
}
|
||||
|
||||
envHooks=(${envHooks[@]} addTeXMFPath)
|
||||
@@ -1,38 +0,0 @@
|
||||
{stdenv, fetchurl, tetex, unzip}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "tex4ht-1.0.2009_06_11_1038";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.tug.org/applications/tex4ht/tex4ht.zip";
|
||||
# http://www.cse.ohio-state.edu/~gurari/TeX4ht/fix/${name}.tar.gz";
|
||||
sha1 = "2970cec5f4afc9039b82d6a4210f21d70ded2f5a";
|
||||
};
|
||||
|
||||
buildInputs = [ tetex unzip ];
|
||||
|
||||
buildPhase = ''
|
||||
cd src
|
||||
for f in tex4ht t4ht htcmd ; do
|
||||
# -DENVFILE="$out/share/texmf-nix/tex4ht/base/unix/tex4ht.env"
|
||||
gcc -o $f $f.c -I${tetex}/include -L${tetex}/lib -DHAVE_DIRENT_H -DHAVE_DIRENT_H -DKPATHSEA -lkpathsea
|
||||
done
|
||||
cd -
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
ensureDir $out/bin
|
||||
for f in src/tex4ht src/t4ht src/htcmd bin/unix/*; do # */
|
||||
mv $f $out/bin/.
|
||||
done
|
||||
|
||||
ensureDir $out/share
|
||||
cp -r texmf $out/share/.
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html;
|
||||
# LaTeX Project Public License
|
||||
license = "LPPL";
|
||||
};
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
args : with args;
|
||||
rec {
|
||||
phaseNames = ["doAggregate"];
|
||||
name = "TeXLive-linkdir";
|
||||
|
||||
buildInputs = lib.closePropagation paths;
|
||||
|
||||
doAggregate = fullDepEntry (''
|
||||
|
||||
ensureDir $out/bin
|
||||
for currentPath in ${lib.concatStringsSep " " buildInputs}; do
|
||||
echo Symlinking "$currentPath"
|
||||
find $currentPath/share/info $currentPath/share/man $(echo $currentPath/texmf*/) ! -type d | while read; do
|
||||
REPLY="''${REPLY#$currentPath}"
|
||||
ensureDir $out/"$(dirname "$REPLY")"
|
||||
ln -fs $currentPath/"$REPLY" $out/"$REPLY"
|
||||
echo
|
||||
done | while read; do head -n 99 >/dev/null; echo -n .; done
|
||||
|
||||
for i in "$currentPath/bin/"* :; do
|
||||
test "$i" != : || continue
|
||||
echo -ne "#! $SHELL\\nexec $i \"\$@\"" > "$out/bin/$(basename "$i")" && \
|
||||
chmod a+x "$out/bin/$(basename "$i")"
|
||||
done
|
||||
|
||||
echo
|
||||
|
||||
cp -Trfp $currentPath/libexec $out/libexec || true
|
||||
done
|
||||
|
||||
ln -s $out/texmf* $out/share/
|
||||
|
||||
rm -r $out/texmf-config
|
||||
find $out/texmf/ -type d | while read; do
|
||||
REPLY="''${REPLY#$out/texmf}"
|
||||
ensureDir $out/texmf-config/"$REPLY"
|
||||
done
|
||||
|
||||
for i in $out/libexec/*/* :; do
|
||||
test "$i" = : && continue;
|
||||
test -f "$i" && \
|
||||
test -x "$i" && \
|
||||
echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i) && \
|
||||
chmod a+x $out/bin/$(basename $i)
|
||||
done
|
||||
|
||||
rm $out/texmf*/ls-R
|
||||
for i in web2c texconfig fonts/map; do
|
||||
cp -r $out/texmf/$i/* $out/texmf-config/$i || true
|
||||
done
|
||||
|
||||
TEXMFCONFIG=$out/texmf-config HOME=$PWD PATH=$PATH:$out/bin updmap --syncwithtrees
|
||||
PATH=$PATH:$out/bin mktexlsr $out/texmf*
|
||||
TEXMFCONFIG=$out/texmf-config HOME=$PWD PATH=$PATH:$out/bin updmap --syncwithtrees
|
||||
PATH=$PATH:$out/bin mktexlsr $out/texmf*
|
||||
'') ["minInit" "defEnsureDir" "addInputs"];
|
||||
|
||||
meta = {
|
||||
description = "TeX distribution directory";
|
||||
longDescription = ''
|
||||
Here all the files from different TeX-related
|
||||
packages are collected in one directory. Of
|
||||
course, mktexlsr is called. Later placed
|
||||
directories take precedence. It is supposed that
|
||||
share and libexec are symlinked, and bin is
|
||||
recreated with wrappers for libexec-located
|
||||
linked binaries.
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
args: with args;
|
||||
rec {
|
||||
name = "texlive-beamer-2007";
|
||||
src = fetchurl {
|
||||
url = mirror://debian/pool/main/l/latex-beamer/latex-beamer_3.07.orig.tar.gz;
|
||||
sha256 = "07ldhg5f0hcnhjgzg5g8ailqacn8zhqc8nl2jkxc43c2qxbvswbv";
|
||||
};
|
||||
|
||||
buildInputs = [texLive];
|
||||
propagatedBuildInputs = [texLiveLatexXColor texLivePGF];
|
||||
phaseNames = ["doCopy"];
|
||||
doCopy = fullDepEntry (''
|
||||
ensureDir $out/share/
|
||||
|
||||
ensureDir $out/texmf-dist/tex/latex/beamer
|
||||
cp -r * $out/texmf-dist/tex/latex/beamer
|
||||
|
||||
ln -s $out/texmf* $out/share/
|
||||
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
|
||||
|
||||
meta = {
|
||||
description = "Extra components for TeXLive: beamer class";
|
||||
};
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
args: with args;
|
||||
rec {
|
||||
name = "texlive-cm-super-2009";
|
||||
src = fetchurl {
|
||||
url = mirror://debian/pool/main/c/cm-super/cm-super_0.3.4.orig.tar.gz;
|
||||
sha256 = "0zrq4sr9ank35svkz3cfd7f978i9c8xbzdqm2c8kvxia2753v082";
|
||||
};
|
||||
|
||||
phaseNames = ["doCopy"];
|
||||
doCopy = fullDepEntry (''
|
||||
ensureDir $out/share/
|
||||
|
||||
ensureDir $out/texmf/fonts/enc
|
||||
ensureDir $out/texmf/fonts/map
|
||||
ensureDir $out/texmf/fonts/type1/public/cm-super
|
||||
cp pfb/*.pfb $out/texmf/fonts/type1/public/cm-super
|
||||
ensureDir $out/texmf/dvips/cm-super
|
||||
cp dvips/*.{map,enc} $out/texmf/dvips/cm-super
|
||||
cp dvips/*.enc $out/texmf/fonts/enc
|
||||
cp dvips/*.map $out/texmf/fonts/map
|
||||
ensureDir $out/texmf/dvipdfm/config
|
||||
cp dvipdfm/*.map $out/texmf/dvipdfm/config
|
||||
|
||||
ln -s $out/texmf* $out/share/
|
||||
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
|
||||
buildInputs = [texLive];
|
||||
|
||||
meta = {
|
||||
description = "Extra components for TeXLive: CM-Super fonts";
|
||||
maintainers = [ args.lib.maintainers.raskin ];
|
||||
|
||||
# Actually, arch-independent..
|
||||
platforms = [] ;
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
args: with args;
|
||||
rec {
|
||||
name = "context-2009.11.26";
|
||||
src = fetchurl {
|
||||
url = mirror://debian/pool/main/c/context/context_2009.11.26.orig.tar.gz;
|
||||
sha256 = "1qv3h97cyhjyvivs30fz9bqr77j348azagm7ijiyfrclvjjlwav9";
|
||||
};
|
||||
|
||||
buildInputs = [texLive];
|
||||
phaseNames = ["doCopy"];
|
||||
doCopy = fullDepEntry (''
|
||||
ensureDir $out/share/
|
||||
|
||||
ensureDir $out/texmf
|
||||
cp -r * $out/texmf
|
||||
|
||||
ln -s $out/texmf* $out/share/
|
||||
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
|
||||
|
||||
meta = {
|
||||
description = "ConTEXt TeX wrapper";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
args : with args;
|
||||
rec {
|
||||
src = fetchurl {
|
||||
url = mirror://debian/pool/main/t/texlive-bin/texlive-bin_2009.orig.tar.gz;
|
||||
sha256 = "0ywc8h4jnig53fs0bji2ivw5f9j6zlgdy477jqw7xvpc7migjpw7";
|
||||
};
|
||||
|
||||
texmfSrc = fetchurl {
|
||||
url = mirror://debian/pool/main/t/texlive-base/texlive-base_2009.orig.tar.gz;
|
||||
sha256 = "130z907xcxr10yrzbbmp9l8a00dabvi4bi702s5jxamjzav17cmf";
|
||||
};
|
||||
|
||||
langTexmfSrc = fetchurl {
|
||||
url = mirror://debian/pool/main/t/texlive-lang/texlive-lang_2009.orig.tar.gz;
|
||||
sha256 = "10shnsc71n95zy9ys938pljdid9ampmc50k4lji9wv53hm14laic";
|
||||
};
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
doMainBuild = fullDepEntry (''
|
||||
ensureDir $out
|
||||
ensureDir $out/nix-support
|
||||
cp ${setupHook} $out/nix-support/setup-hook.sh
|
||||
ensureDir $out/share
|
||||
tar xf ${texmfSrc} -C $out --strip-components=1
|
||||
tar xf ${langTexmfSrc} -C $out --strip-components=1
|
||||
|
||||
sed -e s@/usr/bin/@@g -i $(grep /usr/bin/ -rl . )
|
||||
|
||||
sed -e 's@\<env ruby@${ruby}/bin/ruby@' -i $(grep 'env ruby' -rl . )
|
||||
sed -e 's@\<env perl@${perl}/bin/perl@' -i $(grep 'env perl' -rl . )
|
||||
sed -e 's@\<env python@${python}/bin/python@' -i $(grep 'env python' -rl . )
|
||||
|
||||
sed -e '/ubidi_open/i#include <unicode/urename.h>' -i $(find . -name configure)
|
||||
sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . )
|
||||
sed -e '1i\#include <string.h>\n\#include <stdlib.h>' -i $( find libs/teckit -name '*.cpp' -o -name '*.c' )
|
||||
|
||||
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2"
|
||||
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu}/include/layout";
|
||||
|
||||
./Build --prefix="$out" --datadir="$out/share" --mandir "$out/share/man" --infodir "$out/share/info" \
|
||||
${args.lib.concatStringsSep " " configureFlags}
|
||||
cd Work
|
||||
'') ["minInit" "doUnpack" "addInputs" "defEnsureDir"];
|
||||
|
||||
doPostInstall = fullDepEntry(''
|
||||
mv $out/bin $out/libexec
|
||||
ensureDir $out/bin
|
||||
for i in "$out/libexec/"*"/"*; do
|
||||
test \( \! -d "$i" \) -a -x "$i" || continue
|
||||
echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i)
|
||||
chmod a+x $out/bin/$(basename $i)
|
||||
done
|
||||
[ -d $out/texmf-config ] || ln -s $out/texmf $out/texmf-config
|
||||
ln -s "$out/"*texmf* "$out/share/"
|
||||
|
||||
sed -e 's/.*pyhyph.*/=&/' -i $out/texmf-config/tex/generic/config/language.dat
|
||||
|
||||
PATH=$PATH:$out/bin mktexlsr $out/texmf*
|
||||
|
||||
HOME=. PATH=$PATH:$out/bin updmap-sys --syncwithtrees
|
||||
|
||||
# Prebuild the format files, as it used to be done with TeXLive 2007.
|
||||
# Luatex currently fails this way:
|
||||
#
|
||||
# This is a summary of all `failed' messages:
|
||||
# `luatex -ini -jobname=luatex -progname=luatex luatex.ini' failed
|
||||
# `luatex -ini -jobname=dviluatex -progname=dviluatex dviluatex.ini' failed
|
||||
#
|
||||
# I find it acceptable, hence the "|| true".
|
||||
echo "building format files..."
|
||||
ensureDir "$out/texmf-var/web2c"
|
||||
PATH="$PATH:$out/bin" fmtutil-sys --all || true
|
||||
|
||||
PATH=$PATH:$out/bin mktexlsr $out/texmf*
|
||||
'') ["minInit" "defEnsureDir" "doUnpack" "doMakeInstall"];
|
||||
|
||||
buildInputs = [
|
||||
zlib bzip2 ncurses libpng flex bison libX11 libICE
|
||||
xproto freetype t1lib gd libXaw icu ghostscript ed
|
||||
libXt libXpm libXmu libXext xextproto perl libSM
|
||||
ruby expat curl libjpeg python fontconfig
|
||||
];
|
||||
|
||||
configureFlags = [ "--with-x11"
|
||||
"--enable-ipc" "--with-mktexfmt"
|
||||
];
|
||||
|
||||
phaseNames = ["addInputs" "doMainBuild" "doMakeInstall" "doPostInstall"];
|
||||
|
||||
name = "texlive-core-2009";
|
||||
meta = {
|
||||
description = "A TeX distribution";
|
||||
maintainers = [ args.lib.maintainers.raskin ];
|
||||
platforms = args.lib.platforms.linux ++ args.lib.platforms.freebsd ;
|
||||
};
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
args: with args;
|
||||
rec {
|
||||
name = "texlive-extra-2009";
|
||||
src = fetchurl {
|
||||
url = mirror://debian/pool/main/t/texlive-extra/texlive-extra_2009.orig.tar.gz;
|
||||
sha256 = "04k48lxy76bad1270gb9k4aza2q13can2dbcf2hj0a3byls099kp";
|
||||
};
|
||||
|
||||
buildInputs = [texLive];
|
||||
phaseNames = ["doCopy"];
|
||||
doCopy = fullDepEntry (''
|
||||
ensureDir $out/share
|
||||
cp -r texmf* $out/
|
||||
ln -s $out/texmf* $out/share
|
||||
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
|
||||
|
||||
meta = {
|
||||
description = "Extra components for TeXLive";
|
||||
maintainers = [ args.lib.maintainers.raskin ];
|
||||
|
||||
# Actually, arch-independent..
|
||||
platforms = [] ;
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
args: with args;
|
||||
rec {
|
||||
name = "moderncv-2012.01.16";
|
||||
src = fetchurl {
|
||||
url = "http://mirror.ctan.org/macros/latex/contrib/moderncv.zip";
|
||||
sha256 = "1sfpj76p0z128rvxw0svh7dfrvf3zhmi3v7bkzfkll4byij34ni0";
|
||||
};
|
||||
|
||||
buildInputs = [texLive unzip];
|
||||
phaseNames = ["doCopy"];
|
||||
doCopy = fullDepEntry (''
|
||||
ensureDir $out/texmf/tex/latex/moderncv $out/texmf/doc $out/share
|
||||
mv *.cls *.sty $out/texmf/tex/latex/moderncv/
|
||||
mv examples $out/texmf/doc/moderncv
|
||||
ln -s $out/texmf* $out/share/
|
||||
'') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
|
||||
|
||||
meta = {
|
||||
description = "the moderncv class for TeXLive";
|
||||
maintainers = [ args.lib.maintainers.simons ];
|
||||
|
||||
# Actually, arch-independent..
|
||||
platforms = [] ;
|
||||
};
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
args: with args;
|
||||
|
||||
rec {
|
||||
name = "texlive-pgf-2007";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/pgf/pgf-2.00.tar.gz";
|
||||
sha256 = "0j57niag4jb2k0iyrvjsannxljc3vkx0iag7zd35ilhiy4dh6264";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [texLiveLatexXColor texLive];
|
||||
|
||||
phaseNames = ["doCopy"];
|
||||
doCopy = fullDepEntry (''
|
||||
ensureDir $out/share/
|
||||
ensureDir $out/texmf/tex/generic/pgf
|
||||
cp -r * $out/texmf/tex/generic/pgf
|
||||
ln -s $out/texmf* $out/share/
|
||||
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
|
||||
|
||||
meta = {
|
||||
description = "Extra components for TeXLive: graphics package";
|
||||
|
||||
longDescription = ''
|
||||
PGF is a macro package for creating graphics. It is platform-
|
||||
and format-independent and works together with the most
|
||||
important TeX backend drivers, including pdftex and dvips. It
|
||||
comes with a user-friedly syntax layer called TikZ.
|
||||
|
||||
Its usage is similar to pstricks and the standard picture
|
||||
environment. PGF works with plain (pdf-)TeX, (pdf-)LaTeX, and
|
||||
ConTeXt. Unlike pstricks , it can produce either PostScript or
|
||||
PDF output.
|
||||
'';
|
||||
|
||||
license = [ "GPLv2" "LPPLv1.3c" ];
|
||||
|
||||
homepage = http://tug.ctan.org/tex-archive/graphics/pgf/;
|
||||
};
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
addTeXMFPath () {
|
||||
if test -d "$1/share/texmf-nix"; then
|
||||
export TEXINPUTS="${TEXINPUTS}${TEXINPUTS:+:}$1/share/texmf-nix//:"
|
||||
fi
|
||||
}
|
||||
|
||||
envHooks=(${envHooks[@]} addTeXMFPath)
|
||||
@@ -1,37 +0,0 @@
|
||||
args: with args;
|
||||
rec {
|
||||
name = "texlive-latex-xcolor-2007";
|
||||
src = fetchurl {
|
||||
url = mirror://debian/pool/main/l/latex-xcolor/latex-xcolor_2.11.orig.tar.gz;
|
||||
sha256 = "0z78xfn5iq5ncg82sd6v2qrxs8p9hs3m4agaz90p4db5dvk2w0mn";
|
||||
};
|
||||
|
||||
buildInputs = [texLive];
|
||||
phaseNames = ["doCopy"];
|
||||
doCopy = fullDepEntry (''
|
||||
export HOME=$PWD
|
||||
ensureDir $out/share/
|
||||
|
||||
ensureDir $out/texmf/tex/latex/xcolor
|
||||
ensureDir $out/texmf/dvips/xcolor
|
||||
latex xcolor.ins
|
||||
cp *.sty *.def $out/texmf/tex/latex/xcolor
|
||||
cp *.pro $out/texmf/dvips/xcolor
|
||||
|
||||
#latex xcolor.dtx
|
||||
#latex xcolor.dtx
|
||||
#makeindex -s gind.ist xcolor.idx
|
||||
#latex xcolor.dtx
|
||||
#latex xcolor.dtx
|
||||
|
||||
rm *.sty *.pro *.ins *.def *.dtx
|
||||
ensureDir $out/texmf/doc/latex-xcolor
|
||||
cp * $out/texmf/doc/latex-xcolor
|
||||
|
||||
ln -s $out/texmf* $out/share/
|
||||
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
|
||||
|
||||
meta = {
|
||||
description = "Extra components for TeXLive: LaTeX color support";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user