Para usar acentuação nos programas em CWEB, é recomendável usar o arquivo acentos.tex de macros feito pelo prof. Arnaldo Mandel. Desta maneira, pode-se fazer a digitação de arquivos com acentos (iso-8859-1), sem a necessidade de usar caracteres de controle do TeX.
Imagino que uma boa estratégia seja usá-lo no limbo do documento
(i.e., antes de qualquer seção do documento ser definida) e, mais
ainda, como argumento para o comando \input
, em vez de
usá-lo como uma diretiva @i
, uma vez que, assim,
pode-se colocá-lo em um diretório listado no conteúdo da variável
TEXINPUTS
, em vez de colocá-lo sempre no diretório
corrente ou especificar um path hardcoded para o arquivo.
Para incluir uma entrada no índice do programa, a forma usual é
digitar @^entrada@>
no código fonte do CWEB.
Entretanto, dados os problemas de internacionalização do TeX, se a
entrada tiver acentos (e.g., a palavra árvores), ela não sairá no
local desejado (no exemplo, junto das entradas iniciadas por a). O
jeito de fazer isso funcionar é usar
@:chave-índice}{entrada@>
, onde
chave-índice
é o que o CWEB deve usar para ordenar a
entrada entrada
.
Para usar nomes traduzidos para referências das seções geradas no CWEB, é recomendável usar o arquivo de macros cwebmac-br.tex produzido pelo prof. Paulo Feofiloff;
Quando um arquivo .tex
é gerado pelo
cweave
, o pdftex
é capaz de fazê-lo ficar
com hyperlinks (internos).
Para gerar hyperlinks externos (e.g., para a WWW), pode-se usar a
macro \pdfURL
definida pelo próprio CWEB, com o
seguinte uso: \pdfURL{página do
Rogério}{http://www.ime.usp.br/\TILDE/rbrito/}
.
Há ainda um outro problema: quando o arquivo de macros para
acentuações do prof. Arnaldo é usado, os nomes das seções que o
pdftex
para o índice ("bookmarks") do arquivo PDF ficam
sem os caracteres acentuados. Isso parece ocorrer porque as macros
do CWEB "limpam" os títulos a serem enviados para o arquivo
PDF (talvez elas "limpem" demais?). Vide página 27 do manual do CWEB.
Para incluir figuras ou gráficos em plain TeX (e, por conseqüência,
em arquivos produzidos pelo CWEB), pode-se usar o pacote
epsf
, que vem incluso com o tetex (seu uso:
\input epsf
). Esta é, aliás, a estratégia que vi o
próprio prof. Donald Knuth
usar em um de seus programas em CWEB.
Há um problema, entretanto: as figuras devem ser geradas em formato
PostScript (EPS, talvez?) em vez de PDF e não é possível (ou não
parece ser) usar o pdftex
nessa situação.
Em outras palavras, para gerar um arquivo PDF que contenha a figura,
é necessário gerar primeiro o DVI e depois gerar o PDF. Dependendo
do meio como o PDF foi gerado (e.g., com o uso do dvips
e com a posterior utilização do ps2pdf
), pode ser que
os links do arquivo sejam todos perdidos.
Nesses casos a recomendação é a seguinte: após o arquivo
.tex
, digamos exemplo.tex
, ter sido gerado
pelo cweave
, o comando tex "\let\pdf+ \input
exemplo"
deve ser usado e o arquivo DVI correspondente deve
ser processado pelo dvipdfm
(que também faz parte de
versões novas do tetex).
O cweave
fica confuso na hora de tipografar classes em
C++, principalmente quando tais classes são subclasses de alguma
classe base. Além disso, quando é feito uso de listas de
inicialização em vez de atribuições nos construtores de uma classe,
a formatação fica um tanto bagunçada. Nesses casos, o uso das
diretivas @/
(para forçar quebra de linha),
@;
(para fazer o papel de um ponto-e-vírgula) e
@+
(para proibir uma quebra de linha) pode ser
apropriado.
O arquivo de macros do CWEB contém também algumas macros úteis:
\CEE/
, \CPLUSPLUS/
, \UNIX/
.