Letras Elétricas
Textões e ficções sem compromisso
by J. G. Gouvêa Atualizado em 2021-05-05

Revista Literária feita com XeTeX

Publicado em: 26/05/2009

Minha mais recente aventura, enquanto convalesço de uma cirurgia para retirada de uma vesícula supurada, é fazer uma revista literária para a comunidade “Novos Escritores do Brasil” — da qual vocês já devem ter ouvido falar anteriormente.

Boa parte do que eu fiz para esta revista aproveita um estilo chamado dtp-like.sty que eu havia criado originalmente em 2007. Por esta razão muita coisa eu simplesmente não sei mais como funciona. Este registro tem, entre outras motivações, deixar registrado o processo para quando eu quiser utilizar de novo aquelas idéias.

Resumo geral:

  1. Digitar o conteúdo,
  2. Criar a capa e a contracapa,
  3. Criar os índices e referências automáticos,
  4. Inserir ilustrações e acertar as arestas,
  5. Compilar,
  6. Cortar o PDF separando capa de miolo
  7. Encaminhar para a Lulu

Neste processo é preciso ter em conta que o número de páginas deve ser múltiplo de 4, para evitar que a gráfica insira páginas em branco que vão enfeiar o produto final (são aceitáveis em um livro de dezenas de páginas, mas não em uma revista).

Preâmbulo do Documento

Queremos uma revista que ocupe ao máximo uma folha de papel A4, alternando quantidade de colunas (uma, duas, três) e com layout diferenciado frente e verso. Para isso as configurações básicas são:

~~~~ latex {% raw %} \documentclass[a4paper,10pt,twoside,twocolumn] { article } {% endraw %} ~~~~

Atenção para os comandos twoside, twocolumn e 10pt!

~~~~ latex {% raw %}

{% endraw %} ~~~~

O pacote epic é para usar figuras como plano de fundo e o multicol permite criar seções em colunas em uma página de uma coluna só ou até dentro de uma coluna.

~~~~ latex {% raw %}

{% endraw %} ~~~~

Esse é o meu pacote de configuração da revista, ainda tosco e sem comentários, mas eficiente. Quando a revista tiver saído eu vou fazer uma atualização dele e pôr aqui para download.

~~~~ latex {% raw %}

{% endraw %} ~~~~

Usaremos o XeTeX para ter acesso liberado a fontes do sistema. Além disso o XeTeX introduz alguns comandos muito úteis, como o , através do qual podemos controlar a cor e o tamanho do texto de forma muito precisa. Essa revista não poderia ter sido feita no pdfTeX.

~~~~ latex {% raw %}

{% endraw %} ~~~~ Algumas predefinições para uso futuro.

~~~~ latex {% raw %}

{% endraw %} ~~~~

Aqui criamos o comando \issue que sempre imprimirá os dados da edição atual da revista.

~~~~ latex {% raw %}




{% endraw %} ~~~~

Ufa! Aqui temos algo um pouco mais complexo. Ao longo da revista utilizaremos diversas variedades de tamanhos e estilos de fontes, todos definidos aqui. Desta forma, se quisermos mudar na revista inteira, bastará mudar aqui. Atenção para a macro \style através da qual armazenamos um nome básico de fonte que depois é replicado nos demais estilos. Essa macro é para usar conjuntos completos de fontes, dando aparência harmoniosa à revista. Exemplos desses conjuntos são:

Combinar fontes que não fazem parte de um conjunto é possível também, mas além de ser esteticamente arriscado se você não tiver bom gosto, ainda exigirá que você faça modificações no meu código aí… rsrs

~~~~ latex {% raw %}
{% endraw %} ~~~~

Os comandos \news e \coverfoot (definidos no estilo dtp-like) preenchem o conteúdo da capa.

~~~~ latex {% raw %}

\makenomenclature {% endraw %} ~~~~

