|
Macros, funções e variáveis
do ambiente |
|
As principais combinações de teclas que você deve
conhecer para escrever arquivos de estilo são as seguintes:
-
M-=
-
cria uma nova atribuição. O primeiro argumento
é o nome do novo comando e o segundo uma expressão.
-
M-w
-
permite mudar localmente uma ou mais variáveis do ambiente.
Comandos ‘with' são da forma
⟨x1|a1|⋯|xn|an|b⟩,
onde os xi são os nomes das
variáveis, os ai seus
valores locais, e b o texto ao qual aplica-se a
variável local.
-
M-m
-
cria um macro. Argumentos para o macro podem ser inseridos com a
tecla tab.
-
M-f
-
cria uma função. Argumentos para a
função podem ser inseridas com a tecla
tab.
-
M-i #
-
obtém o valor de um argumento de um macro.
-
M-i v
-
obtém o valor de uma variável do ambiente.
-
M-i e
-
expande o macro com zero ou mais argumentos.
-
M-i a
-
aplica a função a zero ou mais argumentos.
Mais precisamente, durante a expansão de um macro
{a|x1|⋯|xn}
criado por M-i e, acontecem a seguinte
seqüência:
-
Se a não é uma cadeia de caracteres ou um
macro, então a é avaliado uma vez. Disto
resulta ou um nome de um macro ou uma macro expressão
f.
-
Se foi obtido um nome de um macro, então f
é substituido pelo valor da variável do ambiente
f. Se, após isto, f ainda não
é uma macro expressão, então retornamos
f.
-
Sejam
y1,…,yn
os argumentos de f e b seu corpo (argumentos
desnecessários são descartados; uma cadeia de
caracteres vazia é tomada como o valor padrão dos
argumentos não fornecidos). Então cada
xi é substituido para cada
yi em b e este valor
é retornado.
Funções são similares a macros, com a
exceção de que argumentos de uma aplicação
de função são avaliados e não podem ser
editados diretamente (primeiro você precisa desativar a
aplicação da função, editar os argumentos,
e reativá-la). Além disso,
y1,…,yn
são agora variáveis do ambiente local, às quais
são dados os valores de
x1,…,xn.
Estas variáveis locais não são lembradas quando
uma função retorna uma função que envolve
estas variáveis.
© 1998–2003 Joris van der Hoeven & Ramiro Brito
Willmersdorf
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License".