fbpx

Comandos Linux – Comando neqn

Comandos Linux eqn, neqn e checkeq

comando eqn

Nos sistemas operacionais do tipo Unix, os comandos eqn e neqn são processadores de linguagem para auxiliar na descrição de equações. O eqn é um pré-processador para troff e destina-se a dispositivos que podem imprimir a saída do troff . O neqn é um pré-processador para nroff e deve ser usado com terminais.

Descrição

O eqn compila descrições de equações incorporadas nos arquivos de entrada troff em comandos que são entendidos por troff . Se nenhum arquivo for fornecido na linha de comandos, a entrada padrão será lida. Um nome de arquivo de  faz com que a entrada padrão seja lida.

O eqn pesquisa o arquivo eqnrc nos diretórios fornecidos com a opção -M primeiro, depois em / usr / lib / groff / site-tmac , / usr / share / groff / site-tmac e, finalmente, no diretório macro padrão / usr /share/groff/1.22.1/tmac . Se existir, o eqn o processa antes dos outros arquivos de entrada. A opção -R impede isso.

Sintaxe

  eqn [-rvCNR] [-d xy ] [-T name ] [-M dir ] [-f F ] [-s n ] [-p n ] [-m n ] [ arquivos ...]
  neqn [ arquivo ]
  checkeq [ arquivo ]

Opções

-d xyEspecifique os delimitadores x e y para as extremidades esquerda e direita, respectivamente, das equações em linha. Qualquer instrução delim no arquivo de origem substitui isso.
-CReconheça .EQ e .EN mesmo quando seguido por um caractere que não seja espaço ou nova linha .
-NNão permita novas linhas dentro de delimitadores. Esta opção permite que o eqn se recupere melhor da falta de delimitadores de fechamento.
-vImprima o número da versão.
-rApenas uma redução de tamanho.
-m nO tamanho mínimo do ponto é n . O eqn não reduzirá o tamanho de subscritos ou sobrescritos para um tamanho menor que n .
-T nameA saída é para o nome do dispositivo. O único efeito disso é definir um nome de macro com o valor 1. Normalmente, o eqnrc o usará para fornecer definições apropriadas para o dispositivo de saída. O dispositivo de saída padrão é ps .
-M dirPesquise dir por eqnrc antes dos diretórios padrão.
-RNão carregue o eqnrc .
-f FIsso é equivalente a um comando gfont F.
-s nIsso é equivalente a um comando gsize n . Esta opção está obsoleta. O eqn normalmente definirá equações para qualquer que seja o tamanho atual do ponto quando a equação for encontrada.
-p nIsso indica que os subscritos e os sobrescritos devem ser n pontos menores que o texto ao redor. Esta opção está obsoleta. Normalmente, o eqn cria conjuntos subscritos e sobrescritos em 70% do tamanho do texto ao redor.

Usando versões mais recentes do GNU eqn

A maioria dos novos recursos do GNU eqn são baseados em TeX . Existem algumas referências às diferenças entre o TeX e o GNU eqn abaixo.

Espaçamento automático

O eqn atribui a cada componente de uma equação um tipo e ajusta o espaçamento entre os componentes usando esse tipo. Os tipos possíveis são:

comumum caractere comum como ‘ 1 ‘ ou ‘ x ‘
operadorum grande operador como ‘ > ‘
binárioum operador binário como ‘ + ‘
relaçãouma relação como ‘ = ‘
aberturaum suporte de abertura como ‘ ( ‘
fechamentoum colchete de fechamento como ‘ ) ‘
pontuaçãoum caractere de pontuação como ‘ , ‘
interioruma sub-fórmula contida entre parênteses
suprimirespaçamento que suprime o ajuste automático de espaçamento

Os componentes de uma equação obtêm um tipo de duas maneiras:

