Есть ли калькулятор с синтаксисом LaTeX?

Когда я пишу математику в LaTeX, мне часто приходится выполнять простую арифметику по номерам в моем источнике LaTeX, например 515.1544 + 454 = ???.

Обычно я скопирую код LaTeX в Google, чтобы получить результат, но мне все же нужно вручную изменить синтаксис, например.

\ frac {154,7} {25} - (289 -\frac {1337} {42})

необходимо изменить на

154,7/25 - (289 - 1337/42)

Кажется, тривиально написать программу, чтобы сделать это для наиболее часто используемых операций. Есть калькулятор, который понимает этот синтаксис?

EDIT: Я знаю, что делать это совершенно невозможно (из-за проблемы с остановкой). Выполнение этого для простых случаев, которые мне нужны, тривиально. \frac,\cdot,\sqrt и несколько других тегов будут делать трюк. Программа может просто вернуть ошибку для случаев, которые она не понимает.

Ответ 1

Проект LaTeXCalc предназначен именно для этого. Он будет читать TeX файл и выполнять вычисления. Для получения дополнительной информации посетите домашнюю страницу http://latexcalc.sourceforge.net/

Ответ 3

Пакет calc позволяет выполнять некоторые вычисления в исходном коде, но только внутри таких команд, как \setcounter и \addtolength. Насколько я могу судить, это не то, что вы хотите.

Если вы уже используете sage, то пакет sagetex довольно хорош (если нет, то он перебор). Это позволяет получить красиво отформатированный вывод от ввода, как это:

The square of
$\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}$
is \sage{matrix([[1, 2], [3,4]])^2}.

The prime factorization of the current page number is \sage{factor(\thepage)}

Ответ 4

Как говорит Энди, ответ да есть калькулятор, который может понять большинство формул латекса: Emacs.

Попробуйте выполнить следующие шаги (при условии, что vanilla emacs):

  • Открыть emacs
  • Откройте ваш .tex файл (или активируйте латексный режим)
  • расположите точку где-то между двумя $$ или, например, внутри среды начала/конца формулы (или даже матрицы).
  • использовать встроенный режим calc для максимальной удивительности

Итак, с точкой в ​​формуле, которую вы указали выше:

$\frac{154,7}{25} - (289 - \frac{1337}{42})$

нажмите C-x * d на дублировать формулу в строке ниже и введите calc-embedded режим, который должен был активировать вам латексный вариант calc. Теперь ваш буфер выглядит следующим образом:

$\frac{154,7}{25} - (289 - \frac{1337}{42})$

$\frac{-37651}{150}$`

Обратите внимание, что фракция как можно более трансформировалась. Повторяя то же самое (C-x * d) и нажав c f, чтобы преобразовать дробное число в число с плавающей точкой, вы получите следующий буфер:

$\frac{154,7}{25} - (289 - \frac{1337}{42})$

$\frac{-37651}{150}$

$-251.006666667$

Я использовал C-x * d для дублирования формулы, а затем введите внедренный режим, чтобы иметь промежуточные значения, однако есть также C-x * e, который позволяет избежать дублирования и просто входит в встроенный режим для текущей формулы.

Если вы заинтересованы, вам действительно нужно взглянуть на информационную страницу Emacs Calc - встроенный режим. И вообще помощь для Gnu Emaca Calculator вместе с удивительным интерактивным tutorial.

Ответ 5

Учитывая, что сам LaTeX является языком разметки с полной Тьюрингом, я сильно сомневаюсь, что вы можете создать нечто подобное, не встроенное непосредственно в LaTeX. Кроме того, сам математический математику LaTeX не имеет почти никакого семантического значения, он просто описывает внешний вид.

При этом, вы, вероятно, можете взломать что-то, что распознает непрограммируемое подмножество математической разметки LaTeX и выдает результат таким же образом. Если все, что вас интересует, - это простая арифметика с дробями и целыми числами (хотя осторожно с десятичными дробями, хотя они могут выглядеть как 3{,}141... в немецких текстах :)), это не должно быть слишком сложно. Но как только вы начнете с интегралов, матриц и т.д., Я боюсь, что LaTeX не хватает выразительности, чтобы точно описать ваши намерения. В конце концов, это система подготовки документов, и поэтому она не очень подходит в качестве входных данных для систем компьютерной алгебры.

Примечание: вы можете переключиться на Word, который имеет - в его текущей версии - язык математической разметки, который достаточно похож на LaTeX и все же удобен для Google для более простых терминов:

Illustration of math markup in Microsoft Word
(источник: hypftier.de)

С помощью бесплатной надстройки Microsoft Math вы даже можете позволить Word вычислять выражения на месте:

Illustration of the Microsoft Math add-in for Microsoft Word, calculating an expression
(источник: hypftier.de)

Ответ 6

Вы можете запустить R-функцию Sweave в файле (в основном TeX с некоторым R), который может заменить R-выражения своими результатами в Tex.

Учебное пособие можно найти здесь: http://www.scribd.com/doc/6451985/Learning-to-Sweave-in-APA-Style

Ответ 7

Мой калькулятор может это сделать. Чтобы получить форматированный вывод, дважды щелкните формулу результата и нажмите ctrl + c, чтобы скопировать ее.

Он может делать довольно продвинутые вещи (дифференциация, простые интегралы (а не , что легко)...).

https://calculator-algebra.org/cgi-bin/calculator?request=calculator&mainInput=%5cfrac%7b1%2b2%7d%7b3%7d%3b%0ad%2fdx%28arctan%20%282x%2b3%29%29

Ответ 8

Есть способ сделать то, что вы хотите, просто не совсем так, как вы описываете.

Вы можете использовать пакет fp (\ usepackage [options] {fp}), пакет с плавающей запятой будет делать все, что угодно; решение уравнений, добавление разделителей и многое другое. К сожалению, он не будет читать математику LaTeX, вместо этого вы должны сделать что-то немного другое, документация очень плохая, поэтому я приведу здесь пример.

например, если вы хотите сделать (2x3)/5, вы должны ввести:

\FPmul\p{2}{3}           % \p is the assignment of the operation 2x3
\FPupn\p{\p{} 7 round}   % upn evaluates the assignment \p and rounds to 7dp
\FPdiv\q{\p}{5}          % divides the assigned value p by 5 names result q
\FPupn\q{\q{} 4 round}   % rounds the result to 4 decimal places and evaluates
$\frac{2\times3}{5}=\FPprint\q$  % This will print the result of the calculations in the math.

команды FP всегда ibvisible, только FPprint печатает связанный с ним результат, поэтому ваши документы не будут беспорядочными, команды FP могут быть размещены там, где вы хотите (не глагол), если они есть до ассоциированного FPprint.

Ответ 9

Вы можете просто вставить его в symbolab, который в качестве бонуса имеет бесплатные пошаговые решения. Кроме того, поскольку symbolab использует mathquill, он мгновенно форматирует ваш латекс.

Ответ 10

Нет, потому что это вообще невозможно.

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

Это была одна из причин, по которой была создана разметка контента MathML, а также почему MathML используется в Mathematica. MathML фактически является своего рода двумя языками в одном:

  • разметка представления
  • разметка содержимого

Чтобы выполнить то, что вам нужно, вам нужно будет иметь MathML с комиксной презентацией и разметкой контента (см. MathML spec).

На мой взгляд, ваш лучший выбор - использовать MathML (даже если он многословный) и конвертировать в LaTeX, когда это необходимо. Тем не менее, мне также нравится лучший синтаксис LaTeX и, возможно, нам нужен компактный синтаксис для MathML (что-то похожее по духу на RelaxNG compact синтаксис).

Ответ 11

Для расчетов с LaTeX вы можете использовать пакет CalcTeX. Этот пакет понимает элементы языка LaTeX и производит вычисления, например, ваша проблема http://sg.bzip.pl/CalcTeX/examples/frac.tgz или просто напишите

\noindent Для расчета используйте следующие enviromentals $ 515.1544 + 454 $ или \ [\ frac {154.7} {25} - (289-\frac {1337} {42.}) \] или \ {Начинают уравнение} 154,7/25- (289-1337/42.) \ Конец {} уравнение

Для получения дополнительной информации посетите веб-сайт проекта или свяжитесь с автором этого проекта.

Ответ 12

Режим Calc Emacs принимает латекс-вход. Я использую его ежедневно. Нажмите "d", а затем "L", чтобы войти в режим ввода латекса. Нажмите "", чтобы открыть подсказку, в которую вы можете вставить текс.

Кто-нибудь, возможно, не прав.

Ответ 13

IIRC Mathematica может это сделать.

Ответ 14

Для выполнения математики внутри самого LaTeX вы также можете посмотреть пакет pgfmath, который является более мощным и удобным, чем пакет Calc. Вы можете узнать, как использовать его из части VI руководства по пакетам TikZ и PGF, которые вы можете найти здесь (версия 2.10 в настоящее время): http://mirror.unl.edu/ctan/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf

Ответ 15

Нет, потому что это вообще невозможно. Математический режим LaTeX разметка - это презентационная разметка, и есть случаи, когда она не предоставляют достаточную информацию для вычисления выражения.

Вы правы. LaTeX, поскольку он не предоставляет достаточно информации, чтобы делать какие-либо вычисления. Более того, он не представляет никакой информации для этого. Но никто не мешает писать в формате LaTeX текст, содержащий такую ​​информацию. Это сложный путь, потому что вам нужно создать систему правил, наложенную на то, какое содержание текста в формате Latex должно содержать то, что было бы узнано вашим интерпретатором. И затем убедите пользователя, что нужно учиться и т.д. И т.д.... Самый простой способ создать логический и интуитивный калькулятор математических выражений. И выражение уже возможно конвертировать латекс. Это почти так, как ты сказал. Это реализовано в программе, на которую я указал. AnEasyCalc позволяет вводить выражение при вводе текста в текстовом редакторе. Затем он проверяет, вычисляет и генерирует строку LateX по своему усмотрению. Его очень простая и быстрая работа. Просто попробуй, и ты это увидишь.

Ответ 16

< > попробуйте программу AnEasyCalc. Это позволяет легко получить формулу латекса: http://steamandwater.od.ua/AnEasyCalc/ :)

Ответ 17

Это не совсем то, о чем вы просите, но это хороший пакет что вы можете включить в документ LaTeX все операции, включая арифметику, исчисление и даже векторы и матрицы:

Название пакета - "калькулятор"

http://mirror.unl.edu/ctan/macros/latex/contrib/calculator/calculator.pdf