From a489176691d69116ddff58a4021dc22998629d8e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 13 Dec 2009 01:30:42 +0000 Subject: install new script latexdiff git-svn-id: svn://tug.org/texlive/trunk@16379 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf/doc/man/man1/latexdiff-vc.1 | 235 +++++++++++ Master/texmf/doc/man/man1/latexdiff.1 | 666 +++++++++++++++++++++++++++++++ Master/texmf/doc/man/man1/latexrevise.1 | 235 +++++++++++ 3 files changed, 1136 insertions(+) create mode 100644 Master/texmf/doc/man/man1/latexdiff-vc.1 create mode 100644 Master/texmf/doc/man/man1/latexdiff.1 create mode 100644 Master/texmf/doc/man/man1/latexrevise.1 (limited to 'Master/texmf') diff --git a/Master/texmf/doc/man/man1/latexdiff-vc.1 b/Master/texmf/doc/man/man1/latexdiff-vc.1 new file mode 100644 index 00000000000..1c5946d6fdf --- /dev/null +++ b/Master/texmf/doc/man/man1/latexdiff-vc.1 @@ -0,0 +1,235 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "LATEXDIFF-VC 1" +.TH LATEXDIFF-VC 1 "2007-07-24" "perl v5.8.5" " " +.SH "NAME" +latexdiff\-vc \- wrapper script that calls latexdiff for different versions of a file under version management (CVS, RCS or SVN) +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBlatexdiff-vc\fR [ \fIlatexdiff-options\fR ] [ \fIlatexdiff-vc-options\fR ] \fB\-r\fR [\fIrev1\fR] [\fB\-r\fR \fIrev2\fR] \fIfile1.tex\fR [ \fIfile2.tex\fR ...] +.PP +.Vb 1 +\& or +.Ve +.PP +\&\fBlatexdiff-vc\fR [ \fIlatexdiff-options\fR ] [ \fIlatexdiff-vc-options\fR ][ \fB\-\-postscript\fR | \fB\-\-pdf\fR ] \fIold.tex\fR \fInew.tex\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fIlatexdiff-vc\fR is a wrapper script that applies \fIlatexdiff\fR to a +file, or multiple files under version control (\s-1CVS\s0 or \s-1RCS\s0), and optionally runs the +sequence of \f(CW\*(C`latex\*(C'\fR and \f(CW\*(C`dvips\*(C'\fR or \f(CW\*(C`pdflatex\*(C'\fR commands necessary to +produce pdf or postscript output of the difference tex file(s). It can +also be applied to a pair of files to automatise the generation of difference +file in postscript or pdf format. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-\-rcs\fR, \fB\-\-svn\fR, or \fB\-\-cvs\fR" 4 +.IX Item "--rcs, --svn, or --cvs" +Set the version system. +If no version system is specified, latexdiff-vc will venture a guess. +.Sp +latexdiff-cvs and latexdiff-rcs are variants of latexdiff-vc which default to +the respective versioning system. However, this default can still be overridden using the options above. +.IP "\fB\-r\fR, \fB\-r\fR \fIrev\fR or \fB\-\-revision\fR, \fB\-\-revision=\fR\fIrev\fR" 4 +.IX Item "-r, -r rev or --revision, --revision=rev" +Choose revision (under \s-1RCS\s0, \s-1CVS\s0 or \s-1SVN\s0). One or two \fB\-r\fR options can be +specified, and the resulting in different behaviour: +.RS 4 +.IP "\fBlatexdiff-vc\fR \-r \fIfile.tex\fR ..." 4 +.IX Item "latexdiff-vc -r file.tex ..." +compares \fIfile.tex\fR with the most recent version checked into \s-1RCS\s0. +.IP "\fBlatexdiff-vc\fR \-r \fIrev1\fR \fIfile.tex\fR ..." 4 +.IX Item "latexdiff-vc -r rev1 file.tex ..." +compares \fIfile.tex\fR with revision \fIrev1\fR. +.IP "\fBlatexdiff-vc\fR \-r \fIrev1\fR \-r \fIrev2\fR \fIfile.tex\fR ..." 4 +.IX Item "latexdiff-vc -r rev1 -r rev2 file.tex ..." +compares revisions \fIrev1\fR and \fIrev2\fR of \fIfile.tex\fR. +.Sp +Multiple files can be specified for all of the above options. All files must have the +extension \f(CW\*(C`.tex\*(C'\fR, though. +.IP "\fBlatexdiff-vc\fR \fIold.tex\fR \fInew.tex\fR" 4 +.IX Item "latexdiff-vc old.tex new.tex" +compares two files. +.RE +.RS 4 +.Sp +The name of the difference file is generated automatically and +reported to stdout. +.RE +.IP "\fB\-d\fR or \fB\-\-dir\fR \fB\-d\fR \fIpath\fR or \fB\-\-dir=\fR\fIpath\fR" 4 +.IX Item "-d or --dir -d path or --dir=path" +Rather than appending the string \f(CW\*(C`diff\*(C'\fR and optionally the version +numbers given to the output\-file, this will prepend a directory name \f(CW\*(C`diff\*(C'\fR +to the +original filename, creating the directory and subdirectories should they not exist already. This is particularly useful in order to clone a +complete directory hierarchy. Optionally, a pathname \fIpath\fR can be specified, which is prepended instead of \f(CW\*(C`diff\*(C'\fR. +.IP "\fB\-\-ps\fR or \fB\-\-postscript\fR" 4 +.IX Item "--ps or --postscript" +Generate postscript output from difference file. This will run the +sequence \f(CW\*(C`latex; latex; dvips\*(C'\fR on the difference file (do not use +this option in the rare cases, where three \f(CW\*(C`latex\*(C'\fR commands are +required if you care about correct referencing). If the difference +file contains a \f(CW\*(C`\ebibliography\*(C'\fR tag, run the sequence \f(CW\*(C`latex; +bibtex; latex; latex; dvips\*(C'\fR. +.IP "\fB\-\-pdf\fR" 4 +.IX Item "--pdf" +Generate pdf output from difference file using \f(CW\*(C`pdflatex\*(C'\fR. This will +run the sequence \f(CW\*(C`pdflatex; pdflatex\*(C'\fR on the difference file, or +\&\f(CW\*(C`pdflatex; bibtex; pdflatex; pdflatex\*(C'\fR for files requiring bibtex. +.IP "\fB\-\-force\fR" 4 +.IX Item "--force" +Overwrite existing diff files without asking for confirmation. Default +behaviour is to ask for confirmation before overwriting an existing difference +file. +.IP "\fB\-\-help\fR or \fB\-h\fR" 4 +.IX Item "--help or -h" +Show help text +.IP "\fB\-\-version\fR" 4 +.IX Item "--version" +Show version number +.PP +All other options are passed on to \f(CW\*(C`latexdiff\*(C'\fR. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +latexdiff +.SH "PORTABILITY" +.IX Header "PORTABILITY" +\&\fIlatexdiff-vc\fR uses external commands and is therefore +limited to Unix-like systems. It also requires the \s-1RCS\s0 version control +system and latex to be installed on the system. Modules from Perl 5.8 +or higher are required. +.SH "AUTHOR" +.IX Header "AUTHOR" +Copyright (C) 2005 Frederik Tilmann +.PP +This program is free software; you can redistribute it and/or modify +it under the terms of the \s-1GNU\s0 General Public License Version 2 +Contributors: S Utcke, H Bruyninckx diff --git a/Master/texmf/doc/man/man1/latexdiff.1 b/Master/texmf/doc/man/man1/latexdiff.1 new file mode 100644 index 00000000000..7b6653fca4e --- /dev/null +++ b/Master/texmf/doc/man/man1/latexdiff.1 @@ -0,0 +1,666 @@ +.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "LATEXDIFF 1" +.TH LATEXDIFF 1 "2007-10-19" "perl v5.8.0" " " +.SH "NAME" +latexdiff \- determine and markup differences between two latex files +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBlatexdiff\fR [ \fB\s-1OPTIONS\s0\fR ] \fIold.tex\fR \fInew.tex\fR > \fIdiff.tex\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +Briefly, \fIlatexdiff\fR is a utility program to aid in the management of +revisions of latex documents. It compares two valid latex files, here +called \f(CW\*(C`old.tex\*(C'\fR and \f(CW\*(C`new.tex\*(C'\fR, finds significant differences +between them (i.e., ignoring the number of white spaces and position +of line breaks), and adds special commands to highlight the +differences. Where visual highlighting is not possible, e.g. for changes +in the formatting, the differences are +nevertheless marked up in the source. +.PP +The program treats the preamble differently from the main document. +Differences between the preambles are found using line-based +differencing (similarly to the Unix diff command, but ignoring white +spaces). A comment, "\f(CW\*(C`%DIF\ >\*(C'\fR" is appended to each added line, i.e. a +line present in \f(CW\*(C`new.tex\*(C'\fR but not in \f(CW\*(C`old.tex\*(C'\fR. Discarded lines + are deactivated by prepending "\f(CW\*(C`%DIF\ <\*(C'\fR". Changed blocks are preceded by +comment lines giving information about line numbers in the original files. Where there are insignificant +differences, the resulting file \f(CW\*(C`diff.tex\*(C'\fR will be similar to +\&\f(CW\*(C`new.tex\*(C'\fR. At the end of the preamble, the definitions for \fIlatexdiff\fR markup commands are inserted. +In differencing the main body of the text, \fIlatexdiff\fR attempts to +satisfy the following guidelines (in order of priority): +.IP "1" 3 +.IX Item "1" +If both \f(CW\*(C`old.tex\*(C'\fR and \f(CW\*(C`new.tex\*(C'\fR are valid LaTeX, then the resulting +\&\f(CW\*(C`diff.tex\*(C'\fR should also be valid LateX. (\s-1NB\s0 If a few plain TeX commands +are used within \f(CW\*(C`old.tex\*(C'\fR or \f(CW\*(C`new.tex\*(C'\fR then \f(CW\*(C`diff.tex\*(C'\fR is not +guaranteed to work but usually will). +.IP "2" 3 +.IX Item "2" +Significant differences are determined on the level of +individual words. All significant differences, including differences +between comments should be clearly marked in the resulting source code +\&\f(CW\*(C`diff.tex\*(C'\fR. +.IP "3" 3 +.IX Item "3" +If a changed passage contains text or text-producing commands, then +running \f(CW\*(C`diff.tex\*(C'\fR through LateX should produce output where added +and discarded passages are highlighted. +.IP "4" 3 +.IX Item "4" +Where there are insignificant differences, e.g. in the positioning of +line breaks, \f(CW\*(C`diff.tex\*(C'\fR should follow the formatting of \f(CW\*(C`new.tex\*(C'\fR +.PP +For differencing the same algorithm as \fIdiff\fR is used but words +instead of lines are compared. An attempt is made to recognize +blocks which are completely changed such that they can be marked up as a unit. +Comments are differenced line by line +but the number of spaces within comments is ignored. Commands including +all their arguments are generally compared as one unit, i.e., no mark-up +is inserted into the arguments of commands. However, for a selected +number of commands (for example, \f(CW\*(C`\ecaption\*(C'\fR and all sectioning +commands) the last argument is known to be text. This text is +split into words and differenced just as ordinary text (use options to +show and change the list of text commands, see below). As the +algorithm has no detailed knowledge of LaTeX, it assumes all pairs of +curly braces immediately following a command (i.e. a sequence of +letters beginning with a backslash) are arguments for that command. +As a restriction to condition 1 above it is thus necessary to surround +all arguments with curly braces, and to not insert +extraneous spaces. For example, write +.PP +.Vb 1 +\& \esection{\etextem{This is an emphasized section title}} +.Ve +.PP +and not +.PP +.Vb 1 +\& \esection {\etextem{This is an emphasized section title}} +.Ve +.PP +or +.PP +.Vb 1 +\& \esection\etextem{This is an emphasized section title} +.Ve +.PP +even though all varieties are the same to LaTeX (but see +\&\fB\-\-allow\-spaces\fR option which allows the second variety). +.PP +For environments whose content does not conform to standard LaTeX or +where graphical markup does not make sense all markup commands can be +removed by setting the \s-1PICTUREENV\s0 configuration variable, set by +default to \f(CW\*(C`picture\*(C'\fR and \f(CW\*(C`DIFnomarkup\*(C'\fR environments; see \fB\-\-config\fR +option). The latter environment (\f(CW\*(C`DIFnomarkup\*(C'\fR) can be used to +protect parts of the latex file where the markup results in illegal +markup. You have to surround the offending passage in both the old and +new file by \f(CW\*(C`\ebegin{DIFnomarkup}\*(C'\fR and \f(CW\*(C`\eend{DIFnomarkup}\*(C'\fR. You must +define the environment in the preambles of both old and new +documents. I prefer to define it as a null\-environment, +.PP +\&\f(CW\*(C`\enewenvironment{DIFnomarkup}{}{}\*(C'\fR +.PP +but the choice is yours. Any markup within the environment will be +removed, and generally everything within the environment will just be +taken from the new file. +.PP +It is also possible to difference files which do not have a preamble. + In this case, the file is processed in the main document +mode, but the definitions of the markup commands are not inserted. +.PP +All markup commands inserted by \fIlatexdiff\fR begin with "\f(CW\*(C`\eDIF\*(C'\fR". Added +blocks containing words, commands or comments which are in \f(CW\*(C`new.tex\*(C'\fR +but not in \f(CW\*(C`old.tex\*(C'\fR are marked by \f(CW\*(C`\eDIFaddbegin\*(C'\fR and \f(CW\*(C`\eDIFaddend\*(C'\fR. +Discarded blocks are marked by \f(CW\*(C`\eDIFdelbegin\*(C'\fR and \f(CW\*(C`\eDIFdelend\*(C'\fR. +Within added blocks all text is highlighted with \f(CW\*(C`\eDIFadd\*(C'\fR like this: +\&\f(CW\*(C`\eDIFadd{Added text block}\*(C'\fR +Selected `safe' commands can be contained in these text blocks as well +(use options to show and change the list of safe commands, see below). +All other commands as well as braces \*(L"{\*(R" and \*(L"}\*(R" are never put within +the scope of \f(CW\*(C`\eDIFadd\*(C'\fR. Added comments are marked by prepending +"\f(CW\*(C`%DIF\ >\ \*(C'\fR". +.PP +Within deleted blocks text is highlighted with \f(CW\*(C`\eDIFdel\*(C'\fR. Deleted +comments are marked by prepending "\f(CW\*(C`%DIF\ <\ \*(C'\fR\*(L". Non-safe command +and curly braces within deleted blocks are commented out with +\&\*(R"\f(CW\*(C`%DIFDELCMD\ <\ \*(C'\fR". +.SH "OPTIONS" +.IX Header "OPTIONS" +.Sh "Preamble" +.IX Subsection "Preamble" +The following options determine the visual markup style by adding the appropriate +command definitions to the preamble. See the end of this section for a description of +available styles. +.IP "\fB\-\-type=markupstyle\fR or \fB\-t markupstyle\fR" 4 +.IX Item "--type=markupstyle or -t markupstyle" +Add code to preamble for selected markup style. This option defines +\&\f(CW\*(C`\eDIFadd\*(C'\fR and \f(CW\*(C`\eDIFdel\*(C'\fR commands. +Available styles: +.Sp +\&\f(CW\*(C`UNDERLINE CTRADITIONAL TRADITIONAL CFONT FONTSTRIKE INVISIBLE +CHANGEBAR CCHANGEBAR CULINECHBAR CFONTCBHBAR\*(C'\fR +.Sp +[ Default: \f(CW\*(C`UNDERLINE\*(C'\fR ] +.IP "\fB\-\-subtype=markstyle\fR or \fB\-s markstyle\fR" 4 +.IX Item "--subtype=markstyle or -s markstyle" +Add code to preamble for selected style for bracketing +commands (e.g. to mark changes in margin). This option defines +\&\f(CW\*(C`\eDIFaddbegin\*(C'\fR, \f(CW\*(C`\eDIFaddend\*(C'\fR, \f(CW\*(C`\eDIFdelbegin\*(C'\fR and \f(CW\*(C`\eDIFdelend\*(C'\fR commands. +Available styles: \f(CW\*(C`SAFE MARGINAL DVIPSCOL\*(C'\fR +.Sp +[ Default: \f(CW\*(C`SAFE\*(C'\fR ] +.IP "\fB\-\-floattype=markstyle\fR or \fB\-f markstyle\fR" 4 +.IX Item "--floattype=markstyle or -f markstyle" +Add code to preamble for selected style which +replace standard marking and markup commands within floats +(e.g., marginal remarks cause an error within floats +so marginal marking can be disabled thus). This option defines all +\&\f(CW\*(C`\eDIF...FL\*(C'\fR commands. +Available styles: \f(CW\*(C`FLOATSAFE TRADITIONALSAFE IDENTICAL\*(C'\fR +.Sp +[ Default: \f(CW\*(C`FLOATSAFE\*(C'\fR ] +.IP "\fB\-\-encoding=enc\fR or \fB\-e enc\fR" 4 +.IX Item "--encoding=enc or -e enc" +Specify encoding of old.tex and new.tex. Typical encodings are +\&\f(CW\*(C`ascii\*(C'\fR, \f(CW\*(C`utf8\*(C'\fR, \f(CW\*(C`latin1\*(C'\fR, \f(CW\*(C`latin9\*(C'\fR. A list of available encodings can be +obtained by executing +.Sp +\&\f(CW\*(C`perl \-MEncode \-e 'print join ("\en",Encode\-\*(C'\fRencodings( \*(L":all\*(R" )) ;' > +.Sp +[Default encoding is utf8 unless the first few lines of the preamble contain +an invocation \f(CW\*(C`\eusepackage[..]{inputenc}\*(C'\fR in which case the +encoding chosen by this command is asssumed. Note that \s-1ASCII\s0 (standard +latex) is a subset of utf8] +.IP "\fB\-\-preamble=file\fR or \fB\-p file\fR" 4 +.IX Item "--preamble=file or -p file" +Insert file at end of preamble instead of generating +preamble. The preamble must define the following commands +\&\f(CW\*(C`\eDIFaddbegin, \eDIFaddend, \eDIFadd{..}, +\&\eDIFdelbegin,\eDIFdelend,\eDIFdel{..},\*(C'\fR +and varieties for use within floats +\&\f(CW\*(C`\eDIFaddbeginFL, \eDIFaddendFL, \eDIFaddFL{..}, +\&\eDIFdelbeginFL, \eDIFdelendFL, \eDIFdelFL{..}\*(C'\fR +(If this option is set \fB\-t\fR, \fB\-s\fR, and \fB\-f\fR options +are ignored.) +.IP "\fB\-\-packages=pkg1,pkg2,..\fR" 4 +.IX Item "--packages=pkg1,pkg2,.." +Tell latexdiff that .tex file is processed with the packages in list +loaded. This is normally not necessary if the .tex file includes the +preamble, as the preamble is automatically scanned for \f(CW\*(C`\eusepackage\*(C'\fR commands. +Use of the \fB\-\-packages\fR option disables automatic scanning, so if for any +reason package specific parsing needs to be switched off, use \fB\-\-packages=none\fR. +The following packages trigger special behaviour: +.RS 4 +.ie n .IP """amsmath""" 8 +.el .IP "\f(CWamsmath\fR" 8 +.IX Item "amsmath" +Configuration variable amsmath is set to \f(CW\*(C`align*\*(C'\fR (Default: \f(CW\*(C`eqnarray*\*(C'\fR) +.ie n .IP """endfloat""" 8 +.el .IP "\f(CWendfloat\fR" 8 +.IX Item "endfloat" +Ensure that \f(CW\*(C`\ebegin{figure}\*(C'\fR and \f(CW\*(C`\eend{figure}\*(C'\fR always appear by themselves on a line. +.ie n .IP """hyperref""" 8 +.el .IP "\f(CWhyperref\fR" 8 +.IX Item "hyperref" +Change name of \f(CW\*(C`\eDIFadd\*(C'\fR and \f(CW\*(C`\eDIFdel\*(C'\fR commands to \f(CW\*(C`\eDIFaddtex\*(C'\fR and \f(CW\*(C`\eDIFdeltex\*(C'\fR and +define new \f(CW\*(C`\eDIFadd\*(C'\fR and \f(CW\*(C`\eDIFdel\*(C'\fR commands, which provide a wrapper for these commands, +using them for the text but not for the link defining command (where any markup would cause +errors). +.RE +.RS 4 +.Sp +[ Default: scan the preamble for \f(CW\*(C`\e\eusepackage\*(C'\fR commands to determine + loaded packages.] +.RE +.IP "\fB\-\-show\-preamble\fR" 4 +.IX Item "--show-preamble" +Print generated or included preamble commands to stdout. +.Sh "Configuration" +.IX Subsection "Configuration" +.ie n .IP "\fB\-\-exclude\-safecmd=exclude\-file\fR or \fB\-A exclude-file\fR or \fB\-\-exclude\-safecmd=""cmd1,cmd2,...""\fR" 4 +.el .IP "\fB\-\-exclude\-safecmd=exclude\-file\fR or \fB\-A exclude-file\fR or \fB\-\-exclude\-safecmd=``cmd1,cmd2,...''\fR" 4 +.IX Item "--exclude-safecmd=exclude-file or -A exclude-file or --exclude-safecmd=cmd1,cmd2,..." +.PD 0 +.IP "\fB\-\-replace\-safecmd=replace\-file\fR" 4 +.IX Item "--replace-safecmd=replace-file" +.ie n .IP "\fB\-\-append\-safecmd=append\-file\fR or \fB\-a append-file\fR or \fB\-\-append\-safecmd=""cmd1,cmd2,...""\fR" 4 +.el .IP "\fB\-\-append\-safecmd=append\-file\fR or \fB\-a append-file\fR or \fB\-\-append\-safecmd=``cmd1,cmd2,...''\fR" 4 +.IX Item "--append-safecmd=append-file or -a append-file or --append-safecmd=cmd1,cmd2,..." +.PD +Exclude from, replace or append to the list of regular expressions (RegEx) +matching commands which are safe to use within the +scope of a \f(CW\*(C`\eDIFadd\*(C'\fR or \f(CW\*(C`\eDIFdel\*(C'\fR command. The file must contain +one Perl-RegEx per line (Comment lines beginning with # or % are +ignored). Note that the RegEx needs to match the whole of +the token, i.e., /^regex$/ is implied and that the initial +\&\*(L"\e\*(R" of the command is not included. +The \fB\-\-exclude\-safecmd\fR and \fB\-\-append\-safecmd\fR options can be combined with the \-\fB\-\-replace\-safecmd\fR +option and can be used repeatedly to add cumulatively to the lists. + \fB\-\-exclude\-safecmd\fR +and \fB\-\-append\-safecmd\fR can also take a comma separated list as input. If a +comma for one of the regex is required, escape it thus \*(L"\e,\*(R". In most cases it +will be necessary to protect the comma-separated list from the shell by putting +it in quotation marks. +.ie n .IP "\fB\-\-exclude\-textcmd=exclude\-file\fR or \fB\-X exclude-file\fR or \fB\-\-exclude\-textcmd=""cmd1,cmd2,...""\fR" 4 +.el .IP "\fB\-\-exclude\-textcmd=exclude\-file\fR or \fB\-X exclude-file\fR or \fB\-\-exclude\-textcmd=``cmd1,cmd2,...''\fR" 4 +.IX Item "--exclude-textcmd=exclude-file or -X exclude-file or --exclude-textcmd=cmd1,cmd2,..." +.PD 0 +.IP "\fB\-\-replace\-textcmd=replace\-file\fR" 4 +.IX Item "--replace-textcmd=replace-file" +.ie n .IP "\fB\-\-append\-textcmd=append\-file\fR or \fB\-x append-file\fR or \fB\-\-append\-textcmd=""cmd1,cmd2,...""\fR" 4 +.el .IP "\fB\-\-append\-textcmd=append\-file\fR or \fB\-x append-file\fR or \fB\-\-append\-textcmd=``cmd1,cmd2,...''\fR" 4 +.IX Item "--append-textcmd=append-file or -x append-file or --append-textcmd=cmd1,cmd2,..." +.PD +Exclude from, replace or append to the list of regular expressions +matching commands whose last argument is text. See +entry for \fB\-\-exclude\-safecmd\fR directly above for further details. +.IP "\fB\-\-replace\-context1cmd=replace\-file\fR" 4 +.IX Item "--replace-context1cmd=replace-file" +.PD 0 +.ie n .IP "\fB\-\-append\-context1cmd=append\-file\fR or =item \fB\-\-append\-context1cmd=""cmd1,cmd2,...""\fR" 4 +.el .IP "\fB\-\-append\-context1cmd=append\-file\fR or =item \fB\-\-append\-context1cmd=``cmd1,cmd2,...''\fR" 4 +.IX Item "--append-context1cmd=append-file or =item --append-context1cmd=cmd1,cmd2,..." +.PD +Replace or append to the list of regex matching commands +whose last argument is text but which require a particular +context to work, e.g. \ecaption will only work within a figure +or table. These commands behave like text commands, except when +they occur in a deleted section, when they are disabled, but their +argument is shown as deleted text. +.IP "\fB\-\-replace\-context1cmd=replace\-file\fR" 4 +.IX Item "--replace-context1cmd=replace-file" +.PD 0 +.ie n .IP "\fB\-\-append\-context2cmd=append\-file\fR or =item \fB\-\-append\-context2cmd=""cmd1,cmd2,...""\fR As corresponding commands for context1. The only difference is that context2 commands are completely disabled in deleted sections, including their arguments." 4 +.el .IP "\fB\-\-append\-context2cmd=append\-file\fR or =item \fB\-\-append\-context2cmd=``cmd1,cmd2,...''\fR As corresponding commands for context1. The only difference is that context2 commands are completely disabled in deleted sections, including their arguments." 4 +.IX Item "--append-context2cmd=append-file or =item --append-context2cmd=cmd1,cmd2,... As corresponding commands for context1. The only difference is that context2 commands are completely disabled in deleted sections, including their arguments." +.IP "\fB\-\-config var1=val1,var2=val2,...\fR or \fB\-c var1=val1,..\fR" 4 +.IX Item "--config var1=val1,var2=val2,... or -c var1=val1,.." +.IP "\fB\-c configfile\fR" 4 +.IX Item "-c configfile" +.PD +Set configuration variables. The option can be repeated to set different +variables (as an alternative to the comma-separated list). +Available variables (see below for further explanations): +.Sp +\&\f(CW\*(C`MINWORDSBLOCK\*(C'\fR (integer) +.Sp +\&\f(CW\*(C`FLOATENV\*(C'\fR (RegEx) +.Sp +\&\f(CW\*(C`PICTUREENV\*(C'\fR (RegEx) +.Sp +\&\f(CW\*(C`MATHENV\*(C'\fR (RegEx) +.Sp +\&\f(CW\*(C`MATHREPL\*(C'\fR (String) +.Sp +\&\f(CW\*(C`MATHARRENV\*(C'\fR (RegEx) +.Sp +\&\f(CW\*(C`MATHARRREPL\*(C'\fR (String) +.Sp +\&\f(CW\*(C`ARRENV\*(C'\fR (RegEx) +.Sp +\&\f(CW\*(C`COUNTERCMD\*(C'\fR (RegEx) +.IP "\fB\-\-show\-safecmd\fR" 4 +.IX Item "--show-safecmd" +Print list of RegEx matching and excluding safe commands. +.IP "\fB\-\-show\-textcmd\fR" 4 +.IX Item "--show-textcmd" +Print list of RegEx matching and excluding commands with text argument. +.IP "\fB\-\-show\-config\fR" 4 +.IX Item "--show-config" +Show values of configuration variables. +.IP "\fB\-\-show\-all\fR" 4 +.IX Item "--show-all" +Combine all \-\-show commands. +.Sp +\&\s-1NB\s0 For all \-\-show commands, no \f(CW\*(C`old.tex\*(C'\fR or \f(CW\*(C`new.tex\*(C'\fR file needs to be specified, and no +differencing takes place. +.Sh "Miscellaneous" +.IX Subsection "Miscellaneous" +.IP "\fB\-\-verbose\fR or \fB\-V\fR" 4 +.IX Item "--verbose or -V" +Output various status information to stderr during processing. +Default is to work silently. +.IP "\fB\-\-ignore\-warnings\fR" 4 +.IX Item "--ignore-warnings" +Suppress warnings about inconsistencies in length between input and +parsed strings and missing characters. These warning messages are +often related to non-standard latex or latex constructions with a +syntax unknown to \f(CW\*(C`latexdiff\*(C'\fR but the resulting difference argument +is often fully functional anyway, particularly if the non-standard +latex only occurs in parts of the text which have not changed. +.IP "\fB\-\-allow\-spaces\fR" 4 +.IX Item "--allow-spaces" +Allow spaces between bracketed or braced arguments to commands. Note +that this option might have undesirable side effects (unrelated scope +might get lumpeded with preceding commands) so should only be used if the +default produces erroneous results. (Default requires arguments to +directly follow each other without intervening spaces). +.IP "\fB\-\-flatten\fR" 4 +.IX Item "--flatten" +Replace \f(CW\*(C`\einput\*(C'\fR and \f(CW\*(C`\einclude\*(C'\fR commands within body by the content +of the files in their argument. If \f(CW\*(C`\eincludeonly\*(C'\fR is present in the +preamble, only those files are expanded into the document. However, +no recursion is done, i.e. \f(CW\*(C`\einput\*(C'\fR and \f(CW\*(C`\einclude\*(C'\fR commands within +included sections are not expanded. The included files are assumed to + be located in the same directories as the old and new master files, +respectively, making it possible to organise files into old and new directories. +.Sp +Use of this option is not recommended +primarily the processing time for the large documents is prohibitive, and +the resulting difference document no longer reflects the structure of the +input documents. +.IP "\fB\-\-help\fR or \fB\-h\fR" 4 +.IX Item "--help or -h" +Show help text +.IP "\fB\-\-version\fR" 4 +.IX Item "--version" +Show version number +.Sh "Predefined styles" +.IX Subsection "Predefined styles" +.Sh "Major types" +.IX Subsection "Major types" +The major type determine the markup of plain text and some selected latex commands outside floats by defining the markup commands \f(CW\*(C`\eDIFadd{...}\*(C'\fR and \f(CW\*(C`\eDIFdel{...}\*(C'\fR . +.ie n .IP """UNDERLINE""" 10 +.el .IP "\f(CWUNDERLINE\fR" 10 +.IX Item "UNDERLINE" +Added text is wavy-underlined and blue, discarded text is struck out and red +(Requires color and ulem packages). Overstriking does not work in displayed math equations such that deleted parts of equation are underlined, not struck out (this is a shortcoming inherent to the ulem package). +.ie n .IP """CTRADITIONAL""" 10 +.el .IP "\f(CWCTRADITIONAL\fR" 10 +.IX Item "CTRADITIONAL" +Added text is blue and set in sans\-serif, and a red footnote is created for each discarded +piece of text. (Requires color package) +.ie n .IP """TRADITIONAL""" 10 +.el .IP "\f(CWTRADITIONAL\fR" 10 +.IX Item "TRADITIONAL" +Like \f(CW\*(C`CTRADITIONAL\*(C'\fR but without the use of color. +.ie n .IP """CFONT""" 10 +.el .IP "\f(CWCFONT\fR" 10 +.IX Item "CFONT" +Added text is blue and set in sans\-serif, and discarded text is red and very small size. +.ie n .IP """FONTSTRIKE""" 10 +.el .IP "\f(CWFONTSTRIKE\fR" 10 +.IX Item "FONTSTRIKE" +Added tex is set in sans\-serif, discarded text small and struck out +.ie n .IP """CCHANGEBAR""" 10 +.el .IP "\f(CWCCHANGEBAR\fR" 10 +.IX Item "CCHANGEBAR" +Added text is blue, and discarded text is red. Additionally, the changed text is marked with a bar in the margin (Requires color and changebar packages). +.ie n .IP """CFONTCHBAR""" 10 +.el .IP "\f(CWCFONTCHBAR\fR" 10 +.IX Item "CFONTCHBAR" +Like \f(CW\*(C`CFONT\*(C'\fR but with additional changebars (Requires color and changebar packages). +.ie n .IP """CULINECHBAR""" 10 +.el .IP "\f(CWCULINECHBAR\fR" 10 +.IX Item "CULINECHBAR" +Like \f(CW\*(C`UNDERLINE\*(C'\fR but with additional changebars (Requires color, ulem and changebar packages). +.ie n .IP """CHANGEBAR""" 10 +.el .IP "\f(CWCHANGEBAR\fR" 10 +.IX Item "CHANGEBAR" +No mark up of text, but mark margins with changebars (Requires changebar package). +.ie n .IP """INVISIBLE""" 10 +.el .IP "\f(CWINVISIBLE\fR" 10 +.IX Item "INVISIBLE" +No visible markup (but generic markup commands will still be inserted. +.Sh "Subtypes" +.IX Subsection "Subtypes" +The subtype defines the commands that are inserted at the begin and end of added or discarded blocks, irrespectively of whether these blocks contain text or commands (Defined commands: \f(CW\*(C`\eDIFaddbegin, \eDIFaddend, \eDIFdelbegin, \eDIFdelend\*(C'\fR) +.ie n .IP """SAFE""" 10 +.el .IP "\f(CWSAFE\fR" 10 +.IX Item "SAFE" +No additional markup (Recommended choice) +.ie n .IP """MARGIN""" 10 +.el .IP "\f(CWMARGIN\fR" 10 +.IX Item "MARGIN" +Mark beginning and end of changed blocks with symbols in the margin nearby (using +the standard \f(CW\*(C`\emarginpar\*(C'\fR command \- note that this sometimes moves somewhat +from the intended position. +.ie n .IP """DVIPSCOL""" 10 +.el .IP "\f(CWDVIPSCOL\fR" 10 +.IX Item "DVIPSCOL" +An alternative way of marking added passages in blue, and deleted ones in red. Note +that \f(CW\*(C`DVIPSCOL\*(C'\fR only works with the dvips converter, e.g. not pdflatex. +(it is recommeneded to use instead the main types to effect colored markup, +although in some cases coloring with dvipscol can be more complete). +.Sh "Float Types" +.IX Subsection "Float Types" +Some of the markup used in the main text might cause problems when used within +floats (e.g. figures or tables). For this reason alternative versions of all +markup commands are used within floats. The float type defines these alternative commands. +.ie n .IP """FLOATSAFE""" 10 +.el .IP "\f(CWFLOATSAFE\fR" 10 +.IX Item "FLOATSAFE" +Use identical markup for text as in the main body, but set all commands marking the begin and end of changed blocks to null\-commands. You have to choose this float type if your subtype is \f(CW\*(C`MARGIN\*(C'\fR as \f(CW\*(C`\emarginpar\*(C'\fR does not work properly within floats. +.ie n .IP """TRADITIONALSAFE""" 10 +.el .IP "\f(CWTRADITIONALSAFE\fR" 10 +.IX Item "TRADITIONALSAFE" +Mark additions the same way as in the main text. Deleted environments are marked by angular brackets \e[ and \e] and the deleted text is set in scriptscript size. This float type should always be used with the \f(CW\*(C`TRADITIONAL\*(C'\fR and \f(CW\*(C`CTRADITIONAL\*(C'\fR markup types as the \efootnote command does not work properly in floating environments. +.ie n .IP """IDENTICAL""" 10 +.el .IP "\f(CWIDENTICAL\fR" 10 +.IX Item "IDENTICAL" +Make no difference between the main text and floats. +.Sh "Configuration Variables" +.IX Subsection "Configuration Variables" +.ie n .IP """MINWORDSBLOCK""" 10 +.el .IP "\f(CWMINWORDSBLOCK\fR" 10 +.IX Item "MINWORDSBLOCK" +Minimum number of tokens required to form an independent block. This value is +used in the algorithm to detect changes of complete blocks by merging identical text parts of less than \f(CW\*(C`MINWORDSBLOCK\*(C'\fR to the preceding added and discarded parts. +.Sp +[ Default: 3 ] +.ie n .IP """FLOATENV""" 10 +.el .IP "\f(CWFLOATENV\fR" 10 +.IX Item "FLOATENV" +Environments whose name matches the regular expression in \f(CW\*(C`FLOATENV\*(C'\fR are +considered floats. Within these environments, the \fIlatexdiff\fR markup commands +are replaced by their \s-1FL\s0 variaties. +.Sp +[ Default: \f(CW\*(C`(?:figure|table|plate)[\ew\ed*@]*\*(C'\fR\ ] +.ie n .IP """PICTUREENV""" 10 +.el .IP "\f(CWPICTUREENV\fR" 10 +.IX Item "PICTUREENV" +Within environments whose name matches the regular expression in \f(CW\*(C`PICTUREENV\*(C'\fR +all latexdiff markup is removed (in pathologic cases this might lead to + inconsistent markup but this situation should be rare). +.Sp +[ Default: \f(CW\*(C`(?:picture|DIFnomarkup)[\ew\ed*@]*\*(C'\fR\ ] +.ie n .IP """MATHENV""\fR,\f(CW""MATHREPL""" 10 +.el .IP "\f(CWMATHENV\fR,\f(CWMATHREPL\fR" 10 +.IX Item "MATHENV,MATHREPL" +If both \ebegin and \eend for a math environment (environment name matching \f(CW\*(C`MATHENV\*(C'\fR +or \e[ and \e]) +are within the same deleted block, they are replaced by a \ebegin and \eend commands for \f(CW\*(C`MATHREPL\*(C'\fR +rather than being commented out. +.Sp +[ Default: \f(CW\*(C`MATHENV\*(C'\fR=\f(CW\*(C`(?:displaymath|equation)\*(C'\fR\ , \f(CW\*(C`MATHREPL\*(C'\fR=\f(CW\*(C`displaymath\*(C'\fR\ ] +.ie n .IP """MATHARRENV""\fR,\f(CW""MATHARRREPL""" 10 +.el .IP "\f(CWMATHARRENV\fR,\f(CWMATHARRREPL\fR" 10 +.IX Item "MATHARRENV,MATHARRREPL" +as \f(CW\*(C`MATHENV\*(C'\fR,\f(CW\*(C`MATHREPL\*(C'\fR but for equation arrays +.Sp +[ Default: \f(CW\*(C`MATHARRENV\*(C'\fR=\f(CW\*(C`eqnarray\e*?\*(C'\fR\ , \f(CW\*(C`MATHREPL\*(C'\fR=\f(CW\*(C`eqnarray\*(C'\fR\ ] +.ie n .IP """ARRENV""" 10 +.el .IP "\f(CWARRENV\fR" 10 +.IX Item "ARRENV" +If a match to \f(CW\*(C`ARRENV\*(C'\fR is found within an inline math environment within a deleted or added block, then the inlined math +is surrounded by \f(CW\*(C`\embox{\*(C'\fR...\f(CW\*(C`}\*(C'\fR. This is necessary as underlining does not work within inlined array environments. +.Sp +[ Default: \f(CW\*(C`ARRENV\*(C'\fR=\f(CW\*(C`(?:array|[pbvBV]matrix)\*(C'\fR\ +.ie n .IP """COUNTERCMD""" 10 +.el .IP "\f(CWCOUNTERCMD\fR" 10 +.IX Item "COUNTERCMD" +If a command in a deleted block which is also in the textcmd list matches \f(CW\*(C`COUNTERCMD\*(C'\fR then an +additional command \f(CW\*(C`\eaddtocounter{\*(C'\fR\fIcntcmd\fR\f(CW\*(C`}{\-1}\*(C'\fR, where \fIcntcmd\fR is the matching command, is appended in the diff file such that the numbering in the diff file remains synchronized with the +numbering in the new file. +.Sp +[ Default: \f(CW\*(C`COUNTERCMD\*(C'\fR=\f(CW\*(C`(?:footnote|part|section|subsection\*(C'\fR ... +.Sp +\&\f(CW\*(C`|subsubsection|paragraph|subparagraph)\*(C'\fR ] +.SH "BUGS" +.IX Header "BUGS" +\&\s-1UTF\-8\s0 support requires a relatively new version of perl (5.8.0 is sufficient +but 5.6.2 up would work \s-1OK\s0, too). +.PP +Option allow-spaces not implemented entirely consistently. It breaks +the rules that number and type of white space does not matter, as +different numbers of inter-argument spaces are treated as significant. +.PP +Please send bug reports +to \fItilmann@esc.cam.ac.uk\fR. Include the serial number of \fIlatexdiff\fR +(from comments at the top of the source or use \fB\-\-version\fR). If you come across latex +files that are error-free and conform to the specifications set out +above, and whose differencing still does not result in error-free +latex, please send me those files, ideally edited to only contain the +offending passage as long as that still reproduces the problem. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +latexrevise +.SH "PORTABILITY" +.IX Header "PORTABILITY" +\&\fIlatexdiff\fR does not make use of external commands and thus should run +on any platform supporting Perl 5.6 or higher. If files with encodings +other than \s-1ASCII\s0 or \s-1UTF\-8\s0 are processed, Perl 5.8 or higher is required. +.PP +The standard version of \fIlatexdiff\fR requires installation of the Perl package +\&\f(CW\*(C`Algorithm::Diff\*(C'\fR (available from \fIwww.cpan.org\fR \- +\&\fIhttp://search.cpan.org/~nedkonz/Algorithm\-Diff\-1.15\fR) but a stand-alone +version, \fIlatexdiff-so\fR, which has this package inlined, is available, too. +\&\fIlatexdiff-fast\fR requires the \fIdiff\fR command to be present. +.SH "AUTHOR" +.IX Header "AUTHOR" +Copyright (C) 2004\-2007 Frederik Tilmann +.PP +This program is free software; you can redistribute it and/or modify +it under the terms of the \s-1GNU\s0 General Public License Version 2 +.PP +Contributors of fixes and additions: V. Kuhlmann, J. Paisley, N. Becker, T. Doerges, K. Huebner +Thanks to everyone who send in bug reports. diff --git a/Master/texmf/doc/man/man1/latexrevise.1 b/Master/texmf/doc/man/man1/latexrevise.1 new file mode 100644 index 00000000000..283c614677b --- /dev/null +++ b/Master/texmf/doc/man/man1/latexrevise.1 @@ -0,0 +1,235 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "LATEXREVISE 1" +.TH LATEXREVISE 1 "2007-09-07" "perl v5.8.5" " " +.SH "NAME" +latexrevise \- selectively remove markup and text from latexdiff output +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBlatexrevise\fR [ \fB\s-1OPTIONS\s0\fR ] [ \fIdiff.tex\fR ] > \fIrevised.tex\fR +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fIlatexrevise\fR reads a file \f(CW\*(C`diff.tex\*(C'\fR (output of \fIlatexdiff\fR), and remove the markup commands. +If no filename is given the input is read from standard input. The command can be used +in \fI\s-1ACCEPT\s0\fR, \fI\s-1DECLINE\s0\fR, or \fI\s-1SIMPLIFY\s0\fR mode, or can be used to remove user-defined +latex commands from the input (see \fB\-c\fR, \fB\-e\fR, \fB\-m\fR, and \fB\-n\fR below). +In \fI\s-1ACCEPT\s0\fR mode, all appended text fragments (or preamble lines) +are kept, and all discarded text fragments (or preamble lines) are +deleted. +In \fI\s-1DECLINE\s0\fR mode, all discarded text fragments are kept, and all appended +text fragments are deleted. +If you wish to keep some changes, edit the diff.tex file in +advance, and manually remove those tokens which would otherwise be +deleted. Note that \fIlatexrevise\fR only pays attention to the \f(CW\*(C`\eDIFaddbegin\*(C'\fR, +\&\f(CW\*(C`\eDIFaddend\*(C'\fR, \f(CW\*(C`\eDIFdelbegin\*(C'\fR, and \f(CW\*(C`\eDIFdelend\*(C'\fR tokens and corresponding \s-1FL\s0 +varieties. All \f(CW\*(C`\eDIFadd\*(C'\fR and \f(CW\*(C`\eDIFdel\*(C'\fR commands (but not their contents) are +simply deleted. The commands added by latexdiff to the preamble are also +removed. +In \fI\s-1SIMPLIFY\s0\fR mode, \f(CW\*(C`\eDIFaddbegin, \eDIFaddend, \eDIFdelbegin, \eDIFdelend\*(C'\fR +tokens and their corresponding \f(CW\*(C`FL\*(C'\fR varieties are kept but all other markup (e.g. \f(CW\*(C`DIFadd\*(C'\fR and <\eDIFdel>) is removed. The result +will not in general be valid latex-code but it will be easier to read and edit in +preparation for a subsequent run in \fI\s-1ACCEPT\s0\fR or \fI\s-1DECLINE\s0\fR mode. +In \fI\s-1SIMPLIFY\s0\fR mode the preamble is left unmodified. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-a\fR or \fB\-\-accept\fR" 4 +.IX Item "-a or --accept" +Run in \fI\s-1ACCEPT\s0\fR mode (delete all blocks marked by \f(CW\*(C`\eDIFdelbegin\*(C'\fR and \f(CW\*(C`\eDIFdelend\*(C'\fR). +.IP "\fB\-d\fR or \fB\-\-decline\fR" 4 +.IX Item "-d or --decline" +Run in \fI\s-1DECLINE\s0\fR mode (delete all blocks marked by \f(CW\*(C`\eDIFaddbegin\*(C'\fR +and \f(CW\*(C`\eDIFaddend\*(C'\fR). +.IP "\fB\-s\fR or \fB\-\-simplify\fR" 4 +.IX Item "-s or --simplify" +Run in \fI\s-1SIMPLIFY\s0\fR mode (Keep all \f(CW\*(C`\eDIFaddbegin\*(C'\fR, \f(CW\*(C`\eDIFaddend\*(C'\fR, +\&\f(CW\*(C`\eDIFdelbegin\*(C'\fR, \f(CW\*(C`\eDIFdelend\*(C'\fR tokens, but remove all other latexdiff +markup from body). +.PP +Note that the three mode options are mutually exclusive. If no mode option is given, +\&\fIlatexrevise\fR simply removes user annotations and markup according to the following four +options. +.IP "\fB\-c cmd\fR or \fB\-\-comment=cmd\fR" 4 +.IX Item "-c cmd or --comment=cmd" +Remove \f(CW\*(C`\ecmd{...}\*(C'\fR sequences. \f(CW\*(C`cmd\*(C'\fR is supposed to mark some explicit +anotations which should be removed from the file before +release. +.IP "\fB\-e envir\fR or \fB\-\-comment\-environment=envir\fR" 4 +.IX Item "-e envir or --comment-environment=envir" +Remove explicit annotation environments from the text, i.e. remove +.Sp +.Vb 3 +\& \ebegin{envir} +\& ... +\& \eend{envir} +.Ve +.Sp +blocks. +.IP "\fB\-m cmd\fR or \fB\-\-markup=cmd\fR" 4 +.IX Item "-m cmd or --markup=cmd" +Remove the markup command \f(CW\*(C`\ecmd\*(C'\fR but leave its argument, i.e. +turn \f(CW\*(C`\ecmd{abc}\*(C'\fR into \f(CW\*(C`abc\*(C'\fR. +.IP "\fB\-n envir\fR or \fB\-\-markup\-environment=envir\fR" 4 +.IX Item "-n envir or --markup-environment=envir" +Similarly, remove \f(CW\*(C`\ebegin{envir}\*(C'\fR and \f(CW\*(C`\eend{envir}\*(C'\fR commands but +leave content of the environment in the text. +.IP "\fB\-V\fR or \fB\-\-verbose\fR" 4 +.IX Item "-V or --verbose" +Verbose output +.IP "\fB\-q\fR or \fB\-\-no\-warnings\fR" 4 +.IX Item "-q or --no-warnings" +Do not warn users about \f(CW\*(C`\eDIDadd{..}\*(C'\fR or \f(CW\*(C`\eDIFdel{..}\*(C'\fR statements +which should have been removed already. +.SH "BUGS" +.IX Header "BUGS" +The current version is a beta version which has not yet been +extensively tested, but worked fine locally. Please send bug reports +to \fItilmann@esc.cam.ac.uk\fR. Include the serial number of \fIlatexrevise\fR +(from comments at the top of the source). If you come across latexdiff +output which is not processed correctly by \fIlatexrevise\fR please include the +problem file as well as the old and new files on which it is based, +ideally edited to only contain the offending passage as long as that still +reproduces the problem. +.PP +\&\fIlatexrevise\fR gets confused by commented \f(CW\*(C`\ebegin{document}\*(C'\fR or +\&\f(CW\*(C`\eend{document}\*(C'\fR statements +.SH "SEE ALSO" +.IX Header "SEE ALSO" +latexdiff +.SH "PORTABILITY" +.IX Header "PORTABILITY" +\&\fIlatexrevise\fR does not make use of external commands and thus should run +on any platform supporting \s-1PERL\s0 v5 or higher. +.SH "AUTHOR" +.IX Header "AUTHOR" +Copyright (C) 2004 Frederik Tilmann +.PP +This program is free software; you can redistribute it and/or modify +it under the terms of the \s-1GNU\s0 General Public License Version 2 -- cgit v1.2.3