1. Formatação de texto em UNIX - nroff   1

1.1. Introdução   1

1.2. Comandos básicos  1

1.3. As macros "mm"  1

2. Impressões de texto em UNIX   2

2.1. O comando lp   2

2.2. O comando lpstat 3

2.3. O comando cancel 3

2.4. O comando pr  4

 

 

1.Formatação de texto em UNIX - nroff

 

1.1.Introdução

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 ]

 

1.2. Comandos básicos

.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.

 

 

1.3. As macros "mm"

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

 

1.3.1. Formatação

 

.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.

 

 

 

1.3.2. Listas

 

.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".

 

1.3.3. Secções e Índice

 

.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.

 

2. Impressões de texto em UNIX

 

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.

 

2.1. O comando lp

 

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.

 

 

2.2. O comando lpstat

 

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.

 

 

2.3. O comando cancel

 

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.

 

 

2.4. O comando pr

 

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".