Em um mundo eternamente provisório, efêmeras letras elétricas nas telas de dispositivos eletrônicos.
26
Mai 09
publicado por José Geraldo, às 10:35link do post | comentar

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:

\documentclass[a4paper,10pt,twoside,twocolumn]{article}
Atenção para os comandos twoside, twocolumn e 10pt!
\usepackage{epic,multicol}
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.
\usepackage{dtp-like}
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.
\usepackage[brazil]{polyglossia}\usepackage{fontspec}\usepackage{xunicode}\usepackage{xltxtra}
Usaremos o XeTeX para ter acesso liberado a fontes do sistema. Além disso o XeTeX introduz alguns comandos muito úteis, como o \addfontfeature, 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.
\def\Name{o verbo}\title{\Name}\def\Nome{Revista dos Novos Escritores do Brasil}\author{\Nome}\def\edition{MAIO}\def\Year{2009}\def\Numero{1}\def\Ano{I}\def\Editora{Lulu Inc.}
Algumas predefinições para uso futuro.
\newcommand{\issue}{Ano \Ano, No.\ \numero, \edition/\Year}
Aqui criamos o comando "\issue" que sempre imprimirá os dados da edição atual da revista.
\def\style{Liberation}\def\MainFont{\style\space Serif}\def\SansFont{\style\space Sans}\def\MonoFont{\style\space Mono}\def\logofont{\style\space Serif}\newcommand\LogoFont[1]{{\fontspec[Scale=12.5]{\logofont}\bfseries\em\color{white} #1}}\newcommand\MarqueeFont[1]{{\fontspec[Scale=5]{\logofont}\bfseries\em #1}}\newcommand\IssueFont[1]{{\fontspec[Scale=1.25]{\SansFont}\color[gray]{0.9} #1}}\newcommand\issuefont[1]{{\fontspec[Scale=1]{\SansFont} #1}}\newcommand\newsfont[1]{{\fontspec[Scale=3.25]{\SansFont}\bfseries\em #1}}\newcommand\coverfootfont[1]{\sffamily #1}\newcommand\mailfont{\fontspec[Scale=MatchLowercase]{Droid Sans Fallback}}\defaultfontfeatures{Mapping=tex-text,RawFeature={+kern}}\setromanfont{\MainFont}\setsansfont[Scale=MatchLowercase]{\SansFont}\setmonofont[Scale=MatchLowercase]{Droid Sans Fallback}
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:
  • Liberation (Ascender Corp., para Red Hat Inc.)
  • Droid (Ascender Corp., para Google Inc.)
  • Free (Free Software Foundation)
  • DejaVu (Bitstream Inc. para Free Software Foundation)
  • Aboriginal (Ascender Corp., para o Governo do Canadá)
  • Nimbus (URW++ GmbH para Free Software Foundation)
  • Bitstream Vera (Bitstream Inc. para Gnome Foundation)
  • Luxi (Bigelow & Holmes)
  • Lucida (Bigelow & Holmes para Sun Inc.)
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
\news{Poemas\\\medskip Contos\\\medskip Crônicas\\\medskip Crítica}\coverfoot{{\addfontfeature{Scale=0.9}\printindex}}
Os comandos \news e \coverfoot (definidos no estilo dtp-like) preenchem o conteúdo da capa.
\usepackage{makeidx}\makeindex\usepackage{nomencl}\makenomenclature
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”.

\makecover\thispagestyle{empty}\clearpage\marquee\section*{Editorial}\section*{Blogs favoritos}\vfill\par\hrulefill\parIdentificação da revista, responsáveis, editora, etc.\onecolumn
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:

\addsection{Nome do autor}{email do autor}{nome do texto}

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.

\RequirePackage{graphicx}\RequirePackage[hang]{footmisc}\RequirePackage{xcolor}\RequirePackage{eso-pic} % figura de fundo\RequirePackage{fancybox} % caixas de texto coloridas\RequirePackage{paralist,enumitem} % listas mais bonitas\setlist{nolistsep}
Estes pacotes são essenciais.
\RequirePackage{longtable} % tabelas que passam da página\RequirePackage{booktabs} % tabelas estilo livro\RequirePackage{colortbl} % tabelas coloridas\RequirePackage{lettrine} % capitulares\RequirePackage{cuted} % trecho em coluna única em página \twocolumn\RequirePackage{hyphenat} % controlar hífens\RequirePackage{verse} % formatar versos\definecolor{url}{gray}{0.2}
Estes podem ser ou não, dependendo do que você quiser fazer
\newcommand{\mytocentry}[3]{{\bfseries #1}, por #2}
Primeiro comando realmente importante. Este comando permite que a sua \tableofcontents exiba o título da obra em negrito, seguido pela frase “por Autor”, o que fica muito mais bonito que o sumário tradicional.
\renewcommand{\thesection}{}\newcommand{\addsection}[3]{\section[\sbtocentry{#3}{#1}{#2}]{#3}\index{#1}{\hfill\em\noindent{#1}}\nomenclature{#1}{(\url{#2})}}
Este código define um novo comando de abertura de seção, que armazena dados para os índices e para nosso sumário personalizado.
\makeatletter\providecommand\BackgroundPicture[1]{%  \setlength{\unitlength}{1pt}%  \put(0,\strip@pt\paperheight){%  \parbox[t][1\paperheight]{1\paperwidth}{%  \vfill\begin{center}    \includegraphics[width=1\paperwidth,keepaspectratio]{#1}\end{center}\vfill}}}\makeatother
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.
\providecommand{\@news}{}\newcommand{\news}[1]{\renewcommand{\@news}{\vfill\begin{flushright}\newsfont{#1}\\\bigskip\end{flushright}}}\providecommand{\@coverfoot}{}\newcommand{\coverfoot}[1]{\renewcommand{\@coverfoot}{\coverfootfont{#1}}}
Criação dos comandos de manchete (\news) e rodapé da capa (\coverfoot).
\fancypagestyle{cover}{\fancyhf{}\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}\fancyfoot{}}\makeatletter\providecommand{\makecover}{%\thispagestyle{cover}\onecolumn\begin{minipage}[H]{1\textwidth}\begin{center}\LogoFont{\Name}\\\bigskip\IssueFont{\Nome}\space\space\IssueFont{\issue}\end{center}\end{minipage}\pagecolor{covercolor}\AddToShipoutPicture*{\BackgroundPicture{FiguraCapa}}{\color{white}\@news\@coverfoot}\twocolumn\pagecolor{white}}\makeatother
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ããã...
\newcommand\marquee{\begin{center}\noindent\MarqueeFont{\Name}\par\medskip\noindent{\large\scshape\Nome}\smallskip\noindent\issuefont{\issue}\par\hrulefill\par\end{center}}
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.
\RequirePackage{sectsty}\allsectionsfont{\centering\sffamily}
Este código é importante se você quiser que a fonte dos títulos seja diferente da fonte do texto.
\renewenvironment{theindex}{\textbf{Apresentando:\quad\quad}\renewcommand\item{}}{}
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:

actual '='quote '!'level '>'preamble"\\nopagebreak\\begin{theindex}"postamble"\\end{theindex}\\quad\\quad"item_x1   "\n \\subitem "item_x2   "\n \\subsubitem "delim_0   " ("delim_t    ")\\quad"group_skip ""lethead_prefix   "{\\bfseries "lethead_suffix   "\\hfil}\\nopagebreak\n"lethead_flag       0heading_prefix   "{\\bfseries "heading_suffix   "\\hfil}\\nopagebreak\n"headings_flag       0

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 *.nls 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:

\renewcommand{\nomeqref}[1]{\iffalse{#1}\fi}\noindent\hrulefill\\\input{Demo.nls}\noindent\hrulefill

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.


mais sobre mim
Maio 2009
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2

3
4
5
6
7
8
9

10
11
13
14
15
16

17
18
19
20
21
22
23

24
25
28
29
30

31


comentários novos
Ótima informação, recentemente usei uma charge e p...
Muito bom o seu texto mostra direção e orientaçaoh...
Fechei para textos de ficção. Não vou mais blogar ...
Eu tenho acompanhado esses casos, não só contra vo...
Lamento muito que isso tenha ocorrido. Como sabe a...
Este saite está bem melhor.
Já ia esquecendo de comentar: sou novo por aqui e ...
Essa modificação do modo de ensino da língua portu...
Chico e Caetano, respectivamente, com os "eco...
Vai sair em inglês no CBSS esta sexta-feira... :)R...
pesquisar neste blog
 
arquivos
blogs SAPO