summaryrefslogtreecommitdiffstats
path: root/usecases/desktop/development/latex.nix
blob: 2fe7999a2496bb80d93adc68e010be3b73d2a1f8 (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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

      svg
      transparent

      textpos

      # For Octavo Tufte template {{{

      epigraph
      # For epigraph
      nextpage

      tcolorbox
      # For tcolorbox
      environ listingsutf8

      tufte-latex
      # For tufte-latex
      hardwrap titlesec palatino

      # }}}

      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" ];
      };
    };
  };
}