Pular para o conteúdo
Referência da API neo
NeoScript

Referência da API neo

Todas as funções do objeto neo do NeoScript, por grupo, com o que cada uma faz, onde funciona e exemplos completos.

Nesta página

O objeto global neo agrupa a API por assunto. Todas as funções são síncronas e lançam exceções em caso de erro. As que tocam o disco só aceitam caminhos dentro das pastas liberadas. Nos exemplos, C:/Equacoes representa uma pasta liberada.

Equação#

Função O que faz
neo.equacao.latex() devolve o LaTeX da equação da aba atual
neo.equacao.mathml() devolve o MathML da equação da aba atual
neo.equacao.definir(texto) troca toda a equação por LaTeX ou MathML (um passo de desfazer)
neo.equacao.limpar() esvazia a equação
neo.equacao.vazia() diz se a equação está vazia
neo.equacao.selecionarTudo() seleciona toda a equação (útil antes de neo.cor)
neo.equacao.medidas() mede a equação em pontos tipográficos

Edição#

Função O que faz
neo.inserir(texto) insere no cursor LaTeX, um item da paleta ("m:fracao"), um símbolo ou uma matriz
neo.digitar(texto) digita caractere por caractere, como no teclado
neo.tecla(nome, vezes?) aperta uma tecla de navegação ou edição ("direita", "esquerda"…)
neo.desfazer() / neo.refazer() desfaz e refaz
neo.estilo(nome) escolhe o estilo de digitação
neo.cor(cor) pinta a seleção ou o que for digitado a seguir; null remove
neo.corCmyk(c, m, y, k) o mesmo em CMYK, cada tinta de 0 a 100
neo.corEmTudo(valor?) liga ou desliga a cor em traços de fração, parênteses e radicais
neo.matriz.inserir(linhas, colunas, delimitador?, alinhamento?) insere uma matriz
neo.matriz.editar(op) edita a matriz onde está o cursor

Exportar e converter#

Função O que faz
neo.exportar(formato, caminho, opcoes?) grava a equação em "eps", "svg", "png", "mathml" ou "latex"; { dpi, fundoBranco } no PNG
neo.converter.latexParaMathml(texto) LaTeX para MathML, sem mexer no editor
neo.converter.mathmlParaLatex(texto) MathML para LaTeX
neo.converter.arquivos(tipo, entrada, saida, opcoes?) converte arquivos e pastas entre os tipos que a Neo entende, num arquivo ou numa pasta
neo.lote(pasta, formato?, opcoes?) converte todas as fórmulas de uma pasta para EPS, SVG ou PNG
neo.lote.estilizar(pasta, opcoes) estilo em lote; sem aplicar: true só simula
neo.lote.desfazer(pasta, opcoes?) restaura os originais do último backup
neo.lote.backups(pasta) lista os backups do estilo em lote
neo.docx(arquivo, saida, formato?) extrai as equações de um .docx

Abas#

Função O que faz
neo.abas.listar() lista as abas abertas
neo.abas.atual() / neo.abas.total() aba em foco e quantidade
neo.abas.nova() abre uma aba vazia, que passa a ser a atual
neo.abas.escolher(indice) muda de aba
neo.abas.fechar(indice?) fecha uma aba (a última é só esvaziada)

Arquivos#

Função O que faz
neo.arquivo.abrir(caminho) abre uma equação na aba atual
neo.arquivo.salvar(caminho?) salva a equação como EPS
neo.arquivo.inspecionar(caminho) lê um EPS, SVG ou PNG do NeoMath sem abrir
neo.arquivo.ler(caminho) / neo.arquivo.escrever(caminho, conteudo, anexar?) lê e grava arquivos de texto
neo.arquivo.existe(caminho) / neo.arquivo.listar(pasta) consulta e lista
neo.arquivo.criarPasta(pasta) / neo.arquivo.apagar(caminho) cria pastas; apaga arquivos (nunca pastas)

Preferências, OCR e interface#

Função O que faz
neo.preferencias.listar() / atual() / definir(nomeOuIndice) escolhe a preferência de estilo
neo.preferencias.carregar(caminho) carrega um estilo de um arquivo
neo.ocr.reconhecer(imagem) reconhece a equação de uma imagem e devolve o LaTeX (só no aplicativo)
neo.ocr.inserir(imagem) reconhece e insere no cursor (só no aplicativo)
neo.acao(nome) dispara uma ação da interface pelo mesmo caminho do menu
neo.mensagem(texto, titulo?) mostra uma mensagem (no terminal, vai para stderr)
neo.esperar(ms) pausa respeitando o botão Parar
neo.versao, neo.script.nome, neo.script.pasta, neo.permissoes() informações do ambiente

Química#

O grupo neo.quimica trabalha com química. A estrutura entra como texto: um SMILES ou o conteúdo de um CML, MOL, SDF ou CDML.

Função O que faz
ler, propriedades, formula, massa resumo, fórmula de Hill, massa molar, contagens e composição
layout desenho 2D (coordenadas, anéis, cunhas)
converter(entrada, destino) / exportar(entrada, destino, caminho) SMILES, CML, MOL, SDF, JSON, SVG e PNG
verificar, explicar, descrever valência, partes desconectadas, regras usadas e descrição acessível
relatorio(entrada, opcoes?) relatório em Markdown para trabalhos escolares
abrir(caminho), lote(pasta, formato) arquivos de estruturas e pastas inteiras
inserirFormula(entrada) insere a fórmula (C₂H₆O) na equação da aba
reacao.ler, reacao.converter, reacao.exportar esquemas de reação em texto (2H2 + O2 -> 2H2O)
elemento(consulta), tabelaPeriodica() dados dos 118 elementos
catalogo.listar, pesquisar, estrutura, inserir catálogo de estruturas prontas

Exemplos#

Exportar uma tabela de equações#

JavaScript
const pasta = "C:/Equacoes";
const formulas = {
  pitagoras: "a^2+b^2=c^2",
  bhaskara: "x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}",
  euler: "e^{i\\pi}+1=0"
};
for (const nome in formulas) {
  neo.abas.nova();
  neo.equacao.definir(formulas[nome]);
  neo.exportar("svg", pasta + "/" + nome + ".svg");
  neo.exportar("png", pasta + "/" + nome + ".png", { dpi: 300, fundoBranco: true });
}
console.log("pronto:", neo.abas.total(), "abas");

Converter uma pasta inteira#

JavaScript
const r = neo.lote("C:/Equacoes/formulas", "eps", { saida: "C:/Equacoes/eps" });
console.log(r.ok + " de " + r.total + " convertidas");
r.falhas.forEach(f => console.warn(f.nome + ": " + f.erro));

Tratar erros#

JavaScript
try {
  neo.equacao.definir("\\frac{");
} catch (e) {
  console.warn("não consegui ler:", e.message);
}

Química#

JavaScript
const p = neo.quimica.propriedades("CC(=O)Oc1ccccc1C(=O)O");
console.log(p.formula, p.massaMolar);
neo.quimica.exportar("c1ccccc1O", "png", "C:/Quimica/fenol", { dpi: 150, fundoBranco: true });

O que existe no JavaScript#

Existe tudo do JavaScript padrão (Math, JSON, Date, RegExp, Map, Set, classes, Promise e async/await dentro de funções). Não existem import, require, fetch, XMLHttpRequest, WebSocket, process, window e document, nem await no nível de topo. O valor da última expressão do script é devolvido como resultado.