LINUX.ORG.RU

pgfplots: что сломали между 1.5 и 1.13?

 , ,


0

2

Это надо писать в рассылку pgfplots, наверное, или где его там обсуждают, но вдруг и здесь есть те, кто близко сталкивался.

У меня был трёхмерный график, вот код для него в отдельном документе (pastebin, потому что таблица длинная, 10 на 100 точек). С месяц назад у меня было задано \pgfplotsset{compat=1.5}, потом я этот график временно выбросил из документа, потом поменял на \pgfplotsset{compat=1.13} и благополучно забыл про это дело. А вчера вернул график в документ и сломал себе все мозги в попытках понять, почему вылезает по нескольку раз дурацкая ошибка Undefined control sequence. }\marray. Конечно, undefined, я ведь её здесь и объявляю, прочитав таблицу. Ни row sep=\\ не помогло, ни прочая беготня с бубном.

Так я это всё к чему: там правда что-то поменяли между этими двумя версиями? Но код-то совпадает с тем, что в мануале, будь он неладен.

Если убрать пустые строки внутри аргумента \pgfplotstableread, то собирается и с \pgfplotsset{compat=1.13}. В документации не искал, так что не знаю, документировано ли.

TeopeTuK ★★★ ()
Ответ на: комментарий от TeopeTuK

Так ведь пустая строка — это конец ряда, не? Ладно, шут с ними на самом деле. Выкопал в мануале, что можно для отдельных осей задать версию compat, так и сделаю в нужных местах.

al_exquemelin ★★★ ()
Ответ на: комментарий от TeopeTuK

Ну как какие, rows в таблице данных. Вот, в мануале (1.16, правда) написано:

Thus, if you have empty lines in your input table, pgfplots will automatically identify the matrix size. If you do not have empty lines, pgfplots expects at least one of mesh/rows or mesh/cols.

А у меня он, собственно, не реагировал на пустые строки и требовал mesh/rows. Или, может, нужно было принудительно указать empty line=scanline, не знаю.

al_exquemelin ★★★ ()