{"id":641,"date":"2014-11-09T18:51:06","date_gmt":"2014-11-09T16:51:06","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=641"},"modified":"2022-08-20T18:25:36","modified_gmt":"2022-08-20T16:25:36","slug":"emacs-calc-la-supercalculadora-de-emacs-i","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=641","title":{"rendered":"Emacs + Calc: La supercalculadora de emacs (I)"},"content":{"rendered":"<p><strong><span style=\"color: #ff6600;\">Vista General<\/span><\/strong><\/p>\n<p>La calculadora GNU\/Calc que se incluye en GNU\/Emacs es una supercalculadora basada en la serie HP-28\/48. Algunas de sus caracteristicas son:<\/p>\n<ul>\n<li>Se puede emplear notacion algebraica o bien notacion polaca inversa o RPN (basada en un stack).<\/li>\n<li>Precision arbistraria para numeros enteros y de coma flotante.<\/li>\n<li>Aritmetica en numeros raciones, numeros complejos (rectangulares y polares), formularios de error con desviaciones estandar, intervalos abiertos y cerrados, vectores y matrices, fechas y tiempos, infinitos, sets, cantidades con unidades y formulas algebraicas.<\/li>\n<li>Operaciones matematicas como logaritmos y funciones trigonometricas.<\/li>\n<li>Funcionalidades para programadores (operaciones a nivel de bit, numeros no decimales).<\/li>\n<li>Funciones financieras como valores futuros y retorno de tasas de intervalos.<\/li>\n<li>Funcionalidades de teoria de numeros como factorizacion de numeros primos y aritmetica modular m para cada m.<\/li>\n<li>Funciones para manipulacion algebraica, incluyendo calculo simbolico.<\/li>\n<li>Flujo de datos de y hacia edicion de buffers regulares.<\/li>\n<li>Modo embedded para manipulacion de formulas de calculo y datos directamente dentro del buffer editado.<\/li>\n<li>Graficos empleando GNUPlot.<\/li>\n<li>Facil programacion mediante el uso de macros de teclado, formulas algebraicas, reescritura de formulas algebraicas o extension mediante Elisp.<\/li>\n<\/ul>\n<p><strong><span style=\"color: #ff6600;\">Ejecutando calc y ayuda<\/span><\/strong><\/p>\n<p>Para comenzar a usar calc tan solo debemos lanzar <strong>M-x calc <\/strong>o bien<strong> C-x * c<\/strong>. Tambien podemos lanzar el tutorial general con <strong>C-x * t<\/strong>. Los keybindings que normalmente usamos para buscar funciones, keybindings o variables se pueden usar con el scope solo de calc si pulsamos:<\/p>\n<ul>\n<li><strong>h i<\/strong> : info de calc.<\/li>\n<li><strong>h k<\/strong> : keybindings de calc.<\/li>\n<li><strong>h f<\/strong> : funciones de calc.<\/li>\n<li><strong>h v<\/strong> : variables de calc.<\/li>\n<\/ul>\n<p>Cuando abrimos calc la interfaz que tenemos nos divide el frame en\u00a0 3 ventanas. La de arriba con el fichero que teniamos abierto originalmente y las dos de abajo de las cuales la de la izquierda es llamado el \u00abstack window\u00bb (la cual mantiene los numeros empleados para calculo) y la de la derecha llamada \u00abtrail window\u00bb (el cual mantiene la lista de calculos realizados previamente).<\/p>\n<p><strong><span style=\"color: #ff6600;\">Funciones mas generales en calc (sin entrar en funciones con prefijos)<\/span><\/strong><\/p>\n<p>Algunas de las funciones que la calculadora permite realizar (este listado se puede sacar mediante <strong>C-h m<\/strong> una vez estando en calc):<\/p>\n<p style=\"padding-left: 60px;\">0 .. 9\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calcDigit-start<br \/>\nC-d\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-pop<br \/>\nTAB\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-roll-down<br \/>\nC-j\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-over<br \/>\nC-k\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-kill<br \/>\nRET\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-enter<br \/>\nC-w\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-kill-region<br \/>\nC-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-yank<br \/>\nESC\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command (Pulsar ? despues para ver el listado de keybindings)<br \/>\nSPC\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-enter<br \/>\n!\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-factorial<br \/>\n\u00bb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-auto-algebraic-entry<br \/>\n#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calcDigit-start<br \/>\n$\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-auto-algebraic-entry<br \/>\n%\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-mod<br \/>\n&amp;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-inv<br \/>\n&#8216;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-algebraic-entry<br \/>\n(\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-begin-complex<br \/>\n)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-end-complex<br \/>\n*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-times<br \/>\n+\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-plus<br \/>\n,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-comma<br \/>\n&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-minus<br \/>\n.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calcDigit-start<br \/>\n\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-divide<br \/>\n:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-fdiv<br \/>\n;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-semi<br \/>\n&lt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-scroll-left<br \/>\n=\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-evaluate<br \/>\n&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-scroll-right<br \/>\n?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-help<br \/>\n@\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calcDigit-start<br \/>\nA\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-abs<br \/>\nB\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-log<br \/>\nC\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-cos<br \/>\nD\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-redo<br \/>\nE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-exp<br \/>\nF\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-floor<br \/>\nG\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-argument<br \/>\nH\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-hyperbolic<br \/>\nI\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-inverse<br \/>\nJ\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-conj<br \/>\nK\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-keep-args<br \/>\nL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-ln<br \/>\nM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-more-recursion-depth<br \/>\nN\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-eval-num<br \/>\nO\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-option<br \/>\nP\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-pi<br \/>\nQ\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-sqrt<br \/>\nR\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-round<br \/>\nS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-sin<br \/>\nT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-tan<br \/>\nU\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-undo<br \/>\nV\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para vec\/mat (Pulsar ? despues para ver el listado de comandos)<br \/>\nX\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-call-last-kbd-macro<br \/>\nY\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command<br \/>\nZ\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para user (Pulsar ? despues para ver el listado de comandos)<br \/>\n[\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-begin-vector<br \/>\n\\\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-idiv<br \/>\n]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-end-vector<br \/>\n^\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-power<br \/>\n_\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calcDigit-start<br \/>\n`\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-edit<br \/>\na\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para algebra (Pulsar ? despues para ver el listado de comandos)<br \/>\nb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para binary\/bus (Pulsar ? despues para ver el listado de comandos)<br \/>\nc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para convert (Pulsar ? despues para ver el listado de comandos)<br \/>\nd\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para display (Pulsar ? despues para ver el listado de comandos)<br \/>\ne\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calcDigit-start<br \/>\nf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para functions (Pulsar ? despues para ver el listado de comandos)<br \/>\ng\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para graph (Pulsar ? despues para ver el listado de comandos)<br \/>\nh\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-help-prefix<br \/>\ni\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-info<br \/>\nj\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para select (Pulsar ? despues para ver el listado de comandos)<br \/>\nk\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para combinatorics (Pulsar ? despues para ver el listado de comandos)<br \/>\nl\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para long units (Pulsar ? despues para ver el listado de comandos)<br \/>\nm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para mode (Pulsar ? despues para ver el listado de comandos)<br \/>\nn\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-change-sign<br \/>\no\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-realign<br \/>\np\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-precision<br \/>\nq\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-quit<br \/>\nr\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para recall\/register (Pulsar ? despues para ver el listado de comandos)<br \/>\ns\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command\u00a0 para store (Pulsar ? despues para ver el listado de comandos)<br \/>\nt\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para trail\/time (Pulsar ? despues para ver el listado de comandos)<br \/>\nu\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para units\/stat (Pulsar ? despues para ver el listado de comandos)<br \/>\nv\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para vec\/mat (Pulsar ? despues para ver el listado de comandos)<br \/>\nw\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-why<br \/>\nx\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-execute-extended-command<br \/>\ny\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-copy-to-buffer<br \/>\nz\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para user<br \/>\n{\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-scroll-down<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-concat<br \/>\n}\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-scroll-up<br \/>\n~\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-num-prefix<br \/>\nDEL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-pop<br \/>\n&lt;mouse-2&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-yank<br \/>\n&lt;remap&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command<br \/>\nC-x C-t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-transpose-lines<br \/>\nC-M-d\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-pop-above<br \/>\nC-M-i\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-roll-up<br \/>\nM-RET\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-last-args<br \/>\nC-M-w\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 kill-ring-save<br \/>\nM-%\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-percent<br \/>\nM-k\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-copy-as-kill<br \/>\nM-m\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para algebraic mode<br \/>\nM-w\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-copy-region-as-kill<br \/>\nM-DEL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-pop-above<br \/>\nM-m ESC\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command<br \/>\nM-m t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-total-algebraic-mode<br \/>\nV ESC\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prefix Command para vec\/mat (Pulsar ? despues para ver el listado de comandos)<\/p>\n<p><strong><span style=\"color: #ff6600;\">Prefijos (e.g. display\/notacion)<\/span><\/strong><\/p>\n<p>Notese que cada uno de los comandos que son \u00abPrefijos\u00bb se pueden combinar con \u00ab<strong>?<\/strong>\u00bb o \u00ab<strong>C-h<\/strong>\u00bb para conocer la lista de comandos, funciones u opciones que se pueden ejecutar con dichos prefijos. Por ejemplo un prefijo interesante es el que hace set de la notacion:<\/p>\n<ul>\n<li><strong>d<\/strong> : prefix de modos de display o notacion:\n<ul>\n<li>d 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-decimal-radix<br \/>\nd 2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-binary-radix<br \/>\nd 6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-hex-radix<br \/>\nd 8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-octal-radix<br \/>\nd ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-d-prefix-help (para rotar con el resto de modos posibles)<br \/>\nd E\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-eqn-language<br \/>\nd c\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-complex-notation<br \/>\nd d\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-date-notation<br \/>\nd e\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-eng-notation<br \/>\nd f\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-fix-notation<br \/>\nd n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-normal-notation<br \/>\nd o\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-over-notation<br \/>\nd p\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-show-plain<br \/>\nd r\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-radix<br \/>\nd s\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 calc-sci-notation<br \/>\n<strong>d Control+h<\/strong>\u00a0\u00a0 para ver el resto de modos listados<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong><span style=\"color: #ff6600;\">Quick mode<\/span><\/strong><\/p>\n<p>Si no necesitamos todas estas funciones tan extensas, podemos lanzar calc en modo quick o rapido mediante <strong>C-x * q <\/strong>o bien invocarlo mediante<strong> M-x quick-calc<\/strong>. Por ejemplo podemos poner 666 inmediatamente y nos dara la conversion en hexadecimal, octal y binario respectivamente o bien podemos poner una operacion por ejemplo 2+2 directamente.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Keypad mode<\/span><\/strong><\/p>\n<p>Con<strong> M-x calc-keypad<\/strong> o <strong>C-x * k<\/strong>\u00a0 podremos activar\/desactivar el keypad o teclado, desde el cual podremos usar el raton y pulsar en el directamente. Podemos ademas activar el keypad mode en modo full o lo que es lo mismo llamando a la funcion <strong>M-x full-calc-keypad<\/strong> o <strong>C-x * b<\/strong>, tendremos el teclado con la calculadora a pantalla completa a nuestra disposicion, para salir de dicho modo podemos pulsar simplemente <strong>q<\/strong>.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Embedded mode<\/strong><\/span><\/p>\n<p>Se emplea para poder emplear la calculadora desde dentro de un buffer directamente. Por ejemplo si tenemos en un buffer una expresion tal que asi:<\/p>\n<pre class=\"smallexample\">     The derivative of\r\n     \r\n                                        ln(ln(x))\r\n     \r\n     is\r\n     \r\n                                        ln(ln(x))<\/pre>\n<p>&nbsp;<\/p>\n<p>Podemos mover el cursor a la segunda formula y pulsar <strong>C-x * e<\/strong>. Veremos que nos cambia la formula y nos pone en el modeline algo tal que asi \u00ab12 Deg\u00bb. Si ahora pulsamos <strong>a d x &lt;RET&gt;<\/strong> entonces veremos el resultado del calculo y reemplazara la formula por dicho resultado. Para que esto quede mejor, podemos pulsar incluso ahora <strong>d =<\/strong> para centrar la formula o bien <strong>d B<\/strong> para big display mode. Tendremos el siguiente resultado:<\/p>\n<p style=\"padding-left: 30px;\">The derivative of ln(ln(x)) is<br \/>\n% [calc-mode: justify: center]<br \/>\n% [calc-mode: language: big]<\/p>\n<p>1<br \/>\n&#8212;&#8212;-<br \/>\nx ln(x)<\/p>\n<p>Calc anade anotaciones para ayudar a recordar los modos que fueron usados para dicha formula. Dichas anotaciones estan formateadas en lenguaje TeX. Como colofon final podemos pulsar <strong>d } (1) &lt;RET<\/strong>&gt; y anadir asi un identificador de ecuacion a modo etiqueta. El resultado quedaria tal que asi:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/11\/Selection_001.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-651\" src=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/11\/Selection_001.png\" alt=\"Selection_001\" width=\"714\" height=\"607\" srcset=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/11\/Selection_001.png 714w, https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/11\/Selection_001-300x255.png 300w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><\/a><\/p>\n<p>Para salir de este modo tan solo debemos pulsar de nuevo <strong>C-x * e<\/strong>.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Otros comandos C-x *<\/strong> <\/span><\/p>\n<ul>\n<li><strong>\u00a0*<\/strong> : encender\/apagar calculadora.<\/li>\n<li>\u00a0<strong>C<\/strong> : encender\/apagar calculadora usando la interfaz standard.<\/li>\n<li>\u00a0<strong>O<\/strong> : exactamente igual que <strong>C<\/strong>, pero sin seleccionar nueva ventana calc.<\/li>\n<li>\u00a0<strong>B<\/strong> : full screen.<\/li>\n<li><strong>Q<\/strong> : usa el quick mode para calculos rapidos.<\/li>\n<li><strong>K<\/strong> : keypad on\/off.<\/li>\n<li><strong>E<\/strong> : embedded modo on\/off para la formula actual.<\/li>\n<li><strong>J<\/strong> : embedded modo on\/off para la seleccion actual.<\/li>\n<li><strong>W<\/strong> : embedded modo on\/off para la palabra actual.<\/li>\n<li><strong>Z<\/strong> : embedded modo on\/off para la definicion actual del usuario.<\/li>\n<li><strong>X<\/strong> : sale de calc de cualquiera de los modos que este.<\/li>\n<\/ul>\n<p>Comandos para mover datos dentro de la calculadora:<\/p>\n<ul>\n<li><strong>G<\/strong> : guarda los datos de una region y los almacena en un vector.<\/li>\n<li><strong>R<\/strong> : guarda los datos de una region rectangular y los almacena en un vector.<\/li>\n<li><strong>:<\/strong> : guarda los datos de una region, los computa y los almacena en un vector.<\/li>\n<li><strong>&#8211;<\/strong> : guarda los datos de una region, los computa y los almacena en una matriz.<\/li>\n<li><strong>Y<\/strong> : pega (yank) un valor de la calculadora en el buffer de edicion actual.<\/li>\n<\/ul>\n<p>Otros comandos para usarlos con la calculadora incrustada (embedded):<\/p>\n<ul>\n<li><strong>A<\/strong> : activa el buffer actual y busca las formulas que contengan simbolos tal que \u00ab:=\u00bb o \u00ab=&gt;\u00bb, guarda sus localizaciones para cuando las variables cambien de valor se actualicen automaticamente.<\/li>\n<li><strong>D<\/strong> : duplica la formula actual inmediatamente debajo.<\/li>\n<li><strong>F<\/strong> : inserta una formula en el punto actual.<\/li>\n<li><strong>N<\/strong> : mueve el cursor a la siguiente formula.<\/li>\n<li><strong>P<\/strong> : mueve el cursor a la formula anterior.<\/li>\n<li><strong>U<\/strong> : actualiza la formula en el punto actual.<\/li>\n<li><strong>`<\/strong> : edita la formula en el punto actual.<\/li>\n<\/ul>\n<p>Otros comandos (misc):<\/p>\n<ul>\n<li><strong>I<\/strong> : ejecuta la pagina info del manual de calc.<\/li>\n<li><strong>T<\/strong> : ejecuta la pagina info del tutorial de calc.<\/li>\n<li><strong>S<\/strong> : ejecuta la pagina info del calc summary.<\/li>\n<li><strong>L<\/strong> : carga calc completamente en memoria (normalmente solo se cargan las partes que se necesitan en cada momento).<\/li>\n<li><strong>M<\/strong> : lee una region de nombres de keystrokes escritos y los guarda para la macro actual.<\/li>\n<li><strong>0<\/strong> : reinicia la calculadora en el estado inicial (vacia el stack y deja los valores de modo iniciales).<\/li>\n<\/ul>\n<p>La lista de comandos mas utiles o tipicos se pueden encontrar en la\u00a0 GNU Reference card <a href=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2014\/11\/gnu-calc-reference-card.pdf\">gnu calc reference card<\/a>.<\/p>\n<p>Para mas informacion, se puede consultar este extenso tutorial sobre GNU Calc: <a href=\"http:\/\/www.gnu.org\/software\/emacs\/manual\/html_mono\/calc.html#Tutorial\" target=\"_blank\" rel=\"noopener\">http:\/\/www.gnu.org\/software\/emacs\/manual\/html_mono\/calc.html#Tutorial<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vista General La calculadora GNU\/Calc que se incluye en GNU\/Emacs es una supercalculadora basada en la serie HP-28\/48. Algunas de sus caracteristicas son: Se puede emplear notacion algebraica o bien notacion polaca inversa o RPN (basada en un stack). Precision arbistraria para numeros enteros y de coma flotante. Aritmetica en numeros raciones, numeros complejos (rectangulares [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[297],"tags":[343,344,345,346],"class_list":["post-641","post","type-post","status-publish","format-standard","hentry","category-advanced","tag-calc","tag-calc-emacs","tag-emacs-calc","tag-emacs-calculator"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/641"}],"collection":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=641"}],"version-history":[{"count":7,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/641\/revisions"}],"predecessor-version":[{"id":739,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/641\/revisions\/739"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}