gradle-latex

No description provided

License

License

Categories

Categories

Gradle Build Tools
GroupId

GroupId

org.danilopianini
ArtifactId

ArtifactId

gradle-latex
Last Version

Last Version

0.2.7
Release Date

Release Date

Type

Type

jar
Description

Description

gradle-latex
No description provided
Project URL

Project URL

https://github.com/DanySK/gradle-latex
Source Code Management

Source Code Management

https://github.com/DanySK/gradle-latex

Download gradle-latex

How to add to project

<!-- https://jarcasting.com/artifacts/org.danilopianini/gradle-latex/ -->
<dependency>
    <groupId>org.danilopianini</groupId>
    <artifactId>gradle-latex</artifactId>
    <version>0.2.7</version>
</dependency>
// https://jarcasting.com/artifacts/org.danilopianini/gradle-latex/
implementation 'org.danilopianini:gradle-latex:0.2.7'
// https://jarcasting.com/artifacts/org.danilopianini/gradle-latex/
implementation ("org.danilopianini:gradle-latex:0.2.7")
'org.danilopianini:gradle-latex:jar:0.2.7'
<dependency org="org.danilopianini" name="gradle-latex" rev="0.2.7">
  <artifact name="gradle-latex" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.danilopianini', module='gradle-latex', version='0.2.7')
)
libraryDependencies += "org.danilopianini" % "gradle-latex" % "0.2.7"
[org.danilopianini/gradle-latex "0.2.7"]

Dependencies

runtime (1)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.4.21

Project Modules

There are no modules declared in this project.

gradle-latex

A Gradle plugin for building LaTeX projects

Rationale

I wanted something to smootly build latex in CI without having to fiddle with bash

Usage

Importing the plugin

plugins {
    id ("org.danilopianini.gradle-latex") version "0.1.0" // Exemplificatory, pick the last stable one!
}

Configuring the plugin

Minimal configuration

latex {
    "myMainLatexFile"()
}

This configuration guesses your main tex file to be myMainLatexFile.tex, autodetects if a myMainLatexFile.bib is present, and builds the resulting myMainLatexFile.pdf.

Building multiple main files

latex {
    "oneFile"()
    "anotherFile"()
}

You can have one entry in the latex section of your build.gradle.kts per project you want to build. In case your files are spread across multiple directories, consider each sub-directory a subproject and configure Gradle accordingly.

See for instance the example with Elsevier's CAS LaTeX template, in particular look at settings.gradle.kts and build.gradle.kts both in the root and in the doc folder

Configuration options

Global options can be specified directly in the latex block. Per-project options can be specified in a block after the main file name. The following examples shows the available options and their default values.

latex {
    terminalEmulator.set("bash") // Your terminal
    waitTime.set(1) // How long before considering a process stalled
    waitUnit.set(TimeUnit.MINUTES) // Time unit for the number above
    pdfLatexCommand.set("pdflatex")
    bibTexCommand.set("bibtex")
    "myMainLatexFile" {
        // Options for pdflatex
        extraArguments = listOf("-shell-escape", "-synctex=1", "-interaction=nonstopmode", "-halt-on-error")
        /*
         * Additional files and directories whose change should trigger a build in case gradle is used with -t flag.
         * Can be passed files, strings, or any Object compatible with Gradle's project.files
         */
        watching = emptyList()
    }
    "anotherMainLatexFile"()
}

Contributing to the project

I gladly review pull requests and I'm happy to improve the work. If the software was useful to you, please consider supporting my development activity paypal

Versions

Version
0.2.7
0.2.6-dev1p-58ba9d3
0.2.6-dev1o-26ccde1
0.2.6-dev1e-f488f27
0.2.6-dev1e-f3a7040
0.2.6-dev1d-da9f8c9
0.2.6-dev1d-8d99fed
0.2.6-dev1a-ad89155
0.2.6-dev1a-2e99a0d
0.2.3
0.2.2
0.2.1-dev1c+a2afb19
0.2.1
0.2.0
0.1.1-dev01+4d0243b
0.1.1
0.1.0-dev03+a250213
0.1.0-archeo+c5ccc7c
0.1.0-archeo+514a80f
0.1.0-archeo+2e4c60a
0.1.0