Professional Documents
Culture Documents
Ekkart Kleinod
k ekleinod@edgesoft.de
Contents
Contents
1 Introduction 3
5 Authors 15
6 Versions 15
1 Introduction
for source code access, bug and feature tracker, forum etc. If you want to contact me
directly, please send an email to ekleinod@edgesoft.de. Please start your email subject
with [changes].
In this section a typical use case of the changes-package is described. You can find the
detailed description of the package options and new commands in Section 4.
We start with the text you want to change. You want to markup the changes for each
author individually. Such a change markup is well-known in WYSIWYG text processors
such as LibreOffice, OpenOffice, or Word.
The changes-package was developed in order to support such change markup. The
package provides commands for defining authors, and for marking text as added, deleted,
or replaced. In order to use the package, you have to follow these steps:
1. use changes-package
2. define authors
3. markup text changes
4. typeset the document with LATEX
5. output list of changes
6. remove markup
use changes-package
respectively
\usepackage[<options>]{changes}
You can use the options for defining the layout of the change markup. You can change
the layout after using the changes-package as well.
For detailed information please refer to Section 4.1 and Section 4.4.
define authors
The changes-package provides a default anonymous author. If you want to track your
changes depending on the author, you have to define the needed authors as follows:
\definechangesauthor[<options>]{id}
Every author is uniquely identified through his or her id. You can give every author an
optional name and/or color.
For detailed information please refer to Section 4.3.
Now everything is set to markup the changed text. Please use the following commands
according to your change:
for newly added text:
\added[id=<id>, remark=<remark>]{text}
After marking your changes in the text you are able to display them in the generated
document by processing it as usual with LATEX. By processing your document the changed
text is layouted as you stated by the corresponding options and/or special commands.
The list is meant to be the analogon to the list of tables, or the list of figures.
Stating the style is optional, default is style=list. In order to print a quick overview of
the number and kind of changes of every author, use the option style=summary.
By running LATEX the data of the list is written into an auxiliary file. This data is used in
the next LATEX run for typesetting the list of changes. Therefore, two LATEX runs are needed
after every change in order to typeset an up-to-date list of changes.
remove markup
Often you want to remove the change markup after acknowledging or rejecting the
changes. You can suppress the output of changes with:
\usepackage[final]{changes}
In order to remove the markup from the LATEX source code you can use a script from
Silvano Chiaradonna. You find the script in the directory:
<texpath>/scripts/changes/
The script removes all markups. You can select or deselect markup from removal using
the interactive mode. Switch on the interactive mode with the script parameter -i.
The changes-package was carefully programmed and tested. Yet the possibility of errors
in the package exists, you might encounter problem during use, or you might miss
functionionality. In that case, please go to
http://changes.sourceforge.net/
There you can report errors, ask for help in the forum, or give advice to other users. You
can view the source code, and change it according to your needs. I will try to include
your changes in the maintained package. If you are a registered sourceforge user you can
be a co-author of the changes-package.
You can write me an email too, please send it to ekleinod@edgesoft.de. In that case,
please start your email subject with [changes].
Change markup of texts works well, it is possible to markup whole paragraphs. You can
markup more than one paragraph at a time but occasionally this leads to errors. You
cannot markup figures or tables.
You can try putting such text in an extra file and include in with input. This works
sometimes, give it a try. Kudos to Charly Arenz for this tip.
There are several possibilities of enhancing the changes-package. I will describe but a
few here, I will not implement them due to lack of time and/or skill. You can have a look
at the more complete list of enhancements on the sourceforge page.
This section describes the user interface of the changes-package, i.e. all options and
commands of the package. Every option respectively new command is described. If you
want to see the options and commands in action, please refer to the examples in
<texpath>/doc/latex/changes/examples/
The example files are named with the used option respectively command.
4.1.1 draft
The draft-option enables markup of changes. The list of changes is available via
\listofchanges. This option is the default option, if no other option is selected.
The changes package reuses the declaration of draft in \documentclass. The local
declaration of final overrules the declaration of draft in \documentclass.
\usepackage[draft]{changes} = \usepackage{changes}
4.1.2 final
The final-option disables markup of changes, only the correct text will be shown. The
list of changes is disabled, too.
The changes package reuses the declaration of final in \documentclass. The local
declaration of draft overrules the declaration of final in \documentclass.
\usepackage[final]{changes}
4.1.3 markup
The markup option chooses a predefined visual markup of changed text. The de-
fault markup is chosen if no explicit markup is given. The markup chosen with
markup can be overwritten with the more special markup options addedmarkup and/or
deletedmarkup.
Call
\usepackage[markup=hmarkupi]{changes}
Examples
\usepackage[markup=default]{changes} = \usepackage{changes}
\usepackage[markup=underlined]{changes}
\usepackage[markup=bfit]{changes}
\usepackage[markup=nocolor]{changes}
The addedmarkup option chooses a predefined visual markup of added text. The
deletedmarkup option chooses a predefined visual markup of deleted text respectively.
The default markup is chosen if no explicit markup is given. The options addedmarkup
and deletedmarkup overwrite the markup chosen with markup.
The following values are allowed:
none no markup example (default markup for added text)
uline underlined text example
uuline double underlined text example
uwave wavy underlined text example
::::::::
dashuline dashed underlined text example
Call
\usepackage[addedmarkup=hmarkupi]{changes}
Examples
\usepackage[addedmarkup=none]{changes} = \usepackage{changes}
\usepackage[addedmarkup=uline]{changes}
Call
\usepackage[deletedmarkup=hmarkupi]{changes}
Examples
\usepackage[deletedmarkup=sout]{changes} = \usepackage{changes}
\usepackage[deletedmarkup=xout]{changes}
\usepackage[deletedmarkup=uwave]{changes}
4.1.5 authormarkup
The authormarkup option chooses a predefined visual markup of the authors identifica-
tion. The default markup is chosen if no explicit markup is given.
Call
\usepackage[authormarkup=hmarkupi]{changes}
Examples
\usepackage[authormarkup=superscript]{changes} = \usepackage{changes}
\usepackage[authormarkup=subscript]{changes}
\usepackage[authormarkup=brackets]{changes}
\usepackage[authormarkup=footnote]{changes}
\usepackage[authormarkup=none]{changes}
1
author
4.1.6 authormarkupposition
Call
\usepackage[authormarkupposition=hmarkupi]{changes}
Examples
\usepackage[authormarkupposition=right]{changes} = \usepackage{changes}
\usepackage[authormarkupposition=left]{changes}
4.1.7 authormarkuptext
The authormarkuptext option chooses the text that is used for the authors identification.
The default value is chosen if no explicit markup is given.
Call
\usepackage[authormarkuptext=hmarkupi]{changes}
Examples
\usepackage[authormarkuptext=id]{changes} = \usepackage{changes}
\usepackage[authormarkuptext=name]{changes}
4.1.8 ulem
All options for the ulem package can be specified as parameters of the ulem-option. Two
or more options have to be put in curly brackets.
Call
\usepackage[ulem=hoptionsi]{changes}
Examples
\usepackage[ulem=normalem]{changes}
\usepackage[ulem={normalem,normalbf}]{changes}
4.1.9 xcolor
All options for the xcolor package can be specified as parameters of the xcolor-option.
Two or more option have to be embraced in curly brackets.
Call
\usepackage[xcolor=hoptionsi]{changes}
Examples
\usepackage[xcolor=dvipdf]{changes}
\usepackage[xcolor={dvipdf,gray}]{changes}
4.2.1 \added
\added
The command \added marks new text. The new text is the mandatory argument
for the command, thus it is written in curly braces. The optional argument con-
tains key-value-pairs for author-id and remark. The author-id has to be defined using
\definechangesauthor. If the remark contains special characters or spaces, use curly
brackets to enclose the remark.
Call
\added[id=hauthors id i, remark=hremark i]{hnew texti}
Examples
This is \added[id=EK]{new} text.
This is newEK text.
This is \added[id=EK, remark={has to be in it}]{new} text.
This is newEK (has to be in it) text.
This is \added[remark=anonymous]{new} text.
This is new(anonymous) text.
4.2.2 \deleted
\deleted
The command \deleted marks deleted text. For arguments see \added.
Call
\deleted[id=hauthors id i, remark=hremark i]{hdeleted texti}
Examples
This is \deleted[remark=obsolete]{bad} text.
This is bad(obsolete) text.
4.2.3 \replaced
\replaced
The command \replaced marks replaced text. Mandatory arguments are the new text
and the old text. For optional arguments see \added.
Call
\replaced[id=hauthors id i, remark=hremark i]{hnew texti}{hold texti}
Examples
This is \replaced[id=EK]{nice}{bad} text.
This is nicebadEK text.
4.2.4 \listofchanges
\listofchanges
The command \listofchanges outputs a list or summary of changes. The first LATEX-run
creates an auxiliary file, the second run uses the data of this file. Therefore you need two
LATEX-runs for an up-to-date list of changes.
e v2.0.0 The style argument is optional, by default the list of changes is printed. If you want to
print a summary you have to use the option style=summary.
Call
\listofchanges[style=<list|summary>]
4.3.1 \definechangesauthor
\definechangesauthor
The command \definechangesauthor defines a new author for changes. You have to
define a unique authors id, special characters or spaces are not allowed within the
authors id. You may define a corresponding color and the authors name. If you do not
define a color, black is used. The authors name is used in the list of changes and in the
markup, if you set the corresponding option.
Call
\definechangesauthor[name={hauthors namei}, color={hcolor i}]{hauthors id i}
Examples
\definechangesauthor{EK}
\definechangesauthor[color=orange]{EK}
\definechangesauthor[name={Ekkart Kleinod}]{EK}
4.4.1 \setaddedmarkup
\setaddedmarkup
The command \setaddedmarkup defines the layout of added text. The default markup is
colored text, or the markup set with the option markup respectively addedmarkup.
Values for definition: any LATEX-commands, added text can be used with #1.
Call
\setaddedmarkup{hdefinitioni}
Examples
\setaddedmarkup{\emph{#1}}
\setaddedmarkup{+++: #1}
4.4.2 \setdeletedmarkup
\setdeletedmarkup
The command \setdeletedmarkup defines the layout of deleted text. The default markup
is striked-out, or the markup set with the option markup respectively deletedmarkup.
Values for definition: any LATEX-commands, deleted0 text can be used with #1.
Call
\setdeletedmarkup{hdefinitioni}
Examples
\setdeletedmarkup{\emph{#1}}
\setdeletedmarkup{--: #1}
4.4.3 \setauthormarkup
\setauthormarkup
The command \setauthormarkup defines the layout of the authors markup in the text.
The default markup is a superscripted authors text.
Values for definition: any LATEX-commands, authors text can be used with #1.
Call
\setauthormarkup{hdefinitioni}
Examples
\setauthormarkup{(#1)}
\setauthormarkup{(#1)~--~}
\setauthormarkup{\marginpar{#1}}
4.4.4 \setauthormarkupposition
\setauthormarkupposition
Call
\setauthormarkupposition{hpositioni}
Examples
\setauthormarkupposition{left}
4.4.5 \setauthormarkuptext
\setauthormarkuptext
The command \setauthormarkuptext defines the text for the authors markup. The
default markup is the authors id.
Possible values: name == authors name; all other values: authors id
Call
\setauthormarkuptext{htexti}
Examples
\setauthormarkuptext{name}
4.4.6 \setremarkmarkup
\setremarkmarkup
The command \setremarkmarkup defines the layout of remarks in the text. The default
markup typesets the remark in a footnote.
Values for definition: any LATEX-commands, authors id can be used with #1, the remark
can be shown using #2. Using the authors id you can use the authors color with
Changes@Color#1.
Call
\setremarkmarkup{hdefinitioni}
Examples
\setremarkmarkup{(#2 -- #1)}
\setremarkmarkup{\footnote{#1:\textcolor{Changes@Color#1}{#2}}}
4.4.7 \setsocextension
\setsocextension
The command \setsocextension sets the extension of the auxiliary file for the summary new since
of changes (soc-file2 ). The default extension is soc. In the example stated below,
the soc-file for foo.tex would be named foo.changes instead of the default name
foo.soc.
Call
\setsocextension{hextensioni}
Examples
\setsocextension{changes}
4.5.1 \textsubscript
\textsubscript
LATEX provides the command \textsuperscript, but not its counterpart \textsubscript.
If the command is not defined yet, it will be provided by the changes-package. If the
command is defined yet, it will not be changed.
Call
\textsubscript{htexti}
Examples
This is a \textsubscript{subscript} text.
This is a subscript text.
The changes-package uses already existing packages for its functions. You will find
detailed description of the packages in their distributions.
The following packages are always required and have to be installed for the changes-
package:
2
soc stands for summary of changes.
The following packages are sometimes required and have to be installed if used by the
corresponding option:
pdfcolmk loaded if colored text is used for markup (default markup); solves the problem
of colored text and page breaks (with pdflatex)
ulem loaded if text has to be striked or exed out (default markup)
xcolor loaded if colored text is used for markup (default markup)
5 Authors
Several authors contributed to the changes-package. The authors are (in alphabetical
order):
Chiaradonna, Silvano
Giovannini, Daniele
Kleinod, Ekkart
Wlfel, Philipp
Wolter, Steve
6 Versions
Version 2.0.3
Date: 2014/10/15
fixed crash when used with the amsart class
Version 2.0.2
Date: 2013/08/13
no changes in code or behavior
fixed problem of corrupt documentation PDFs in CTAN
improved/bugfixed documentation
Version 2.0.1
Date: 2013/08/10
no changes in code or behavior
fixed upload problems with CTAN (wrong line endings)
Version 2.0.0
Date: 2013/06/30
real list of changes, old summary now with optional parameter style=summary
fixed problem with special characters in summary of changes
renamed \setlocextension to \setsocextension
new author markup none
completed script description with -i parameter
Version 1.0.0
Date: 2012/04/25
Version 0.6.0
Date: 2012/01/11
Version 0.5.4
Date: 2011/04/25
Version 0.5.3
Date: 2010/11/22
document options of \documentclass are used too (suggestion and code of Steve
Wolter)
Version 0.5.2
Date: 2007/10/10
package options for ulem and xcolor are passed to the packages
Version 0.5.1
Date: 2007/08/27
deleted text is striked out again using package ulem, greying didnt work
Version 0.5
Date: 2007/08/26
no usage of package arrayjob anymore, thus no errors using package array
switch to UTF-8-encoding
no usage of package soul anymore, thus no errors using UTF-8-encoding
markup for deleted text changed to gray background, because theres no possibility
to conveniently strike out UTF-8-text
new optional argument for authors name
colored list of changes
changed loc file format
improved English documentation
Version 0.4
Date: 2007/01/24
included pdfcolmk to solve problem with colored text and page breaks
extended \setremarkmarkup with authors id for using color in remarks
by default remarks are colored now
first version uploaded to CTAN
Version 0.3
Date: 2007/01/22
English user-documentation
replaced command \changed with \replaced
improved final-option: no additional space
Version 0.2
Date: 2007/01/17
defined loc-names when missing babel -package
new commands \setauthormarkup, \setlocextension, \setremarkmarkup
generated examples
inserted LPPL
Bugfixes
fixed wrong ifthen package placement
fixed error in loc, always showing added
fixed authormarkup (\if-condition not bugfree)
Version 0.1
Date: 2007/01/16
initial version
commands \added, \deleted, and \changed
source/latex/changes/changes.drv
source/latex/changes/changes.dtx
source/latex/changes/changes.ins
source/latex/changes/examples.dtx
source/latex/changes/README
source/latex/changes/userdoc/*.tex
scripts/changes/delcmdchanges.bash
doc/latex/changes/changes.english.pdf
doc/latex/changes/changes.english.withcode.pdf
doc/latex/changes/changes.ngerman.pdf
doc/latex/changes/examples/changes.example.*.tex
doc/latex/changes/examples/changes.example.*.pdf
tex/latex/changes/changes.sty