From 92ed41381f40c97b52b0e96f0eaeaa9025091411 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Tue, 24 Oct 2017 15:32:28 +0200 Subject: Bachelor's thesis; look up literature --- .gitignore | 4 ++++ gup/pdf.gup | 34 +++++++++++++++++++++++----------- preamble.tex | 1 + shell.nix | 16 +++++++++------- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 66f7816..958ee8d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,7 @@ **/*.o /ws2015/ffp/blaetter/12/demo.sqlite .shell.drv +/bachelor-thesis/literature.meta.yml +/bachelor-thesis/literature.pdf +/ss2016/**/*.pdf +/ss2017/**/*.pdf diff --git a/gup/pdf.gup b/gup/pdf.gup index d0ebac5..31515af 100755 --- a/gup/pdf.gup +++ b/gup/pdf.gup @@ -28,7 +28,11 @@ if [[ $beamerAspects[(i)${2:r:e}] -le $#beamerAspects ]]; then fi base=(${2:r}.(md|lhs|tex)([1])) -metadata=(${2:r}.meta.yml([1]N)) +metadata=${2:r}.meta.yml + +if ! [[ -e ${metadata} ]] && ! gup --buildable ${metadata}; then + metadata="" +fi gup -u ${base} ${metadata} preamble.tex @@ -41,9 +45,13 @@ cd ${base:h} input=${base} typeset -a extraArgs -extraArgs=(-R -V "geometry=margin=2cm" -V "fontfamily=libertine" -H ${buildDir}/preamble.tex --listings --latex-engine=lualatex --filter=pandoc-citeproc --biblatex) +extraArgs=(-R -V "geometry=margin=2cm" -V "fontfamily=libertine" -H ${buildDir}/preamble.tex --listings --latex-engine=lualatex --biblatex) +#extraArgs+=(--filter=pandoc-citeproc) +compileDir=$(mktemp -d) +cleanupList+=("cd /" "rm -rfv ${compileDir}") + if [[ -n ${metadata} ]]; then input=$(mktemp) cleanupList+=("rm -v ${input}") @@ -56,10 +64,19 @@ if [[ -n ${metadata} ]]; then logged pandoc -R ${class} -t native ${base} >>${input} extraArgs+=(-f native) -fi -compileDir=$(mktemp -d) -cleanupList+=("cd /" "rm -rfv ${compileDir}") + + bibFiles=$(pandoc -f markdown -t json -s ${metadata} | jq -r '.meta.bibliography.c[] | (.c[0].c)? // .c') + + gup -u ${(f)bibFiles} + + for bibFile (${(f)bibFiles}); do + targetPath=${compileDir}/$(realpath --relative-to=${base:h} -- ${base:h}/${bibFile:h}) + + [[ ! -e ${targetPath} ]] && logged mkdir -p ${targetPath} + logged cp ${bibFile} ${targetPath}/${bibFile:t} + done +fi if [[ ${base:t:r} == "presentation" ]]; then gup -u ${buildDir}/beamer-template.tex @@ -70,15 +87,10 @@ fi logged pandoc ${extraArgs} -o ${compileDir}/${base:t:r}.tex ${input} >&2 cd ${compileDir} -for f (bib); do - printf "Checking for ā€˜%sā€™\n" ${base:h}/${f} >&2 - [[ -e ${base:h}/${f} ]] || continue - logged rsync -av ${base:h}/${f} . -done # cat -n ${base:t:r}.tex >&2 -max=5 +max=10 runs=0 run=true while ${run} && [[ ${runs} -lt ${max} ]]; do diff --git a/preamble.tex b/preamble.tex index 369abf6..5f1fe95 100644 --- a/preamble.tex +++ b/preamble.tex @@ -12,6 +12,7 @@ \usepackage{stmaryrd} \usepackage{cancel} \usepackage{array} +\usepackage{xfrac} \usetikzlibrary{positioning} diff --git a/shell.nix b/shell.nix index 60e1a1d..3b5b38b 100644 --- a/shell.nix +++ b/shell.nix @@ -6,15 +6,17 @@ pkgs.stdenv.mkDerivation rec { buildInputs = [ pkgs.gup pkgs.jdk pkgs.zip - pkgs.strace - pkgs.gcc - (pkgs.callPackage ./mars.nix {}) - pkgs.sqlite - (pkgs.haskellPackages.ghcWithPackages (p: - with p; [ yesod yesod-bin pandoc pandoc-citeproc monad-par persistent-sqlite containers base-unicode-symbols containers-unicode-symbols - ])) + # pkgs.strace + # pkgs.gcc + # (pkgs.callPackage ./mars.nix {}) + # pkgs.sqlite + (pkgs.haskellPackages.ghcWithPackages (p: + with p; [ pandoc pandoc-citeproc + # yesod yesod-bin monad-par persistent-sqlite containers base-unicode-symbols containers-unicode-symbols + ])) pkgs.texlive.combined.scheme-full pkgs.biber + pkgs.pdfpc ]; shellHook = '' export PROMPT_INFO="${name}" -- cgit v1.2.3