\VerbatimInput dá erro quando o arquivo .dat contém símbolos (ou *

\VerbatimInput dá erro quando o arquivo .dat contém símbolos (ou *

Eu tenho uma \VerbatimInputchamada para um test.datarquivo, conforme mostrado aqui:

 \documentclass[12pt]{article}

 \usepackage[left=2.5cm,top=2.5cm,right=2.5cm,bottom=2.5cm]{geometry}
 \usepackage[utf8]{inputenc}
 \usepackage{enumitem}
 \usepackage{fancyvrb}
 \usepackage{color,soul}
 \usepackage[dvipsnames]{xcolor}


 \begin{document}


 \RecustomVerbatimCommand{\VerbatimInput}{VerbatimInput}%
 {fontsize=\footnotesize,
  %
  frame=lines,  % top and bottom rule only
  framesep=2em, % separation between frame and text
  rulecolor=\color{Gray},
  %
  label=\fbox{\color{Black}test.dat},
  labelposition=topline,
  %
  commandchars=\|\(\), % escape character and argument delimiters for
                  % commands within the verbatim
  commentchar=*        % comment character
 }

 \VerbatimInput{./test.dat}


 \end{document}

O test.datarquivo é o seguinte:

 #l.77:
 TEST11

 A3

  (EL = 4) # this is compiled ok
  mH/(C*K) # this is not compiled, giving that error

Devido aos ( * )símbolos, a compilação apresenta este erro:

 Runaway definition?
 -> mH/(C
 ! File ended within \read.
 <read 1> 

 l.97 \VerbatimInput{./test.dat}

Como eu poderia compilar isso?

Responder1

Primeiro, devo dizer que na verdade não usei \VerbatimInput. No entanto, esse trecho de código que você postou é exatamente igual ao postado na seguinte resposta:Incluir dados de um .txt literalmente

Para citar o autor:

  • especificar |e (/ )como caractere de escape e delimitadores de argumento significa que esses símbolos não podem aparecer como parte do texto literal (ou, neste caso, o conteúdo de data.txt);
  • a linha de asteriscos em data.txt foi removida especificando-se *como caractere de comentário (semelhante ao %LaTeX);

Em outras palavras, o código que você copiou dá um significado especial a esses quatro caracteres e, portanto, não pode ser usado com arquivos que os contenham.

As linhas que parecem estar fazendo isso são estas:

commandchars=\|\(\), % escape character and argument delimiters for
              % commands within the verbatim
commentchar=*        % comment character

Portanto, sugiro removê-los do seu código ou substituir os caracteres por outros que não aparecem no seu arquivo.

informação relacionada