From d9b5b3f2f151742935e03805fd20c7dafb04af0f Mon Sep 17 00:00:00 2001 From: Yuval Kogman Date: Thu, 25 May 2023 22:10:36 +0300 Subject: [PATCH] Add latex environment - full texlive, because that's what most people expect - tectonic is fairly lightweight if unused - texlab for lsp support --- README.md | 11 +++++++++++ flake.nix | 5 +++++ latex/.envrc | 1 + latex/flake.lock | 43 +++++++++++++++++++++++++++++++++++++++++++ latex/flake.nix | 28 ++++++++++++++++++++++++++++ 5 files changed, 88 insertions(+) create mode 100644 latex/.envrc create mode 100644 latex/flake.lock create mode 100644 latex/flake.nix diff --git a/README.md b/README.md index eb7c07d..fee6836 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Once your preferred template has been initialized, you can use the provided shel | [Hashicorp] tools | [`hashi`](./hashi/) | | [Java] | [`java`](./java/) | | [Kotlin] | [`kotlin`](./kotlin/) | +| [LaTeX] | [`latex`](./latex/) | | [Nickel] | [`nickel`](./nickel/) | | [Nim] | [`nim`](./nim/) | | [Nix] | [`nix`](./nix/) | @@ -135,6 +136,12 @@ The sections below list what each template includes. In all cases, you're free t - [Kotlin] 1.7.10-release-333 - [Gradle] 7.5 +### [`latex`](./latex/) + +- [texlive] +- [tectonic] +- [texlab] + ### [`nickel`](./nickel/) - [Nickel] 0.2.0 @@ -273,6 +280,7 @@ All of the templates have only the root [flake](./flake.nix) as a flake input. T [iex]: https://hexdocs.pm/iex/IEx.html [java]: https://java.com [kotlin]: https://kotlinlang.org +[latex]: https://www.latex-project.org/ [leiningen]: https://leiningen.org [levant]: https://github.com/hashicorp/levant [lorri]: https://github.com/target/lorri @@ -316,8 +324,11 @@ All of the templates have only the root [flake](./flake.nix) as a flake input. T [statix]: https://github.com/nerdypepper/statix [sbt]: https://www.scala-sbt.org [spago]: https://github.com/purescript/spago +[tectonic]: https://tectonic-typesetting.github.io/ [terraform]: https://terraform.io [terragrunt]: https://terragrunt.gruntwork.io +[texlab]: https://github.com/latex-lsp/texlab +[texlive]: https://www.tug.org/texlive/ [tflint]: https://github.com/terraform-linters/tflint [vault]: https://www.vaultproject.io [virtualenv]: https://pypi.org/project/virtualenv diff --git a/flake.nix b/flake.nix index 51cd3b9..3aa3e6a 100644 --- a/flake.nix +++ b/flake.nix @@ -65,6 +65,11 @@ description = "Kotlin development environment"; }; + latex = { + path = ./latex; + description = "LaTeX development environment"; + }; + nickel = { path = ./nickel; description = "Nickel development environment"; diff --git a/latex/.envrc b/latex/.envrc new file mode 100644 index 0000000..a5dbbcb --- /dev/null +++ b/latex/.envrc @@ -0,0 +1 @@ +use flake . diff --git a/latex/flake.lock b/latex/flake.lock new file mode 100644 index 0000000..ecac920 --- /dev/null +++ b/latex/flake.lock @@ -0,0 +1,43 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1679163677, + "narHash": "sha256-VC0tc3EjJZFPXgucFQAYMIHce5nJWYR0kVCk4TVg6gg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c3912035d00ef755ab19394488b41feab95d2e40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/latex/flake.nix b/latex/flake.nix new file mode 100644 index 0000000..977e588 --- /dev/null +++ b/latex/flake.nix @@ -0,0 +1,28 @@ +{ + description = "A Nix-flake-based LaTeX development environment"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/release-22.11"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = + { self + , nixpkgs + , flake-utils + }: + + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { inherit system; }; + in + { + devShells.default = pkgs.mkShell { + packages = with pkgs; [ + texlive.combined.scheme-full + texlab + tectonic + ]; + }; + }); +}