2015-05-01 3 views
1

У меня есть данные в lua, доступные для документа LaTeX/TeX (это массив). Я пытаюсь показать эти данные в табличной форме LaTeX. . Я попробовал несколько способов сделать это, но все они не смогло :(Вот пример:Упорядочить данные lua/lualatex в таблицах Latex/tex

\begin{tabular}{|c|c|c|}\hline 
A&B&C\\ \hline 
2010 & 2,78 &\\ \hline 
\luaexec{for i=1,nA do; 
tex.print(i.."& "..data_a[1][i].." &"..data_a[2][i]..[[\\ \hline]]); 
end;} 
\end{tabular} 

У меня есть эта ошибка: «Использование @@ массива не соответствует его определению» В принципе, все будет работа, за исключением, когда я пытаюсь поставить новую строку \ в цикле.

Любой идея приветствуется !!

+1

Мне кажется, что вам нужно избежать символов '\': '\' становится '\ string \\'. (Так что '\\' становится '\ string \\ \ string \\'; нет пробела между токенами). Для менее утомительных способов сделать это более подробно рассмотрим руководство Lua (La) Tex. –

+0

Фактически последовательность [[...]] выполняет эту работу по экранированию. Я пробовал довольно много конфигураций: luadirect, luaexec, luacode, luacode *. Я попробовал lua-экранирование с помощью «один за другим», например «\\\\\\\ hline» вместо [[\\ \ hline]]. Но, конечно, я попробовал еще раз ... и теперь это работает !! '\ begin {tabular} {| c | c | c |} \ hline A & B & C \\ \ hline 2010 & 2,78 & \\ \ hline \ luaexec {для i = 1, nA do; tex.print (i .. "&" ..data_a [1] [i] .. "&" .. data_a [2] [i] .. "\\\\ \\ hline"); end;} \ end {tableular} ' Я не понимаю, почему, но это работает :) – user1771398

ответ

0

Это работает!

\begin{tabular}{|c|c|c|c|}\hline A&B&C&D\\ \hline 
\luaexec{for i=1,nA do; tex.print(i.."& "..data_a[1][i].." &"..data_a[2][i].."&\\\\ \\hline") end} 
\end{tabular} 
0

Если вы работаете в вопросы с изображением \ в строке, включенной в luaexec, вы можете рассмотреть различные представления, что дает тот же результат. Например, \ эквивалентно "\92\32" или string.char(92, 32).