Type: Package
Title: Diff TeX, 'rmarkdown' or 'quarto' Files Using the 'latexdiff' Utility
Version: 0.2.0
Author: David Hugh-Jones [aut, cre]
Maintainer: David Hugh-Jones <davidhughjones@gmail.com>
Description: Produces a PDF diff of two 'rmarkdown', 'quarto', Sweave or TeX files, using the external 'latexdiff' utility.
License: MIT + file LICENSE
URL: https://github.com/hughjonesd/latexdiffr
BugReports: https://github.com/hughjonesd/latexdiffr/issues
Encoding: UTF-8
Imports: assertthat, fs, rprojroot
Suggests: tinytex, rmarkdown, knitr, quarto, testthat, covr
SystemRequirements: latexdiff
RoxygenNote: 7.2.3
NeedsCompilation: no
Packaged: 2024-02-16 09:51:55 UTC; davidhugh-jones
Repository: CRAN
Date/Publication: 2024-02-16 10:10:02 UTC

Call latexdiff on git revisions

Description

git_latexdiff() checks out a previous version of a file and calls latexdiff on it.

Usage

git_latexdiff(path, revision, clean = TRUE, ...)

Arguments

path

File path to diff

revision

Revision, specified in a form that git understands. See ⁠man gitrevisions⁠

clean

Clean up intermediate files, including the checked out file?

...

Arguments passed to latexdiff()

Details

git_latexdiff only checks out the specific file in path. If your Rmd file depends on external resources which have also changed, you will need to checkout the old revision as a whole and create the tex file manually.

Value

The result of latexdiff.

Examples

## Not run: 
git_latexdiff("file1.Rmd", "HEAD^")
git_latexdiff("file1.Rmd", "master@{7 days ago}")

## End(Not run)

Produce a diff of two files using latexdiff

Description

latexdiff() uses the external utility latexdiff to create a PDF file showing differences between two Rmd, qmd, Rnw or TeX files.

Usage

latexdiff(
  path1,
  path2,
  output = "diff",
  compile = TRUE,
  open = interactive(),
  clean = TRUE,
  quiet = TRUE,
  output_format = NULL,
  ld_opts = "--replace-context2cmd=\"none\""
)

Arguments

path1

Path to the first file.

path2

Path to the second file.

output

File name of the output, without the .tex extension.

compile

Logical. Compile the diff from tex to pdf?

open

Logical. Automatically open the resulting pdf?

clean

Logical. Clean up intermediate TeX files?

quiet

Logical. Suppress printing? Passed to render and knit, and hides standard error of latexdiff itself.

output_format

An rmarkdown output format for Rmd files, probably rmarkdown::latex_document(). The default uses the options defined in the Rmd files. YAML front matter.

ld_opts

Character vector of options to pass to latexdiff. The default avoids some problems with Rmd files.

Details

You will need the latexdiff utility installed on your system:

# on MacOS:
brew install latexdiff

# on Linux:
sudo apt install latexdiff

File types are determined by extension,which should be one of .tex, .Rmd, .qmd or .rnw. Rmd files are processed by rmarkdown::render(). Rnw files are processed by knitr::knit(). qmd files are processed by quarto::quarto_render().

latexdiff is not perfect. Some changes will confuse it. In particular:

Value

Invisible NULL.

Examples

## Not run: 
latexdiff("file1.Rmd", "file2.Rmd")

## End(Not run)

mirror server hosted at Truenetwork, Russian Federation.