在 LaTeX 中包含和更改 .txt 输入

在 LaTeX 中包含和更改 .txt 输入

我使用\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}

在此处输入图片描述

相关内容