Package: latexdiff
Version: 1.3.2-1
Severity: normal
Tags: upstream
X-Debbugs-Cc: [email protected], [email protected]
Text inside the \colchunk command (which is used inside a parcolumns
environment) escapes the diffing algorithm. Text that is inside a
parcolumns environment but not in a colchunk is treated correctly. But
\colchunk is essential to the core functionality of parcolumns. A
minimal working example is attached.
-- System Information:
Debian Release: 12.5
APT prefers stable-updates
APT policy: (990, 'stable-updates'), (990, 'stable-security'), (990,
'stable'), (500, 'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.10.0-28-amd64 (SMP w/2 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages latexdiff depends on:
ii perl 5.36.0-7+deb12u1
Versions of packages latexdiff recommends:
ii texlive-latex-base 2022.20230122-3
ii texlive-latex-extra 2022.20230122-4
ii texlive-latex-recommended 2022.20230122-3
ii texlive-plain-generic 2022.20230122-4
Versions of packages latexdiff suggests:
ii git 1:2.39.2-1.1
-- no debconf information
\documentclass{minimal}
\usepackage[UKenglish,dutch]{babel}
\usepackage{parcolumns}
\newcommand{\bilingual}[2]{%
\colchunk{\selectlanguage{dutch}#1}%
\colchunk{\selectlanguage{UKenglish}#2}%
\colplacechunks%
}
\begin{document}
This minimal sample document demonstrates a latexdiff defect whereby
text inside a parcolumns environment escapes the diffing
algorithm. The next paragraph from the GDPR is printed in a two column
format. Words are added to the left side (Dutch) but latexdiff does
not notice.\\
\centerline{\textbf{broken diff:}}
\begin{parcolumns}[nofirstindent]{2}
\bilingual{%
De betrokkene heeft het recht niet te worden onderworpen aan een
uitsluitend op geautomatiseerde verwerking, waaronder profilering,
gebaseerd besluit waaraan voor hem rechtsgevolgen
zijn verbonden of dat hem anderszins in
aanmerkelijke mate treft.\\
}{%
The data subject shall have the right not to be subject to a
decision based solely on automated processing, including
profiling, which produces legal effects concerning him or her or
similarly significantly affects him or her.\\
}
The new version of text prevails, but it has no markups. Below is
the same text laid out inside adjecent minipages instead,
which shows latexdiff working as expected.\\
\end{parcolumns}
\centerline{\textbf{working diff:}}
\noindent\begin{minipage}[t]{0.49\textwidth}\selectlanguage{dutch}
De betrokkene heeft het recht niet te worden onderworpen aan een
uitsluitend op geautomatiseerde verwerking, waaronder profilering,
gebaseerd besluit waaraan voor hem rechtsgevolgen
zijn verbonden of dat hem anderszins in aanmerkelijke
mate treft.%
\end{minipage}\hfill%
\noindent\begin{minipage}[t]{0.47\textwidth}\selectlanguage{UKenglish}
The data subject shall have the right not to be subject to a
decision based solely on automated processing, including profiling,
which produces legal effects concerning him or her or similarly
significantly affects him or her.%
\end{minipage}%
\end{document}
\documentclass{minimal}
\usepackage[UKenglish,dutch]{babel}
\usepackage{parcolumns}
\newcommand{\bilingual}[2]{%
\colchunk{\selectlanguage{dutch}#1}%
\colchunk{\selectlanguage{UKenglish}#2}%
\colplacechunks%
}
\begin{document}
This minimal sample document demonstrates a latexdiff defect whereby
text inside a colchunk environment escapes the diffing algorithm. The
next paragraph from the GDPR is printed in a two column format. Words
are added to the left side (Dutch) but latexdiff does
not notice.\\
\centerline{\textbf{broken diff:}}
\begin{parcolumns}[nofirstindent]{2}
\bilingual{%
De betrokkene heeft het recht niet te worden onderworpen aan een
uitsluitend op geautomatiseerde verwerking, waaronder profilering,
gebaseerd besluit waaraan voor hem of haar rechtsgevolgen
zijn verbonden of dat hem of haar anderszins in
aanmerkelijke mate treft.\\
}{%
The data subject shall have the right not to be subject to a
decision based solely on automated processing, including
profiling, which produces legal effects concerning him or her or
similarly significantly affects him or her.\\
}
The new version of text prevails, but there are no markups. Below is
the same text laid out inside adjecent minipages instead,
which shows latexdiff working as expected.\\
\end{parcolumns}
\centerline{\textbf{working diff:}}
\noindent\begin{minipage}[t]{0.49\textwidth}\selectlanguage{dutch}
De betrokkene heeft het recht niet te worden onderworpen aan een
uitsluitend op geautomatiseerde verwerking, waaronder profilering,
gebaseerd besluit waaraan voor hem of haar rechtsgevolgen
zijn verbonden of dat hem of haar anderszins in aanmerkelijke
mate treft.%
\end{minipage}\hfill%
\noindent\begin{minipage}[t]{0.47\textwidth}\selectlanguage{UKenglish}
The data subject shall have the right not to be subject to a
decision based solely on automated processing, including profiling,
which produces legal effects concerning him or her or similarly
significantly affects him or her.%
\end{minipage}%
\end{document}