it-swarm.dev

Czy istnieje kalkulator ze składnią LaTeX?

Kiedy piszę matematykę w LaTeX, często muszę wykonywać prostą arytmetykę na liczbach w moim źródle LaTeX, np. 515.1544 + 454 = ???.

Zazwyczaj kopiuję i wklejam kod LaTeX do Google, aby uzyskać wynik, ale wciąż muszę ręcznie zmienić składnię, np.

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

należy zmienić na

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

Wydaje się trywialne napisanie programu do tego celu dla najczęściej używanych operacji ..__ Czy istnieje kalkulator, który rozumie tę składnię?

EDYTUJ: Wiem, że robienie tego doskonale jest niemożliwe (z powodu problemu z zatrzymaniem). Robienie tego w prostych przypadkach, których potrzebuję, jest banalne. frac, cdot, sqrt i kilka innych tagów spełniłoby tę rolę. Program może po prostu zwrócić błąd w przypadkach, których nie rozumie.

37
Jørgen Fogh

Projekt LaTeXCalc został stworzony właśnie w tym celu. Odczytuje plik TeX i wykonuje obliczenia. Więcej informacji można znaleźć na stronie głównej pod adresem http://latexcalc.sourceforge.net/

13
Loserpenguin15

WolframAlpha może pobierać dane w formie TeX.

http://blog.wolframalpha.com/2010/09/30/talk-to-wolframalpha-in-tex/

17
ngm

Pakiet calc pozwala ci na wykonanie pewnych obliczeń w źródle, ale tylko w poleceniach takich jak \setcounter i \addtolength. O ile wiem, to nie jest to, czego chcesz.

Jeśli korzystasz już z sage , wtedy sagetex pakiet jest całkiem niesamowity (jeśli nie, to przesada). Pozwala uzyskać ładnie sformatowane wyjście z takiego wejścia:

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)}
13

Jak mówi Andy, odpowiedź brzmi tak istnieje kalkulator, który może zrozumieć większość formuł lateksowych: Emacs.

Spróbuj wykonać następujące kroki (zakładając emacs waniliowy):

  1. Otwórz emacsa
  2. Otwórz plik .tex (lub aktywuj tryb lateksowy)
  3. umieść punkt gdzieś pomiędzy dwoma $$ lub np. w środowisku początkowym/końcowym formuły (lub nawet macierzy).
  4. użyj trybu osadzonego w celu uzyskania maksymalnej niesamowitości

Więc z punktem we wzorze, który podałeś powyżej:

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

naciśnij C-x * d, aby zduplikować formułę w poniższym wierszu i wejść w tryb calc-embedded, który już powinien był aktywować lateksowy wariant calc dla Was. Twój bufor wygląda teraz tak:

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

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

Zauważ, że ułamek został już przekształcony tak daleko, jak to możliwe. Ponowne wykonanie tego samego (C-x * d) i naciśnięcie c f w celu przekształcenia ułamka na liczbę zmiennoprzecinkową daje następujący bufor:

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

$\frac{-37651}{150}$

$-251.006666667$

Użyłem C-x * d, aby powielić formułę, a następnie przejść do trybu osadzonego, aby uzyskać wartości pośrednie, ale jest też C-x * e, który pozwala uniknąć duplikacji i po prostu wchodzi w tryb osadzony dla bieżącej formuły.

Jeśli jesteś zainteresowany, powinieneś naprawdę zajrzeć na stronę informacyjną dla Emacs Calc - Tryb osadzony . I ogólnie pomoc dla Gnu Emaca Calculator wraz z niesamowitym interaktywnym tutorial .

6
Markus1189

Biorąc pod uwagę, że sam LaTeX jest kompletnym językiem znaczników Turinga, mocno wątpię, czy można zbudować coś takiego, które nie jest wbudowane bezpośrednio w LaTeX. Co więcej, sam matematyczny LaTeX nie ma znaczenia semantycznego, opisuje jedynie wygląd.