tipo teIsso gera um componente de equação que contém e, mas que possui o tipo t , onde t é um dos tipos mencionados acima. Por exemplo, times é definido como

  digite "binário" \ (mu

O nome do tipo não precisa ser citado, mas a citação protege da expansão de macro.

chartype t textGrupos de caracteres não citados são divididos em caracteres individuais e o tipo de cada caractere é pesquisado; isso altera o tipo que é armazenado para cada caractere; diz que os caracteres no texto a partir de agora têm o tipo t . Por exemplo,

  chartype "pontuação".,;:

faria com que os caracteres ‘ .,;: ‘ tivessem pontuação sempre que aparecessem posteriormente em uma equação. O tipo t também pode ser letra ou dígito; nesses casos, chartype altera o tipo de fonte dos caracteres. Veja a subseção Fontes .

Novos Primitivos

e1 smallover e2Isso é semelhante ao excesso ; smallover reduz o tamanho de e1 e e2 ; também coloca menos espaço vertical entre e1 ou e2 e a barra de frações. A primitiva over corresponde à TeX \ over primitive nos estilos de exibição; smallover corresponde a \ over em estilos não exibidos.
vcenter eIsso centraliza verticalmente o eixo matemático. O eixo matemático é a posição vertical sobre a qual caracteres como ‘+’ e ‘-‘ estão centralizados; também é a posição vertical usada para a barra de frações. Por exemplo, soma é definida como

  {tipo "operador" tamanho do vcenter +5 \ (* S}
e1 accent e2Isso define e2 como um sotaque sobre e1 . presume-se que e2 esteja na altura correta para uma letra minúscula; e2 será movido para baixo, se e1 for maior ou menor que uma letra minúscula. Por exemplo, hat é definido como

  acento {"^"}

dotdot , dot , til , vec e díade também são definidos usando a primitiva de acentuação.

e1 uaccent e2Isso define e2 como um acento em e1 . Presume-se que e2 esteja na altura correta para um personagem sem descendente; e2 será movido para baixo se e1 tiver um descendente. Um sub-til (“utilde”) é predefinido usando uaccent como um acento de til abaixo da linha de base.
dividir “texto”Isso tem o mesmo efeito que

  texto

mas o texto não está sujeito à expansão de macro porque é citado; o texto será dividido e o espaçamento entre caracteres individuais será ajustado.

texto nosplitIsso tem o mesmo efeito que

  "texto"

mas, como o texto não é citado, ele estará sujeito a expansão macro; o texto não será dividido e o espaçamento entre caracteres individuais não será ajustado.

e opprimeEsta é uma variante do prime que atua como um operador em e . Produz um resultado diferente de prime em um caso como A opprime sub 1 : com opprime, o 1 será dobrado sob o prime como um subscrito para o A (como é convencional na composição matemática), enquanto que com o prime o 1 será um subscrito ao caractere principal. A precedência do opprime é a mesma que a de bar e under , que é mais alta que a de tudo, exceto sotaque e uaccent . No texto não citado, um  que não é o primeiro caractere será tratado como opprime .
texto especial eIsso constrói um novo objeto de e usando uma macro de troff chamada texto . Quando a macro é chamada, a cadeia 0s conterá a saída para e , e o número registrará 0w , 0h , 0d , 0skern e 0skew e a skew conterão largura , altura , profundidade , kern subscrito e inclinação de e . kern subscrito de um objeto diz quanto um subscrito nesse objeto deve ser inserido; inclinação de um objeto indica a que distância à direita do centro do objeto deve ser colocado um acento sobre o objeto. A macro deve modificar 0s para gerar o resultado desejado com sua origem no ponto atual e aumentar a posição horizontal atual pela largura do objeto. Os registradores de números também devem ser modificados para que correspondam ao resultado.

Por exemplo, suponha que você queira uma construção que ‘cancele’ uma expressão desenhando uma linha diagonal através dela.

  .EQ
 definir cancelar 'Ca especial'
 .EN
 .de Ca
 .  ds 0s \
 \ Z '\\ * (0s' \
 \ v '\\ n (0du' \
 \ D'l \\ n (0wu - \\ n (0hu - \\ n (0du '\
 \ v '\\ n (0hu'
 ..

Você pode cancelar uma expressão e com cancelar { e }

Aqui está uma construção mais complicada que desenha uma caixa em volta de uma expressão:

  .EQ
 defina a caixa 'Bx especial'
 .EN
 .de Bx
 .  ds 0s \
 \ Z '\ h'1n' \\ * (0s '\
 \ Z '\
 \ v '\\ n (0du + 1n' \
 \ D'l \\ n (0wu + 2n 0 '\
 \ D'l 0 - \\ n (0hu - \\ n (0du-2n '\
 \ D'l - \\ n (0wu-2n 0 '\
 \ D'l 0 \\ n (0hu + \\ n (0du + 2n '\
 '\
 \ h '\\ n (0wu + 2n'
 .  nr 0w + 2n
 .  nr 0d + 1n
 .  n 0h + 1n
 ..
espaço f—Um valor positivo do número inteiro n (em centésimos de um em) define o espaçamento vertical antes da equação, um valor negativo define o espaçamento após a equação, substituindo os valores padrão. Esta primitiva fornece uma interface para a fuga de groff \ x (mas com sinal oposto).

Essa palavra-chave não terá efeito se a equação fizer parte de uma imagem de imagem.

Primitivas estendidas

col n { … }

ccol n { … }

lcol n { … }

rcol n { … }

pilha n { … }

cpile n { … }

lpile n { … }

rpile n { … }

O valor inteiro n (em centésimos de um em) aumenta o espaçamento vertical entre linhas, usando o escape de groff \ x . Valores negativos são possíveis, mas não têm efeito. Se houver mais de um valor único fornecido em uma matriz, o maior será usado.

Costumização

A aparência das equações é controlada por um grande número de parâmetros. Estes podem ser configurados usando o comando set .

definir pnIsso define o parâmetro p para o valor n ; n é um número inteiro. Por exemplo,

  definir x_height 45

diz que eqn deve assumir uma altura x de 0,45 ems.

Os parâmetros possíveis são os seguintes. Os valores estão em unidades de centésimos de em, a menos que indicado de outra forma. Essas descrições pretendem ser expositivas e não definitivas.

minimum_sizeO eqn não definirá nada com um tamanho de ponto menor que esse. O valor está em pontos.
fat_offsetA primitiva gorda incentiva uma equação, imprimindo duas cópias da equação horizontalmente compensada por esse valor.
over_hangUma barra de fração será mais duas vezes maior que a largura máxima do numerador e denominador; em outras palavras, ele excederá o numerador e o denominador em pelo menos essa quantidade.
accent_widthQuando a barra ou abaixo é aplicada a um único caractere, a linha será longa. Normalmente, bar ou under produz uma linha cujo comprimento é a largura do objeto ao qual se aplica; no caso de um único caractere, isso tende a produzir uma linha que parece muito longa.
delimiter_factorOs delimitadores extensíveis produzidos com as primitivas esquerda e direita terão uma altura e profundidade combinadas de pelo menos esses milésimos de duas vezes a quantidade máxima pela qual a sub-equação que os delimitadores incluem se estende para longe do eixo.
delimiter_shortfallDelimitadores extensíveis produzidos com as primitivas esquerda e direita terão altura e profundidade combinadas não inferiores à diferença de duas vezes a quantidade máxima pela qual a sub-equação que os delimitadores incluem se estende para longe do eixo e dessa quantidade.
null_delimiter_spaceEsse espaço horizontal é inserido em cada lado de uma fração.
script_spaceA largura de subscritos e sobrescritos é aumentada por esse valor.
thin_spaceEssa quantidade de espaço é inserida automaticamente após os caracteres de pontuação.
medium_spaceEssa quantidade de espaço é inserida automaticamente em ambos os lados dos operadores binários.
thick_spaceEssa quantidade de espaço é inserida automaticamente em ambos os lados das relações.
x_heightA altura das letras minúsculas sem ascendentes, como ‘x’.
axis_heightA altura acima da linha de base do centro de caracteres como ‘+’ e ‘-‘. É importante que esse valor esteja correto para a fonte que você está usando.
default_rule_thicknessIsso deve ser definido como a espessura do caractere \ (ru) ou a espessura das linhas horizontais produzidas com a sequência de escape \ D.
num1O comando over irá aumentar o numerador pelo menos nessa quantidade.
num2O comando smallover deslocará o numerador pelo menos nessa quantidade.
denom1O comando over deslocará o denominador em pelo menos essa quantidade.
denom2O comando smallover deslocará o denominador para pelo menos essa quantidade.
sup1Normalmente, os sobrescritos serão alterados em pelo menos essa quantidade.
sup2Sobrescritos dentro de sobrescritos ou limites superiores ou numeradores de frações menores serão alterados em pelo menos essa quantidade. Isso geralmente é menor que sup1 .
sup3Sobrescritos dentro de denominadores ou raízes quadradas ou subscritos ou limites inferiores serão alterados em pelo menos essa quantidade. Isso geralmente é menor que sup2 .
sub1Os assinantes normalmente serão reduzidos em pelo menos esse valor.
sub2Quando houver um subscrito e um sobrescrito, o subscrito será deslocado para baixo em pelo menos essa quantidade.
sup_dropA linha de base de um sobrescrito não terá mais que essa quantidade abaixo da parte superior do objeto no qual o sobrescrito está definido.
sub_dropA linha de base de um subscrito estará pelo menos tão abaixo da parte inferior do objeto no qual o subscrito está definido.
big_op_spacing1A linha de base de um limite superior estará pelo menos muito acima da parte superior do objeto no qual o limite está definido.
big_op_spacing2A linha de base de um limite inferior estará pelo menos tão abaixo da parte inferior do objeto em que o limite está definido.
big_op_spacing3A parte inferior de um limite superior estará pelo menos tão acima da parte superior do objeto em que o limite está definido.
big_op_spacing4O topo de um limite inferior estará pelo menos tão abaixo da parte inferior do objeto em que o limite está definido.
big_op_spacing5Esse espaço vertical será adicionado acima e abaixo dos limites.
baseline_sepAs linhas de base das linhas em uma pilha ou matriz normalmente estarão tão distantes. Na maioria dos casos, isso deve ser igual à soma de num1 e denom1 .
shift_downO ponto médio entre a linha de base superior e a linha de base inferior em uma matriz ou pilha será deslocado dessa maneira para baixo a partir do eixo. Na maioria dos casos, isso deve ser igual a axis_height .
column_sepEsse espaço será adicionado entre as colunas em uma matriz.
matrix_side_sepEsse espaço será adicionado em cada lado de uma matriz.
desenhar linhasSe for diferente de zero, as linhas serão desenhadas usando a sequência de escape \ D , em vez de com a sequência de escape \ l e o caractere \ (ru .
alturaA quantidade pela qual a altura da equação excede isso será adicionada como espaço extra antes da linha que contém a equação (usando \ x ). O valor padrão é 85 .
body_depthA quantidade pela qual a profundidade da equação excede isso será adicionada como espaço extra após a linha que contém a equação (usando \ x ). O valor padrão é 35 .
noffSe for diferente de zero, ndefine se comportará como define e tdefine será ignorado; caso contrário, tdefine se comportará como define e ndefine será ignorado. O valor padrão é 0 Geralmente, isso é alterado para 1 pelo arquivo eqnrc para os dispositivos ascii , latin1 , utf8 e cp1047 .

Macros

Macros podem aceitar argumentos. Em um corpo de macro, $ n onde n está entre 1 e 9 , será substituído pelo n- ésimo argumento se a macro for chamada com argumentos; se houver menos de n argumentos, ele será substituído por nada. Uma palavra que contém um parêntese esquerdo onde a parte da palavra antes do parêntese esquerdo foi definida usando o comando define será reconhecida como uma chamada de macro com argumentos; caracteres após o parêntese esquerdo até um parêntese direito correspondente serão tratados como argumentos separados por vírgula; vírgulas entre parênteses aninhados não encerram um argumento.

nome sdefine X qualquer coisa XÉ como o comando define , mas o nome não será reconhecido se chamado com argumentos.
incluir “arquivo”

copiar “arquivo”

Inclua o conteúdo do arquivo ( incluir e copiar são sinônimos). Linhas de arquivo que começam com .EQ ou .EN serão ignoradas.
ifdef nome X qualquer coisa XSe o nome foi definido por define (ou foi definido automaticamente porque o nome é o dispositivo de saída) processe qualquer coisa ; caso contrário, ignore qualquer coisa . X pode ser qualquer caractere que não apareça em nada .
nome undefRemova a definição do nome , tornando-o indefinido.

Além das macros mencionadas acima, as seguintes definições estão disponíveis: Alfa , Beta , …, Omega (igual a ALPHA, BETA, …, OMEGA), ldots (três pontos na linha de base) e dólar .

Fontes

O eqn normalmente usa pelo menos duas fontes para definir uma equação: uma fonte em itálico para letras e uma fonte romana para todo o resto. O comando gfont existente altera a fonte usada como fonte itálica. Por padrão, este é eu . A fonte usada como romana pode ser alterada usando o novo comando grfont .

grfont fDefina a fonte romana para f .

O primitivo em itálico usa a fonte em itálico atual definida por gfont ; o primitivo romano usa a fonte romana atual definida por grfont . Há também um novo comando gbfont , que altera a fonte usada pelo primitivo em negrito . Se você usar apenas as primitivas romana , itálica e negrita para alterar as fontes dentro de uma equação, poderá alterar todas as fontes usadas pelas suas equações usando os comandos gfont , grfont e gbfont .

Você pode controlar quais caracteres são tratados como letras (e, portanto, são definidos em itálico) usando o comando chartype descrito acima. Um tipo de letra fará com que um caractere seja definido em itálico. Um tipo de dígito fará com que um caractere seja definido no tipo romano.

arquivos

/usr/share/groff/1.19.2/tmac/eqnrcArquivo de inicialização do eqn .

Exemplos

  eqn myfile.txt

Processe um arquivo troff.

nroff – Formata documentos para exibição no terminal ou impressora de linha.
tbl – Pré-processador que formata tabelas para nroff ou troff .
troff – Documentos de tipos ou formatos para exibição no terminal ou impressora de linha.

20 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.