Estes comandos são muito importantes porque através deles será gerada a relação de autores, que terá duas formas: uma, na capa, acompanhada do número da página em que aparecem, funcionará como substituta do índice, e a outra, na quarta capa, acompanhada do e-mail. O comando \makeindex gera o comando \printindex e o comando \makenomenclature gera o \printnomenclature (no fim das contas ainda não usaremos este, mas ainda é preciso usar o \makenomenclature.

Página de abertura

A revista começa na página três, contendo os seguintes elementos: um quadro — exibindo o nome da revista, seu slogan e a identificação do número — o editorial, uma lista de diários virtuais favoritos (que você pode trocar por outra coisa) e o “expediente”.

~~~~ latex {% raw %} \section* { Editorial }

\section* { Blogs favoritos }
{% endraw %}

Identificação da revista, responsáveis, editora, etc. ~~~~

E assim você começa a digitar o conteúdo.

Regras para digitação do conteúdo

Em primeiro lugar, você já deverá saber alternar entre uma e duas colunas (\onecolumn e \twocolumn) e usar o pacote multicols. Fica a critério de seu bom senso e bom gosto distribuir o texto e as ilustrações pelo corpo da revista. Não tenho como ensinar tudo aqui. O “pulo do gato” não é para qualquer onça dar…

Mas eu vou ensinar o truque para gerar os índices. Ele se baseia na utilização de um comando personalizado para abrir as seções. O comando é esse aqui:

~~~~ latex {% raw %} { email do autor } { nome do texto } {% endraw %} ~~~~

Fique à vontade para criar o conteúdo da revista como preferir. Apenas use esse comando para armazenar os dados dos textos e autores. Inclusive, se preferir, você poderá gerar um índice tradicional usando o comando \tableofcontents. Vai funcionar direitim tamém.

Principais definições do estilo dtp-like

Algumas coisas que eu alterei são apenas opções de configuração de pacotes normais do LaTeX. Esta parte eu vou deixar a critério do bom gosto e do bom senso do leitor, apenas vou explicar os novos códigos que criei.

Os pacotes abaixo são essenciais: ~~~~ latex {% raw %}


% figura de fundo % caixas de texto coloridas % listas mais bonitas {% endraw %} ~~~~

Estes abaixo podem ser úteis ou não, conforme o que você queira fazer.

~~~~ latex {% raw %} % tabelas que passam da página % tabelas estilo livro % tabelas coloridas % capitulares % trecho em coluna única em página % controlar hífens % formatar versos { gray } { 0.2 } {% endraw %} ~~~~

Aqui vai o primeiro comando realmente importante: {% raw %} \newcommand { \mytocentry } [3] { { \bfseries #1 } , por #2 } {% endraw %}

Este comando permite que a sua \tableofcontents exiba o título da obra em negrito, seguido pela nome do autor, o que fica muito mais bonito que o sumário tradicional.

~~~~ latex {% raw %}

{% endraw %} ~~~~

Este código define um novo comando de abertura de seção, que armazena dados para os índices e para nosso sumário personalizado.

~~~~ latex {% raw %}

\makeatother {% endraw %} ~~~~

Esse código cria um comando para inserção simplificada de uma figura de fundo na capa. A configuração é de centralizar a figura na área de página total.

~~~~ latex {% raw %}

{% endraw %} ~~~~

Aí são criados os comandos de manchete (\news) e rodapé da capa (\coverfoot).

~~~~ latex {% raw %} {

}

\makeatother {% endraw %} ~~~~

Este comando cria uma capa personalizada, com uma figura de plano de fundo e da cor covercolor (que você deverá ter definido antes a seu gosto). Se o arquivo da figura da capa se chamar literalmente FiguraCapa você não precisa editar nada. Se tiver outro nome, você deverá mudar. Dããã…

~~~~ latex {% raw %}

{% endraw %} ~~~~

O comando marquee criará um selo de identificação da revista, que você poderá posicionar onde quiser. Na configuração padrão ele fica acima do Editorial.

~~~~ latex {% raw %}
{% endraw %} ~~~~

Este código é importante se você quiser que a fonte dos títulos seja diferente da fonte do texto.

~~~~ latex {% raw %}

{% endraw %} ~~~~

Aqui nós estamos mudando o comportamento padrão do índice remissivo para que apresente os autores em um parágrafo só.

Configurações do makeindex

Utilizo o pacote makeindex para gerar um índice remissivo de autores, com indicação da página em que estão publicados. Este índice é formatado segundo as seguintes configurações, que devem estar armazenadas em um arquivo de extensão *.ist do mesmo nome do documento base:

~~~~ latex {% raw %} actual ‘=’ quote ‘!’ level ‘>’
preamble “\nopagebreak\begin { theindex }” postamble “\end { theindex } \quad\quad” item_x1 “\subitem” item_x2 “\subsubitem” delim_0 " (" delim_t “)\quad” group_skip "" lethead_prefix " { \bfseries " lethead_suffix “\hfil } \nopagebreak” lethead_flag 0 heading_prefix " { \bfseries " heading_suffix “\hfil } \nopagebreak” headings_flag 0 {% endraw %} ~~~~

O comando para gerar o índice é makeindex -s "$doc\_base.ist" "$doc\_base"

Configurações do nomencl

Utilizo o pacote nomencl para gerar um índice de autores acompanhado por seus e-mails. Esta não é a finalidade original do pacote, que se presta a criar glossários. Por isso eu não consegui fazer esta parte funcionar perfeitamente. Em vez do comando \printnomenclature eu estou simplesmente incluindo o arquivo de extensão *.nls que é gerado pelo comando makeindex "$doc\_base.nlo" -s nomencl.ist -t "$doc\_base.nlg" -o "$doc\_base.nls". Antes de fazer a inclusão é necessário limpar do arquivo algumas marcas de formatação, o que eu faço usando o sed:

sed -e 's/\\item \[/\\quad\\textbf\ { /g'  
     sed -e 's/\]\\begingroup /\ } \\quad/g' 
     sed -e 's/^[ \t]\*//' -e '/nompageref/d' 
     sed -e '/description/d'

No meu editor de LaTeX eu criei um script no menu que executa tudo isso como um one-liner, mas talvez seja melhor criar um shell script que automatize isso já no processo do \makeindex. Preciso da ajuda de um guru de shell para isso, pois sou cru nessa área.

Por fim, faça a inclusão:

~~~~ latex {% raw %}

\ {% endraw %} ~~~~

A redefinição do comando \nomeqref é essencial para não dar erro, mas as linhas \hrulefill são só estética, gosto meu…

Conclusões

Espero ter conseguido provar que dá para fazer um layout de revista usando o LaTeX (algo que pouca gente supunha possível). Dentro de alguns dias a revista vai estar disponível à venda e vou postar o link aqui para quem quiser conferir. Garanto que ficou muito bacana.

Arquivado em: