我有一些需要放入文档中的字符序列:
\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}