Perltex:如何输出到乳胶文件?

问题描述 投票:2回答:1

我想要:

  • 逐行读取文本文件。

  • 以mwe给出的结构。

  • 存储在数组中,并按其列之一对其进行排序。

  • 排序的数组应该在perltex中正常显示在Latex文件中。

远离这个目标,我为从Perl变量传递到乳胶输出而苦恼。

我在docs和net中没有找到类似的代码。另外,这里还缺少“ perltex”标签,但是我希望有人可以提供帮助。

     \documentclass[]{scrartcl}
     \usepackage{perltex}
      % content of text file "verfile" in same dir
      % die & Vers\"ohnung & tr. & vers\"ohnen    & in alle R. gehend &     fehlt                 \\
      % die & Vergoldung & tr. & vergolden    & in alle R. gehend &     fehlt                 \\
      % die & Vergeudung & tr. & vergeuden    & in alle R. gehend &          fehlt            \\

      \begin{document}


      \perlnewcommand{\setline}[1]{$line = $_[0]; return ""} %cp perltex doc p.5
      \perlnewcommand{\getline}{$line;}
      \perldo{  
             $verfile = "verfile";
             open (VF,"$verfile") || die "$!";
             while (<VF>) {
                $line = $_; # works: print "$line\n";
             }
             print "after loop: $line\n";
             return "\\setline{$line}";
            }

       \getline

       \end{document}

目前,我期望在输出pdf文件中仅缺少一行可以完成数组工作。因此问题仍然存在,为什么setline不起作用?

perl latex
1个回答
1
投票

这里是如何创建表格的示例。这将根据第一列的内容对verfile的列进行排序,然后创建一个LaTeX表:

\documentclass{article}
\usepackage{perltex}
\begin{document}
\perlnewcommand{\verfile}[0]{
  open (my $VF, '<', 'verfile') or die "$!";
  my @lines;
  while (my $line = <$VF>) {
      chomp $line;
      my @fields = split /&/, $line;
      push @lines, \@fields;
  }
  close $VF;
  my @sorted = sort {$a->[0] cmp $b->[0]} @lines;
  my $result = '
    \begin{table}
    \centering
    \begin{tabular}{cccccc}
  ';
  for my $line (@sorted) {
      $result .= (join ' & ', @$line) . "\n";
  }
  $result .= '\end{tabular}
  \end{table}
  ';
  return $result;
} % done

\verfile
\end{document}

使用perltex --nosafe test.tex编译该文件

© www.soinside.com 2019 - 2024. All rights reserved.