突出显示字符序列之间的差异

突出显示字符序列之间的差异

我有一些需要放入文档中的字符序列:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}

\begin{document}

\begin{table}[h]
    {\renewcommand\arraystretch{1.25}
        \begin{tabular}{|l|l|l|l|} \hline
            {} & \multicolumn{2}{l|}{Path} & Probability ($\ln(p)$) \\ \hline
            1 & \multicolumn{2}{p{10cm}|}
            {\raggedright
            10101010101101101010101101010110101010101101011 01010101010110101010101010110101010101010110101 01011010101101010110101101010101010101011010101 01101011101010} & 
            $-778.850803$ \\\hline
            2 & \multicolumn{2}{p{10cm}|}
            {\raggedright
            10101010101101011010101101010110101010101101011 01010101010110101010101010110101010101010110101 01011010101101010110101101010101010101011010101 01101011101010} & 
            $-778.854071$ \\\hline
            3 & \multicolumn{2}{p{10cm}|}
            {\raggedright
            10101010101101101010101101010110101010101101011 01010101010110101010101010110101010101010110101 01011010110101010110101101010101010101011010101 01101011101010} & 
            $-778.875721$ \\\hline
            4 & \multicolumn{2}{p{10cm}|}
            {\raggedright
            10101010101101011010101101010110101010101101011 01010101010110101010101010110101010101010110101 01011010110101010110101101010101010101011010101 01101011101010} & 
            $-778.878989$ \\\hline
            5 & \multicolumn{2}{p{10cm}|}
            {\raggedright
            10101010101101101010101101010110101010101101011 01010101010110101010101010110101010101010101101 01011010101101010110101101010101010101011010101 01101011101010} & 
            $-778.965166$ \\\hline
        \end{tabular}}
\end{table}

\end{document}

有没有办法以某种方式突出显示第二个和其他与第一个相比的差异?我想自动执行此操作,因为我有 50 个这样的表,并且一些字符序列比这个“短”的字符序列长。

先感谢您。

答案1

您可以存储第一个字符串,然后将后面的每个项目与第一个字符串中的相应项目进行比较。

无法检查两个字符串的长度是否相同,但可以将其相加。

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}

\usepackage{xparse}

\ExplSyntaxOn
\seq_new:N \l_bdvd_comparison_seq
\seq_new:N \l_bdvd_comparison_temp_seq

\NewDocumentCommand{\comparisonstring}{m}
 {
  \seq_set_split:Nnn \l_bdvd_comparison_seq { } { #1 }
 }
\NewDocumentCommand{\usecomparisonstring}{}
 {
  \seq_use:Nn \l_bdvd_comparison_seq { \allowbreak }
 }
\NewDocumentCommand{\comparestring}{m}
 {
  \seq_set_split:Nnn \l_bdvd_comparison_temp_seq { } { #1 }
  \seq_mapthread_function:NNN
   \l_bdvd_comparison_seq
   \l_bdvd_comparison_temp_seq
   \bdvd_compareitems:nn
 }
\cs_new_protected:Nn \bdvd_compareitems:nn
 {
  \str_if_eq:nnTF { #1 } { #2 }
   { #2 }
   { {\fontseries{b}\selectfont #2} }
  \allowbreak
 }
\ExplSyntaxOff


\begin{document}

\begin{table}[htp]
\renewcommand\arraystretch{1.25}

\comparisonstring{%
  10101010101101101010101101010110101010101101011%
  01010101010110101010101010110101010101010110101%
  01011010101101010110101101010101010101011010101%
  01101011101010%
}

\begin{tabular}{|l|>{\raggedright}p{8.5cm}|l|}
\hline
 & Path & 
 \renewcommand\arraystretch{1}
 \begin{tabular}{@{}l@{}}Probability \\ ($\ln(p)$) \end{tabular}
\\
\hline
1 & \usecomparisonstring &
$-778.850803$ \\\hline
2 & \comparestring{%
      10101010101101011010101101010110101010101101011%
      01010101010110101010101010110101010101010110101%
      01011010101101010110101101010101010101011010101%
      01101011101010} &
$-778.854071$ \\\hline
3 & \comparestring{%
      10101010101101101010101101010110101010101101011%
      01010101010110101010101010110101010101010110101%
      01011010110101010110101101010101010101011010101%
      01101011101010} &
$-778.875721$ \\\hline
4 & \comparestring{%
      10101010101101011010101101010110101010101101011%
      01010101010110101010101010110101010101010110101%
      01011010110101010110101101010101010101011010101%
      01101011101010} &
$-778.878989$ \\\hline
5 & \comparestring{%
      10101010101101101010101101010110101010101101011%
      01010101010110101010101010110101010101010101101%
      01011010101101010110101101010101010101011010101%
      01101011101010} &
$-778.965166$ \\\hline
\end{tabular}
\end{table}

\end{document}

在此处输入图片描述

相关内容