Powiedziawszy to, możesz prawdopodobnie zhakować coś, co rozpoznaje nieprogramowalny podzbiór znaczników matematycznych LaTeX i wypluje wynik w ten sam sposób. Jeśli interesujesz się prostą arytmetyką z ułamkami i liczbami całkowitymi (uważaj jednak na ułamki dziesiętne, ponieważ mogą one występować jako 3{,}141... w niemieckich tekstach :)), nie powinno to być zbyt trudne. Ale gdy zaczniesz od całek, macierzy itp., Obawiam się, że LaTeX nie ma ekspresji, aby dokładnie opisać twoje zamiary. Jest to w końcu system przygotowywania dokumentów, a zatem nie nadaje się zbyt dobrze do wprowadzania systemów algebry komputerowej.

Uwaga dodatkowa: Możesz przełączyć się na Worda, który w swojej obecnej wersji jest językiem znaczników matematycznych, który jest wystarczająco podobny do LaTeX-a, a jednocześnie nadal przyjazny dla Google dla prostszych terminów:

Ilustracja znaczników matematycznych w Microsoft Word http://hypftier.de/dump/Word_math_1.png

Dzięki bezpłatnemu dodatkowi Microsoft Math możesz nawet pozwolić programowi Word obliczyć wyrażenia na miejscu:

Ilustracja dodatku Microsoft Math dla Microsoft Word, obliczanie wyrażenia http://hypftier.de/dump/Word_math_2.png

5
Joey

Mój kalkulator może to zrobić. Aby uzyskać sformatowane wyjście, kliknij dwukrotnie formułę wyniku i naciśnij ctrl + c, aby ją skopiować.

Może też robić dość zaawansowane rzeczy (różnicowanie, łatwe całki (a nie że łatwe te) ...).

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

4
Todor Milev

Możesz uruchomić funkcję R o nazwie Sweave na pliku (głównie TeX z pewnym R), który może zastąpić wyrażenia R ich wynikami w Tex.

Samouczek można znaleźć tutaj: http://www.scribd.com/doc/6451985/Learning-to-Sweave-in-APA-Style

4
Sam

Możesz po prostu wkleić go do symbolab który jako bonus ma darmowe rozwiązania krok po kroku. Odkąd symbolab używa mathquill, natychmiast formatuje twój lateks. 

3
Zelnoth

Istnieje sposób, aby zrobić to, co chcesz, po prostu nie tak, jak opisujesz.

Możesz użyć pakietu fp (usepackage [opcje] {fp}) pakiet zmiennoprzecinkowy zrobi wszystko, co chcesz; rozwiązywanie równań, dodawanie dzielenia i wiele innych. Niestety, nie przeczyta matematyki LaTeX, zamiast tego musisz zrobić coś innego, dokumentacja jest bardzo słaba, więc podam tutaj przykład.

na przykład, jeśli chcesz zrobić (2x3)/5, wpisz:

\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.

komendy FP są zawsze niewidoczne, tylko FPprint drukuje wynik z nimi związany, więc twoje dokumenty nie będą niechlujne, polecenia FP mogą być umieszczane gdziekolwiek chcesz (nie czasownik) tak długo, jak są przed powiązany FPprint.

3
Anonymous

Nie ma, ponieważ na ogół nie jest możliwe.

Znacznik trybu matematycznego LaTeX jest znacznikiem prezentacyjnym i istnieją przypadki, w których nie dostarcza on wystarczających informacji do obliczenia wyrażenia.

To był jeden z powodów, dla których stworzono znaczniki treści MathML, a także dlaczego MathML jest używany w Mathematica. MathML to właściwie dwa języki w jednym:

  • znaczniki prezentacji
  • znaczniki treści

Aby osiągnąć to, po czym jesteś, będziesz musiał mieć MathML z comibned prezentacją i znacznikami treści (zobacz MathML spec ).

