summaryrefslogtreecommitdiffstats
path: root/usecases/desktop/development/latex.nix
blob: d9dc80adafd8a391963210409cea83ca8260a3ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
inputs:

{ pkgs, config, ... }:

let
  # TODO: add latexmkrc
  texliveEnv = with pkgs; texlive.combine {
    inherit (texlive)
      scheme-small

      latexmk
      texdoc
      # Needed for texdoc but somehow not automatically added
      luatex

      collection-langenglish
      collection-langfrench
      csquotes

      glossaries
      glossaries-english
      glossaries-french
      glossaries-extra

      microtype
      fontspec
      lm-math
      cm-super
      a4wide

      biber
      biblatex
      biblatex-ieee
      biblatex-apa

      nath
      stmaryrd

      placeins
      wrapfig

      algorithms
      algorithmicx

      # For Metropolis Beamer theme
      catchfile

      minted

      asymptote

      todonotes

      standalone

      dirtree

      cleveref
      xurl
      # For varioref
      tools

      footmisc

      morewrites

      # For Metropolis Beamer theme
      pgfopts

      beamertheme-metropolis
      beamercolorthemeowl

      # Dependencies somehow missing
      logreq xstring fvextra ifplatform framed
      # For standalone
      currfile
      # For glossaries
      xindy mfirstuc xfor datatool tracklang
      # For datatool
      substr
      # For asymptote
      everypage media9 ocgx2
      ;
  };
in
{

  users.extraUsers.minijackson.packages = with pkgs; [
    texliveEnv
    biber
    #tomorrowPygments
    asymptote
    ghostscript
    xdotool
  ];

  # Fira Code is nice for code reading
  fonts.fonts = with pkgs; [ fira-code cm_unicode ];

  vim = {
    lsp.texlab = {
      cmd = [ "${pkgs.unstable.texlab}/bin/texlab" ];
      settings.texlab.build = {
        executable = "${texliveEnv}/bin/latexmk";
        args = [ "-synctex=1" "-interaction=nonstopmode" "-shell-escape" "-use-make" "-8bit" "-xelatex" "-output-directory=latexmk-build" "%f" ];
        auxDirectory = [ "latexmk-build" ];
      };
    };
  };
}