我使用\usepackage{verbatim}
在我的 LaTeX 文档中显示 .txt 文件,通过\verbatiminput{<path to .txt>}
。这工作正常。但是,我显示的数据如下所示:
5.35 0.35 5.61 -0.39 6.84 -0.16
5.45 0.45 5.52 -0.48 6.84 -0.16
5.45 0.45 5.51 -0.49 6.96 -0.04
5.45 0.45 5.63 -0.37 6.96 -0.04
5.47 0.47 5.63 -0.37 6.96 -0.04
5.45 0.45 5.63 -0.37 6.84 -0.16
5.35 0.35 5.63 -0.37 6.84 -0.16
5.47 0.47 5.51 -0.49 6.96 -0.04
我想要一个配色方案:我希望每个奇数列都有浅灰色背景。我还希望这个表居中。有办法实现吗?
答案1
您可以读取表格并将其作为tabular
在空格处拆分每行后进行处理,然后用替换&
。
\begin{filecontents*}{\jobname-1.dat}
5.35 0.35 5.61 -0.39 6.84 -0.16
5.45 0.45 5.52 -0.48 6.84 -0.16
5.45 0.45 5.51 -0.49 6.96 -0.04
5.45 0.45 5.63 -0.37 6.96 -0.04
5.47 0.47 5.63 -0.37 6.96 -0.04
5.45 0.45 5.63 -0.37 6.84 -0.16
5.35 0.35 5.63 -0.37 6.84 -0.16
5.47 0.47 5.51 -0.49 6.96 -0.04
\end{filecontents*}
\begin{filecontents*}{\jobname-2.dat}
5.35 0.35 5.61 -0.39 6.84
5.45 0.45 5.52 -0.48 6.84
5.45 0.45 5.51 -0.49 6.96
5.45 0.45 5.63 -0.37 6.96
5.47 0.47 5.63 -0.37 6.96
5.45 0.45 5.63 -0.37 6.84
5.35 0.35 5.63 -0.37 6.84
5.47 0.47 5.51 -0.49 6.96
\end{filecontents*}
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\tableinput}{m}
{
\tableinput_main:n { #1 }
}
\ior_new:N \g__tableinput_file_ior
\tl_new:N \l__tableinput_body_tl
\seq_new:N \l__tableinput_row_seq
\cs_new_protected:Nn \tableinput_main:n
{
\tl_clear:N \l__tableinput_body_tl
\ior_open:Nn \g__tableinput_file_ior { #1 }
\ior_map_inline:Nn \g__tableinput_file_ior
{
\seq_set_split:Nnn \l__tableinput_row_seq { ~ } { ##1 }
\seq_pop_right:NN \l__tableinput_row_seq \l_tmpa_tl % last item is blank
\tl_put_right:Nx \l__tableinput_body_tl { \seq_use:Nn \l__tableinput_row_seq { & } }
\tl_put_right:Nn \l__tableinput_body_tl { \\ }
}
\ior_close:N \g__tableinput_file_ior
\begin{center}\ttfamily
\int_if_odd:nTF { \seq_count:N \l__tableinput_row_seq }
{
\begin{tabular}
{
*{ \int_eval:n { (\seq_count:N \l__tableinput_row_seq - 1) /2 } }
{>{\columncolor{gray!30}}r r}
>{\columncolor{gray!30}}r
}
}
{
\begin{tabular}
{
*{ \int_eval:n { (\seq_count:N \l__tableinput_row_seq) /2 } }
{>{\columncolor{gray!30}}r r}
}
}
\tl_use:N \l__tableinput_body_tl
\end{tabular}
\end{center}
}
\ExplSyntaxOff
\begin{document}
\tableinput{\jobname-1.dat}
\tableinput{\jobname-2.dat}
\end{document}
答案2
如果您愿意更换该包,您可以按如下方式listings
使用附加包:lstlinebgrd
\begin{filecontents}{myfile.txt}
5.35 0.35 5.61 -0.39 6.84 -0.16
5.45 0.45 5.52 -0.48 6.84 -0.16
5.45 0.45 5.51 -0.49 6.96 -0.04
5.45 0.45 5.63 -0.37 6.96 -0.04
5.47 0.47 5.63 -0.37 6.96 -0.04
5.45 0.45 5.63 -0.37 6.84 -0.16
5.35 0.35 5.63 -0.37 6.84 -0.16
5.47 0.47 5.51 -0.49 6.96 -0.04
\end{filecontents}
\documentclass{article}
\usepackage{listing}
\usepackage{lstlinebgrd}
\definecolor{mylightgray}{RGB}{220, 220, 220}
\begin{document}
\lstinputlisting[linebackgroundcolor={\ifodd\value{lstnumber}\color{mylightgray}\fi}]{myfile.txt}
\end{document}