\VerbatimInput выдает ошибку, если файл .dat содержит символы ( или *

\VerbatimInput выдает ошибку, если файл .dat содержит символы ( или *

У меня есть \VerbatimInputвызов файла test.dat, как показано здесь:

 \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}

Файл test.datвыглядит следующим образом:

 #l.77:
 TEST11

 A3

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

Из-за ( * )символов компиляция выдает такую ​​ошибку:

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

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

Как мне это скомпилировать?

решение1

Во-первых, я должен сказать, что я \VerbatimInputсам на самом деле не использовал. Однако, тот кусок кода, который вы разместили, выглядит точно так же, как тот, что разместили в следующем ответе:Включить данные из .txt дословно

Процитирую автора:

  • указание |и (/ )в качестве экранирующего символа и разделителей аргументов означает, что эти символы не могут появляться как часть дословного текста (или, в данном случае, содержимого data.txt);
  • строка звездочек в data.txt была удалена путем указания *в качестве символа комментария (аналогично %LaTeX);

Другими словами, скопированный вами код придает этим четырем символам особое значение, и поэтому его нельзя использовать с файлами, которые их содержат.

Строки, которые, по-видимому, это делают, следующие:

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

Поэтому я бы предложил удалить их из вашего кода или заменить символы другими, которых нет в вашем файле.

Связанный контент