Comandos Linux eqn, neqn e checkeq
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
- Sintaxe
- Exemplos
- Comandos relacionados
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 xy | Especifique 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. |
-C | Reconheça .EQ e .EN mesmo quando seguido por um caractere que não seja espaço ou nova linha . |
-N | Não permita novas linhas dentro de delimitadores. Esta opção permite que o eqn se recupere melhor da falta de delimitadores de fechamento. |
-v | Imprima o número da versão. |
-r | Apenas uma redução de tamanho. |
-m n | O tamanho mínimo do ponto é n . O eqn não reduzirá o tamanho de subscritos ou sobrescritos para um tamanho menor que n . |
-T name | A 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 dir | Pesquise dir por eqnrc antes dos diretórios padrão. |
-R | Não carregue o eqnrc . |
-f F | Isso é equivalente a um comando gfont F. |
-s n | Isso é 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 n | Isso 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:
comum | um caractere comum como ‘ 1 ‘ ou ‘ x ‘ |
operador | um grande operador como ‘ > ‘ |
binário | um operador binário como ‘ + ‘ |
relação | uma relação como ‘ = ‘ |
abertura | um suporte de abertura como ‘ ( ‘ |
fechamento | um colchete de fechamento como ‘ ) ‘ |
pontuação | um caractere de pontuação como ‘ , ‘ |
interior | uma sub-fórmula contida entre parênteses |
suprimir | espaçamento que suprime o ajuste automático de espaçamento |
Os componentes de uma equação obtêm um tipo de duas maneiras:
tipo te | Isso 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 text | Grupos 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 e2 | Isso é 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 e | Isso 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 e2 | Isso 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 e2 | Isso 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 nosplit | Isso 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 opprime | Esta é 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 e | Isso 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 . O kern subscrito de um objeto diz quanto um subscrito nesse objeto deve ser inserido; a 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 pn | Isso 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_size | O eqn não definirá nada com um tamanho de ponto menor que esse. O valor está em pontos. |
fat_offset | A primitiva gorda incentiva uma equação, imprimindo duas cópias da equação horizontalmente compensada por esse valor. |
over_hang | Uma 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_width | Quando 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_factor | Os 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_shortfall | Delimitadores 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_space | Esse espaço horizontal é inserido em cada lado de uma fração. |
script_space | A largura de subscritos e sobrescritos é aumentada por esse valor. |
thin_space | Essa quantidade de espaço é inserida automaticamente após os caracteres de pontuação. |
medium_space | Essa quantidade de espaço é inserida automaticamente em ambos os lados dos operadores binários. |
thick_space | Essa quantidade de espaço é inserida automaticamente em ambos os lados das relações. |
x_height | A altura das letras minúsculas sem ascendentes, como ‘x’. |
axis_height | A 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_thickness | Isso deve ser definido como a espessura do caractere \ (ru) ou a espessura das linhas horizontais produzidas com a sequência de escape \ D. |
num1 | O comando over irá aumentar o numerador pelo menos nessa quantidade. |
num2 | O comando smallover deslocará o numerador pelo menos nessa quantidade. |
denom1 | O comando over deslocará o denominador em pelo menos essa quantidade. |
denom2 | O comando smallover deslocará o denominador para pelo menos essa quantidade. |
sup1 | Normalmente, os sobrescritos serão alterados em pelo menos essa quantidade. |
sup2 | Sobrescritos 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 . |
sup3 | Sobrescritos 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 . |
sub1 | Os assinantes normalmente serão reduzidos em pelo menos esse valor. |
sub2 | Quando houver um subscrito e um sobrescrito, o subscrito será deslocado para baixo em pelo menos essa quantidade. |
sup_drop | A 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_drop | A 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_spacing1 | A 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_spacing2 | A 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_spacing3 | A 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_spacing4 | O topo de um limite inferior estará pelo menos tão abaixo da parte inferior do objeto em que o limite está definido. |
big_op_spacing5 | Esse espaço vertical será adicionado acima e abaixo dos limites. |
baseline_sep | As 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_down | O 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_sep | Esse espaço será adicionado entre as colunas em uma matriz. |
matrix_side_sep | Esse espaço será adicionado em cada lado de uma matriz. |
desenhar linhas | Se 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 . |
altura | A 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_depth | A 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 . |
noff | Se 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 X | Se 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 undef | Remova 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 f | Defina 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/eqnrc | Arquivo de inicialização do eqn . |
Exemplos
eqn myfile.txt
Processe um arquivo troff.
Comandos relacionados
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.