Package 'latexdiffr'

Title: Diff TeX, 'rmarkdown' or 'quarto' Files Using the 'latexdiff' Utility
Description: Produces a PDF diff of two 'rmarkdown', 'quarto', Sweave or TeX files, using the external 'latexdiff' utility.
Authors: David Hugh-Jones [aut, cre]
Maintainer: David Hugh-Jones <[email protected]>
License: MIT + file LICENSE
Version: 0.2.0.9000
Built: 2024-12-12 03:56:31 UTC
Source: https://github.com/hughjonesd/latexdiffr

Help Index


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

For more details see CTAN or github. You'll need a working perl installation.

You can set the path to latexdiff in the environment variable "LATEXDIFF_PATH", using Sys.setenv() or via the command line. If this is unset, it is assumed to be "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:

  • If input and output files are in different directories, the "diff.tex" file may have incorrect paths for e.g. included figures. latexdiff will add the --flatten option in this case, but things still are not guaranteed to work.

  • Sometimes the "diff.tex" file fails to compile to pdf. If so, set compile = FALSE and try editing the tex file manually.

Value

Invisible NULL.

Examples

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

## End(Not run)