Как настроить вывод tex1 для всех типов дробей в wxMaxima?

Этот вопрос задавался о настройке вывод tex1 для числовой дроби (т.е. x где ratnump(x) = true); однако это, похоже, не распространяется на все объекты, которые печатаются как дробь, например. 1/x или diff(ln(x),x)).

Следуя этому ответу, я попытался использовать :lisp $x для запроса формы lisp, и я получил ((MEXPT SIMP) $X -1) для 1/x и ((%DERIVATIVE SIMP) (($LN SIMP) $X) $X 1) для diff(ln(x),x); однако я понятия не имею, как использовать эту информацию с texput, чтобы указать желаемое форматирование.

Хотя я не думаю, что это обязательно имеет отношение к вопросу, я хотел вызвать другую функцию LaTeX вместо \frac (например, \tfrac).


person Rax Adaam    schedule 18.12.2020    source источник


Ответы (1)


Это длинная история, но оказывается, что отображаемый оператор — MQUOTIENT. Попробуй это:

texput (?mquotient, lambda([e], printf (false, "\\tfrac{~a}{~a}", tex1(num(e)), tex1(denom(e)))));

Затем я получаю:

(%i12) tex1(1/x);
(%o12)                    \tfrac{1}{x}
(%i13) tex1(y/x);
(%o13)                    \tfrac{y}{x}
(%i14) tex1((1+a/b)/(1-c/d));
(%o14)       \tfrac{\tfrac{a}{b}+1}{1-\tfrac{c}{d}}

PS. ln не распознается Maxima (если только вы не создали функцию с именем ln). Логарифм по основанию e равен log. Также log10 не распознается (опять же, если вы не создали такую ​​функцию).

person Robert Dodier    schedule 19.12.2020
comment
Спасибо, Роберт! Не знаю почему, но моя версия wxMax, кажется, обрабатывает ln(x) как и ожидалось. Я предполагаю, что я, должно быть, загрузил пакет, не осознавая этого, но он должен был быть добавлен таким образом, чтобы навсегда добавить определение, поскольку я вообще ничего не загружал, когда запускал эти команды в новом сеансе. - person Rax Adaam; 19.12.2020
comment
Насчет ln, возможно, это что-то добавленное wxMaxima. Обыкновенная Максима об этом не знает. - person Robert Dodier; 19.12.2020