Moim zdaniem najlepszym rozwiązaniem jest użycie MathML (nawet jeśli jest gadatliwy) i, jeśli to konieczne, konwersja na LaTeX. Powiedziałem jednak, że najlepiej lubię składnię LaTeX-a i może potrzebujemy zwartej składni dla MathML (coś podobnego w duchu do RelaxNG compact ).

2

Tryb calc Emacs akceptuje wejście lateksowe. Używam go codziennie. Naciśnij „d”, a następnie „L”, aby wejść w tryb wprowadzania lateksu. Naciśnij „”, aby otworzyć monit, w którym możesz wkleić tekst.

Każdy, kto nie jest możliwy, jest w błędzie.

2
Andy Drew

Do obliczeń za pomocą LaTeX można użyć pakietu CalcTeX. Ten pakiet rozumie elementy języka LaTeX i dokonuje obliczeń, na przykład twój problem jest dostępny na http://sg.bzip.pl/CalcTeX/examples/frac.tgz Lub po prostu napisz

indent Do obliczeń użyj następujących środowisk 515.1544 + 454 $ lub [frak {154,7} {25} - (289- frac {1337} {42.}) ] Lub {Równanie} 154,7/25- (289-1337/42.) {Równanie}

Aby uzyskać więcej informacji, odwiedź stronę projektu lub skontaktuj się z autorem tego projektu.

2
user157400

Aby wykonać matematykę w samym LaTeX-ie, możesz również zajrzeć do pakietu pgfmath, który jest bardziej wydajny i wygodny niż pakiet calc. Możesz dowiedzieć się, jak go używać z Części VI Podręcznika pakietów TikZ i PGF, który można znaleźć tutaj (wersja 2.10 obecnie): http://mirror.unl.edu/ctan/graphics/pgf/base/ doc/generic/pgf/pgfmanual.pdf

1
Amittai Aviram

IIRC Mathematica może to zrobić.

1
peak

Nie ma, ponieważ na ogół nie jest możliwe. Tryb matematyczny LaTeX znacznik jest znacznikiem prezentacyjnym i istnieją przypadki, w których to robi nie dostarczaj wystarczających informacji do obliczenia wyrażenia.

Masz rację. LaTeX, ponieważ nie zapewnia wystarczającej ilości informacji do wykonania jakichkolwiek obliczeń. Ponadto, nie reprezentuje żadnych informacji, aby to zrobić. Ale nikt nie zapobiega zapisywaniu w formacie LaTeX tekstu zawierającego taką informację ..__ Jest to trudna ścieżka, ponieważ trzeba zbudować system reguł nałożonych na to, co zawartość tekstu w formacie Latex musi zawierać, że będzie rozpoznawalny przez tłumacza. A następnie przekonaj użytkownika, że ​​trzeba się uczyć itp. Itd. ......... Najprostszym sposobem na stworzenie logicznego i intuicyjnego kalkulatora wyrażeń matematycznych. Wyrażenie jest już możliwe do konwersji lateksu. To prawie tak, jak powiedziałeś. Jest to zaimplementowane w programie, na który wskazałem. AnEasyCalc umożliwia wpisanie wyrażenia podczas wpisywania tekstu płaszczyzny w dowolnym edytorze tekstu. Następnie sprawdza, oblicza i generuje ciąg LateX. Jest to bardzo łatwa i szybka praca. Po prostu spróbuj, a zobaczysz to. 

1
Igor

Nie jest to dokładnie to, o co prosisz, ale jest to ładny pakiet , Który możesz dołączyć do dokumentu LaTeX, aby wykonywać wszystkie operacje, w tym arytmetykę, rachunek, a nawet wektory i macierze:

Nazwa pakietu to „kalkulator”

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

0

<> Wypróbuj program AnEasyCalc. Pozwala bardzo łatwo uzyskać formułę lateksu: http://steamandwater.od.ua/AnEasyCalc/ :)

0
Igor