Freeplane - латексный ввод

Поэтому я попытался найти интеллектуальное программное обеспечение с поддержкой латекса и наткнулся на Freeplane.

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

Например, если я хочу включить такой код:

\textbf{$Alg_0$}
\begin{tabular}{cl}
    0 & \text{initialisation of $Alg_0$} \\
    1 & \text{do\ some\ first\ step}\\
    2 & \text{...} \\
\end{tabular}

Я могу скопировать это на узел, и результат будет выглядеть как ожидалось (хотя необходимость в \text{} раздражает).

Теперь для простоты написания / модификации, мне бы не хотелось каждый раз копировать его во Freeplane.

Freeplane утверждает, что это возможно, с \latexinput{} команда, но "файл должен быть правильно сформированным XML-документом, поэтому вы должны иметь корневой тег и экранировать <,> и &"

Следуя их примеру, я добавляю теги doc и escape &:

<doc>
\textbf{$Alg_0$}
\begin{tabular}{cl}
    0 &amp; \text{initialisation of $Alg_0$} \\
    1 &amp; \text{do\ some\ first\ step}\\
    2 &amp; \text{...} \\
\end{tabular}
<doc>

сохранить это как alg_0.xml в той же папке я положил .mm файл и создать узел с

\latexinput{alg_0.xml}

Изменение его формата на LaTeX теперь будет отображать:

Ошибка установки текста для следующего ввода: \latexinput{alg_0.xml}.

Как мне решить это?

1 ответ

Решение

Быстрый ответ: Вы, вероятно, не хотите \latexinput{...}, который работает только для экспорта.

Что вы можете сделать, чтобы сохранить ввод латексного кода во Freeplane, это определить макрос (обычный синтаксис LaTeX с некоторыми ограничениями) в Preferences->Plugins->LaTeX->Common LaTeX Macros [1]. Для вашего примера это работает:

\newcommand{\exampleTable}{
\textbf{$Alg_0$}
\begin{tabular}{cl}
    0 & \text{initialisation of $Alg_0$} \\
    1 & \text{do\ some\ first\ step}\\
    2 & \text{...} \\
\end{tabular}
}

(конечно, вы можете использовать параметры)

-> вставить в текстовое поле в Предпочтения-> Плагины->LaTeX. -> использовать \exampleTable в ваших узлах

Как работает \latexinput{...}?

отсюда [2]: "Если ваш узел соответствует шаблону \latexinput{}, то Freeplane включит данный файл в заданную позицию в экспорте LaTeX. Обратите внимание, что экспорт не удастся, если документ не может быть прочитан".

-> Идея в том, что наша (превосходная!) Библиотека LaTeX (jlatexmath) может обрабатывать только формулы, и вы можете использовать \latexinput{}, чтобы включить LaTeX, который jlatexmath не сможет проанализировать в вашей карте, которая будет обрабатываться латексом (вход / книга / статья) только экспорт.

Причина, по которой вы получаете эту ошибку: Ошибка установки текста для следующего ввода: \latexinput{alg_0.xml}. в том, что jlatexmath не может разобрать это. Используйте узел (без префикса \ latex) с Format=Unparsed LaTeX. Это заставит freeplane игнорировать узел, но это будет частью экспорта.

Однако в Freeplane 1.5.x права доступа более ограничены, поэтому вы получите "Следующая операция с файлом запрещена: Читать /home/felix/src/alg_0.xml".

Я создал пост для этого [3], и я думаю, что он будет исправлен в 1.5.x.

Скажите, пожалуйста, можно ли улучшить документацию в вики (я также могу дать вам права на вики).

[1] http://www.freeplane.org/wiki/index.php/LaTeX_in_Freeplane

[2] http://www.freeplane.org/wiki/index.php/LaTeX_in_Freeplane

[3] http://freeplane-developer.996965.n3.nabble.com/Permission-problem-when-Including-LaTeX-content-from-file-system-tt973.html

Приветствия и наилучшие пожелания, Феликс

Другие вопросы по тегам