#+TITLE: Different notes concerning the workflow around the dossier * Context The document in this directory is the document I used for my ATER applications in 2015, and MCF applications in 2016 and 2017. I keep updating it to keep track of what I am doing with my career. One of the goals of this document is helping myself prepare my professorship applications later on, but the career tracking part is increasingly important. * Building in command line Building the dossier follows the usual LaTeX build process. 1. Ensure =biber= is available, e.g. by running the script =guix-env=. 2. Run =lualatex candidature.tex= once. 3. Run =biber canditature= to update the references. 2. Run =lualatex candidature.tex= a second time and a the third time to get all the references right. * Structure The dossier is split over very many =.tex= files, a =candidature.sty= file, and a number of =.bib= files storing various bibliographies. The =.tex= files contain a chapter of the dossier each. The =.bib= files group the references roughly by various criteria: - domain: =algebra.bib=, =mcrs.bib= (model checking of reaction systems), etc. - application destination: =evry.bib=, =lifo.bib=, etc. - people: =hdr_noverlan.bib= (citations in Sergey's HDR not including him), =hdr_verlan.bib= (citations of Sergey's own work in his HDR). Additionally, =sivanov.bib= corresponds to the latest export of by bibliography from [[https://dblp.uni-trier.de/pers/hd/i/Ivanov_0001:Sergiu][DBLP]], while =sivanov-extra.bib= lists some publications which are not tracked on DBLP. * My CV in French The dossier includes my two-page short academic CV. I use the script [[file:make-cv-fr][make-cv-fr]] to extract it to [[file:sivanov-cv-fr.pdf][sivanov-cv-fr.pdf]]. * Old building with Shake :old: I don't use Shake any more, because it has been a major hassle over the years. I use Haskell's [[https://hackage.haskell.org/package/shake][Shake]] build system to fully compile my dossier. The code defining how to build the dossier is in file:_shake/Build.hs. Essentially, this file tries to runs Biber and the LaTeX a sufficient number of times to get the references right. It does not always correctly guess the number of times, so I sometimes need to touch a file to make Shake recognise that a rebuild is due. ** Building the build system When file:_shake/Build.hs is updated, the build system needs to be rebuild. A good way to do it is using Cabal in the following way: #+BEGIN_SRC shell cabal update # update the package lists cabal build # rebuild the package #+END_SRC Note that I set up a sandbox for the build system, so the previous commands operate in this sandbox. I don't rebuild the build system often, so most of the times I do it I have to bump upper bounds on the versions of dependencies in file:_shake/build.cabal. The binary resulting from the build is usually placed in a deeply nested subdirectory of file:_shake. For convenience, the symlink =build= in the root directory of the dossier points to this binary. * Local Variables :noexport: # Local Variables: # eval: (auto-fill-mode) # ispell-local-dictionary: "en" # org-link-file-path-type: relative # End: