Whenever you produce multiple drafts of a document for review,
"change marks" in the newer draft are useful for showing where additions and
deletions have occurred.
The
troff (43.13)
request .mc
(margin character) can be used to print change marks in the margin of any
document that is formatted through troff, and the UNIX command
diffmk uses .mc
requests to produce marked drafts.
diffmk has the following syntax:
%diffmk version.1 version.2 marked_file
The above command line compares an old version of a file (version.1) to
a new version (version.2) and creates a third file,
marked_file. marked_file consists of
the contents of version.2 plus .mc
requests
that show where that file differs from version.1.
When marked_file is formatted, additions and changes will be
indicated by vertical bars (|
) in the margin,
while deleted text will be
indicated by an asterisk (*
) in the margin.
There are times when you'll want the diffmk command to run on many files at once. For example, suppose you have a project directory containing eight chapter files from a first draft:
%ls project
chapters.old/ stuff %ls project/chapters.old
ch01 ch03 ch05 ch07 ch02 ch04 ch06 ch08
Before making second-draft revisions, you copy the chapter files into a directory named chapters.new:
%ls project
chapters.new/ chapters.old/ stuff %cd project/chapters.new
%ls
ch01 ch03 ch05 ch07 ch02 ch04 ch06 ch08
Copying the files allows you to edit new versions while preserving the original files in the old directory. After you've edited the files in the new directory, you want to run diffmk on all of them. In the new directory, you would want to type:
%diffmk ../chapters.old/ch01 ch01 ch01.diffmk
%diffmk ../chapters.old/ch02 ch02 ch02.diffmk
%diffmk ../chapters.old/ch03 ch03 ch03.diffmk
...
A shell loop (9.11, 9.12) would simplify the amount of typing you need to do. You can save disk space by using a version control utility such as SCCS or RCS (20.12).
-