1. Formatação
de texto em UNIX - nroff
2. Impressões de texto em UNIX
O nroff é uma ferramenta do UNIX para formatação de texto. Os comandos do nroff devem ser incluídos no texto, sempre em linhas isoladas. Por exemplo:
$ cat texto .pl 72 .ls 2 .ce 1 MANUAL DO NROFF .br Este é o manual do NROFF, o processador de texto do UNIX $ |
Os comandos permitem controlar a numeração de páginas, tipo de caracter, parágrafos, cabeçalhos, etc.
A sintaxe deste comando é a seguinte:
nroff [
opções ] [ ficheiros ]
.pl nn PAGE LENGTH
Indicação do tamanho do papel que estamos a utilizar. Normalmente "nn" será 72 correspondente ao número de linhas por página.
.ll
nn LINE LENGTH
Indicação do tamanho da linha pretendida em nn caracteres.
.ls
n LINE SPACING
Distância entre linhas em que n pode tomar o valor 1 ou 2.
.sp
nn SPACE
Pedido para deixar nn linhas em branco.
.br BREAK
Pedido para não juntar a linha anterior à linha seguinte.
.ce nn CENTER
Pedido para centrar as nn linhas seguintes.
.ul
nn UNDERLINE
Pedido para sublinhar as nn linhas seguintes.
.cu
nn CONTINUOUS UNDERLINE
Tem o mesmo significado que o comando anterior, só que o sublinhado é
continuo.
.nf NO FILL
Pedido para deixar de formatar o texto que se segue.
.fi FILL
Pedido para voltar a formatar o texto que se segue.
.in
nn INDENT
Pedido para chegar à direita as linhas com nn espaços.
.bp BEGIN PAGE
Pedido para mudar de página.
As macros são instruções que são construídas
baseando-se noutras instruções. Usam--se como os comandos básicos embora se
tenha que indicar como opção na linha de comando do nrrof :
nroff -mm ficheiros
.SA
n SET ADJUSTMENT
Tipo
de ajustamento "n" que pode tomar o valor de 1 ou 0. Normalmente
pede-se 1e coloca-se este comando no princípio do ficheiro.
.P PARAGRAPH
O
texto seguinte é intervalado com uma linha ( novo parágrafo )
.PH header PAGE HEADER
Cabeçalho
em que "header" tem o formato "´texto1´texto2´texto3´".
Isto significa que os textos 1, 2 e 3 surgirão respectivamente à esquerda, ao
centro e à direita de todas as páginas. No case de querer que apareçam número
da página no meio de qualquer destes textos deve inserir-se "\\\\nP".
.PF
footer PAGE FOOTER
Tem o
mesmo significado que o comando anterior, só que neste caso aplica-se aos
rodapés.
.B BOLD
Os
caracteres passam a ser mais carregados.
.I ITALIC
Os
caracteres passam a ser em itálico. Se o nroff não conhecer a impressora, os
caracteres saem em sublinhado.
.R ROMAN
Entra
de novo no tipo de letra normal.
.DL DASHED LIST
Inicio
de uma lista de items com um traço. Cada item deve ser precedido de
".LI" e o respectivo texto. A lista deve terminar com o comando
".LE".
.AL
t AUTOMATIC LIST
Inicio
de uma lista de items numerados; "t" significa o tipo de numeração: 1
- numérica, I - romana, i - romana em minúsculas, A - alfabética, a -
alfabética em minúsculas. Cada item deve ser precedido de “. LI" e o
respectivo texto. A lista deve terminar com “. LE".
.VL
n VARIABLE LIST
Início
de uma lista de items com nomes, sendo
"n" a indentação do texto. Cada item deve ser precedido de
".LI nome" e o respectivo texto. A lista deve terminar com
".LE".
.LI [item] LIST ITEM
Item
de uma lista. No caso de ser uma lista variável deve levar o nome do item como
argumento em "item".
.LE LIST END
Indicação
de que terminou uma lista. Deve estar sempre associado a um ".DL",
".AL" ou a um ".VL" e a uma série de ".LI".
.H n title HEADER
Início
de secção de nível "n". O titulo "title" da secção deve
estar entre aspas se tiver mais do que uma palavra.
.TC TABLE OF CONTENTS
Inserção
do índice que contém uma lista de títulos e páginas respectivas.
O sistema UNIX possui boas ferramentas para gerir as impressões e as impressoras.
Todos os utilizadores do sistema têm assim possibilidade de efectuar impressões
utilizando uma ou várias impressoras sem interferirem no trabalho dos outros.
Se vários utilizadores mandarem executar listagens ao mesmo tempo para uma
mesma impressora, estas listagens não se vão sobrepor umas às outras mas sim
ficar ordenadas em fila de espera de modo a serem impressas sequencialmente. Ao
sistema que faz a gestão de impressões chama-se "spooler" e os
comandos descritos de seguida estão associados a este sistema.
Este comando serve para efectuar impressões através
do sistema de "spooler", e tem a seguinte sintaxe:
$
lp [opções] [ficheiro...]
O ficheiro ou ficheiros dados como argumentos ao comando lp são enviados para uma impressora de acordo com o especificado pelas opções seguintes:
-d[destino] - Esta opção indica qual a impressora de destino a ser utilizada
para a impressão em causa.
-n[número] - Esta opção permite imprimir um número de cópias indicado
por "número".
Se omitirmos qual a impressora a que se destina a
listagem, esta é enviada para a impressora principal do sistema. Esta
impressora principal é indicada ao sistema pelo administrador de sistema.
Mostram-se alguns exemplos do comando lp:
$
lp empregados
Request
id is lp02-2201
$
lp 'dlp00 empregados
Request id is lp00-4372
$ lp -n2 -dpp01 empregados
Request id is pp01-167
A mensagem enviada pelo comando lp, refere o número
(id) da impressão dentro do sistema spooler. Este número é constituído pelo
nome da impressora e pelo número da impressão.
Assim, no primeiro caso, imprimimos o ficheiro
empregados na impressora principal do sistema, que neste caso se chama lp02 e o
número de ordem atribuído pelo spooler foi o 2201.
No segundo seguinte mandámos imprimir o mesmo
ficheiro mas na impressora lp00.
No último caso mandámos imprimir 2 cópias do
ficheiro empregados na impressora pp01.
Note-se quem cada impressora tem uma lista de
espera.
Este comando permite consultar o estado do
"spooler", embora para o utilizador normal só tenha interesse
consultar as suas impressões que estão em lista de espera. A utilização normal
deste comando é a seguinte:
$ lp 'dpp01 2mpregados
Request id is pp01-168
$ lpstat
pp01-168 Fernando 251 Oct 7 15:50
A listagem fornecida pelo comando lpstat consiste
no número das listagens no sistema spooler, nome do dono, tamanho em bytes e a data
em que foi criada a impressão. Se aparecer no fim da linha correspondente à
listagem a mensagem "on pp01", significa que a impressão em questão
está nesse momento a ser impressa.
Saliente-se que este comando possui opções e que as
mais úteis para o utilizador normal são:
-d Indica
o nome da impressora principal do sistema conhecida como "system default destination".
-p[lista] Indica o nome das impressoras do sistema referenciadas em
"lista", bem como o seu estado
actual. Se "lista" for omitida, a informação fornecida será sobre
todas as impressoras do sistema.
Alguns exemplos de utilização são fornecidos de
seguida :
$ lpstat -p
printer lp00 is idle. enable since
Oct 7 09:26
printer lp02 is idle. enable since
Oct 7 09:26
printer pp01 is idle. enable since
Oct 7 09:26
$ lpstat -d
system default destination: lp02
$ lpstat -plp00
printer lp00 is idle. enable since
Oct 7 09:26
Com todas estas opções, pode-se escolher o local para
onde enviamos as nossas impressões. No entanto, deve ter-se cuidado na escolha
de impressoras pois podem não corresponder às características das nossas
impressões. A utilização do sistema de impressões deve sempre ser feita de
acordo com os procedimentos estabelecidos pelo administrador do sistema.
Embora em todos os exemplos atrás descritos se
utilize os nomes "lp00", "pp01" ou "lp02", não
significa que os nomes sejam sempre deste tipo. O administrador do sistema pode
escolher qualquer outro nome tal como "contabilidade",
"IBM02", "Manel", etc.
Através do comando "lpstat" pode ter-se
acesso a muito mais informação que será falada no manual de Administração de
Sistema.
Este comando destina-se a cancelar pedidos de impressão
que já estão no sistema "spooler". A utilização deste comando é a
seguinte :
$ lpstat
pp01-253 Fernando 215 Oct 7 15:50
$ cancel pp01-253
request "pp01-253"
cancelled
Saliente-se que um utilizador só poderá cancelar os
seus próprios pedidos, excepto se ele for o administrador de sistema.
Este comando embora não esteja associado com o
sistema de impressões, é bastante útil para o tratamento de ficheiros de texto
que se pretendam imprimir. É possível, nomeadamente paginar folhas, colocar
cabeçalhos e mais uma série de parâmetros que permitem obter listagens simples
de um modo mais apresentável. A sintaxe deste comando é a seguinte:
$
pr [opções] [ficheiros]
As opções principais são:
-lxxx Especifica o número de linhas por página (xxx), sendo o
normal de 72 linhas em impressora e 24 em terminal. Se a opção for omitida,
assume o valor de 66 linhas.
-t Omite
o cabeçalho e o rodapé em cada página.
-h texto Permite substituir o nome do
ficheiro no cabeçalho por "texto". Se "texto" contiver
espaços, tem que estar delimitado por aspas. Esta é a única opção que necessita
de um espaço entre a letra da opção e o argumento respectivo.
-d Permite o espacejamento entre
linhas, ou seja, coloca uma linha em branco
entre cada duas linhas de texto.
+xxx Começa a visualização do
ficheiro a partir da página "xxx". O valor por defeito é 1.
Mais opções existem, que são deixadas ao interesse
do utilizador, devendo consultar o "User's Reference Guide".
Normalmente são deixadas automaticamente 5 linhas
para o cabeçalho e 5 linhas para o rodapé. Se o número de linhas (xxx)
especificado com a opção "-l" for superior a 10, então o texto real
por página será "xxx-10" linhas. Se o número especificado com a opção
"-l" for inferior a 10, o cabeçalho e o rodapé são omitidos.
O cabeçalho é geralmente constituído por 2 linhas
em branco: uma linha com o formato descrito de seguida e mais duas linhas em
branco.
Jan
16 18:34 1989 TEXTO DO UTILIZADOR Page 12
A mensagem "TEXTO DO UTILIZADOR" é
colocada com a opção "h" e se a omitirmos é colocado em substituição
o nome do ficheiro que está a ser visualizado. O rodapé é constituído por 5
linhas em branco.
A numeração das páginas é automática.
Alguns exemplos de utilização são mostrados de
seguida.
$
pr -l72 carta | lp
$
find $HOME -print | pr -l72 -h "Ficheiros do Manel" | lp
$
pr -d -l72 -h "Manual de Unix" manual | lp -n8
$
ls -l /bin | pr -l22 -h "Directório de comandos" | more
No primeiro caso vai-se imprtimir o ficheiro
"carta" na impressora, sendo cada página de 72 linhas.
No segundo caso obtém-se uma relação de ficheiros
existentes abaixo do directório "/usr/manel" que será impressa na
impressora em páginas de 72 linhas com um cabeçalho que é composto pela frase
"Ficheiros do Manel".
O terceiro caso imprime 8 cópias do ficheiro
chamado "manual" com espacejamento duplo entre linhas e com o
cabeçalho composto pela frase "Manual de Unix".
O último exemplo mostra em écran uma listagem do
conteúdo do directório "/bin" através do comando "more",
aparecendo em cada página (écran) visualizada o cabeçalho com a frase
"Directório de comandos".