суббота, 16 мая 2009 г.

Графики в EMaxima

Что же необходимо для того чтобы уметь удобный способ добавления графиков?

Если используется pdflatex, то лучше не применять формат eps. Необходимо использовать png (или подобный графический формат). В случае использования latex все с точностью до наоборот.

Примеры из документации к Maxima:

plot2d (sin(x), [x, 0, 2*%pi], [psfile, "sin.eps"])$
plot2d (sin(x), [x, 0, 2*%pi], [gnuplot_term, png], [gnuplot_out_file, "sin.png"])$


Неприятность заключается в том, что знак "$" - есть начало (или конец) формулы в tex. Соответственно, подсветкой синтаксиса AUCTeX он именно так и воспринимается, сбивая с толку. Достаточно замкнуть формулу еще одним значком "$". Но то что формула для tex, для Maxima - ввод, который должен быть непустым. Достаточно вставить значение последнего вывода, которое, очевидно, будет пустым "%".

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

Функция Maxima print() вставляет пробелы между выводимыми фрагментами строки, поэтому воспользуемся конкатенацией.

Кроме того, если промежуточные действия Maxima в результирующем файле не нужны, то достаточно в объявлении ячейки EMaxima вставить звездочки "*".

В результате ячейка может иметь вид:

\begin{maxima*}
OutFile : "img/graph.png"$%$
plot2d (sin(x), [x, 0, 2*%pi], [gnuplot_term, png], [gnuplot_out_file, OutFile])$%$
print(concat("\\includegraphics[width=15cm]{",OutFile,"}"))$%$
\end{maxima*}


После вычисления данной ячейки (C-c C-u c) в директорию img (данная директория к этому моменту должна существовать), находящийся в той же директории, что и редактируемый файл будет выведен график функции, а в редактируемый файл выведется инструкция для tex по добавлению рисунка, для использования которого достаточно вынести его из окружения ячейки EMaxima:

\includegraphics[width=15cm]{img/graph.png}

Комментариев нет:

Отправить комментарий