\documentclass[11pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{changebar}
\setcounter{changebargrey}{30} % set change bar color
\usepackage{xcolor}

\title{Highlighting changes in \LaTeX}
\author{Jan Pöschko}

\newif\ifdiff
\difftrue % remove this line to apply the changes without highlighting them

\ifdiff
\newcommand{\removed}[1]{\cbstart\removedfragile{#1}\cbend{}}
\newcommand{\removedfragile}[1]{{\color{red}{#1}}{}}
\newcommand{\added}[1]{\cbstart\addedfragile{#1}\cbend{}}
\newcommand{\addedfragile}[1]{{\color{green!50!black}{#1}}{}} % change bars don't work in fragile constructs such as float captions
\else
\newcommand{\removed}[1]{} % non-markup version
\newcommand{\added}[1]{#1}
\newcommand{\addedfragile}[1]{#1}
\fi
\newcommand{\changed}[2]{\added{#1}\removed{#2}}

\begin{document}

\maketitle

This \changed{new replacement}{text} is replaced.

Here comes a footnote.\footnote{\added{It also works in the footnote.}}

\begin{table}[h]
\centering
\caption{The caption of a \addedfragile{floating }table. Change bars have to be omitted here.}
\begin{tabular}{lr}
\hline
A & B \\
\added{inside the table} & \removed{they're fine though} \\
\hline
\end{tabular}
\end{table}

\end{document}
