Aplicação tipográfica no LaTeX

Olá Habr! Todos aqueles que não estão muito felizes com o fascinante preenchimento dos formulários oficiais da Palavra, convido você a felicitar.

Como tudo começou?


Tudo começou com o fato de eu ter sido convidado a participar de uma conferência. Requisitos como "resumos são enviados no formato Word!" De alguma forma, eu estava acostumado a isso, mas minha paciência foi interrompida quando recebi um formulário de "opinião sobre a possibilidade de publicação aberta" no meu e-mail.

O formulário era um arquivo .doc repleto de campos típicos do fluxo de trabalho russo para preencher com a mão nos lugares certos: uma linha horizontal ao longo de toda a linha com uma explicação abaixo (por exemplo, "Nome, Posição, Assinatura"). Tudo se torna ainda mais divertido se você ativar a exibição de caracteres ocultos.

Parece que pressione insert no teclado e digite "em cima" das linhas pautadas, o que é difícil? De fato, no começo eu tentei fazer exatamente isso, mas toda essa "beleza" estava constantemente quebrando, saindo do campo e me dando nos nervos. Qual é o tamanho do texto que vale a pena tentar quebrar de 12 para 8 e depois voltar. Cerrei os dentes por cerca de 20 minutos e tomei uma decisão de ultimato para fazer tudo em látex. Como resultado, passei apenas duas noites e recebi um documento bonito e de alta qualidade!

Como chegar ao layout


!!!
Todos os nomes são fictícios. Quaisquer coincidências com pessoas, organizações e endereços reais são aleatórias.
!!!

Vamos imaginar que um funcionário do Instituto de Pesquisa de Sistemas de Controle Eletrônico K. Kuznetsov vá ao maravilhoso fórum Electronic Control Systems na maravilhosa cidade de New Vasyuki para apresentar o relatório “Computação Periférica para Sistemas de Controle”.

Preâmbulo


Em 2019, trabalhar com o látex é bastante fácil: você escolhe o editor ao seu gosto, declara o tipo de documento, carrega os pacotes necessários e não pensa mais no design do seu texto.

Desta vez, nada mudou: selecionamos o formato A4, tamanho 12 e desligamos a capa. Se não me engano, algumas dessas opções são os valores padrão para a classe do artigo. Ao mesmo tempo, conectamos o pacote que normaliza a exibição em pdf:

\documentclass[12pt,a4paper,notitlepage]{article} \usepackage{cmap} 

Então você precisa especificar a codificação do texto fonte, a família da fonte e conectar o idioma russo:

 %%% language, font, encoding \usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage[russian]{babel} 

Os campos padrão em latech são, na minha opinião, muito amplos, claramente mais amplos que os campos na forma original. Eu prefiro trabalhar com eles usando o pacote de geometria. Eu costumo usar 2 cm por todos os lados. Educadamente recusamos rodapés:

 \usepackage[top=2cm,bottom=2cm,left=2cm,right=2cm,nohead,nofoot]{geometry} 

Como usamos explicações interlineares, é necessário aumentar o espaçamento entre linhas. Isso é fácil de se fazer com \ linespread, mas eu prefiro um pacote especializado:

 \usepackage[doublespacing]{setspace} 

O logotipo da empresa estava presente no formulário enviado; no entanto, se você não precisar de imagens no documento, não poderá conectar este pacote:

 \usepackage{graphicx} 

E agora a parte divertida! Esses pacotes fizeram todo o trabalho para mim. O pacote corporativo da sociedade americana de matemática amsmath define uma macro de subconjunto que permite criar texto "subscrito" e um pacote ulem que facilita o trabalho com sublinhados:

 \usepackage{amsmath} \usepackage{ulem} 

Corpo do documento


Dirigimos o familiar começo-documento {document} e começamos a criar. Nosso design será absolutamente manual, portanto, não é necessário limpar o estilo da página:

 \pagestyle{empty} 

Se você deseja incluir um logotipo no documento
Nada complicado aqui: declaramos um objeto flutuante, usamos a macro includegraphics definida em graphicx com a largura necessária e desfrutamos a vida. Além disso, o pdflatex é um ótimo amigo do formato png.

 \begin{figure}[t!] \includegraphics[width=0.4\textwidth]{logo.png} \end{figure} 


A declaração geralmente tem um carimbo. Em um habr, vi como ele é implementado usando uma tabela com uma determinada largura. Eu não gostei dessa abordagem, pois a tabela possui parâmetros arraystretch e tabcolsep, que estragam a indentação e a formatação. Eles sempre podem ser redefinidos, mas, na minha opinião, é muito mais fácil usar o ambiente de minipage. Pessoalmente, prefiro a própria máquina a selecionar os intervalos necessários, pois isso é necessário. No entanto, nem sempre precisamos preencher a linha inteira, como, por exemplo, no caso da data. Aqui vamos usar a regra para deixar o local necessário:

 \begin{flushright} \begin{minipage}{0.4\textwidth} \centering{ \\ } \raggedright{ \hfill\hfill\hfill<<\hfill>>\\ \hrulefill~~.~.\\ } <<\hspace{0.25cm}>>~\rule{2cm}{0.25pt}~201\hspace{0.25cm}.\hfill \end{minipage} \end{flushright} 

Faça uma linha para o número do decreto também não é difícil. Parece que em alguns pacotes o símbolo "Não" é definido separadamente, mas acho irracional conectar o pacote inteiro apenas por isso:

 \begin{flushleft} \rule{2cm}{0.25pt}~N$^{\underline{\circ}}$~\rule{2cm}{0.25pt} \end{flushleft} 


Especifique o nome do documento e alinhe-o ao centro da linha:
 \begin{center}  \\     \end{center} 

Finalmente, tivemos a oportunidade de usar o pacote ulem. Para nós, o pacote é notável principalmente porque o texto sublinhado é automaticamente transferido para a próxima linha, diferentemente do sublinhado. Não sabemos quanto espaço o texto ocupará e, para que as linhas sempre atinjam as margens, adicionamos o hfill.

   (-)  << >> \uline{   << >>  . .\hfill}\\ 

Agora chegamos à parte mais interessante do documento. Implementamos explicações subscritas usando a macro underet do pacote amsmath. O único problema com essa abordagem é trabalhar no modo matemático. Consequentemente, o hfill não nos ajudará mais. Aqui temos que fazer um pouco mais de trabalho: esticar manualmente as caixas usando o hspace e organizar transferências forçadas, se necessário. Inicialmente, tentei automatizar esta parte com o pacote resizebox graphicx, mas isso não levou a resultados digeríveis. (Convido você a comentar sobre os especialistas em programação TeX).

 \\ $\underset{\text{( , ,  )}}{\text{\uline{    . . <<    >>\hspace{2.75cm}}}}$\\ \uline{    <<  >>,   1  10  2019    .  ,  , . ,  37\hfill}\\ 

A parte mais importante da declaração legalmente:

 ,   :\\ $\underset{\text{(         )}}{\text{\uline{         \hspace{4.25cm}}}}$\\     :\hfill$\underset{\text{( )}}{\text{\uline{\hspace{3.5cm} \hspace{3.5cm}}}}$\\ $\underset{\text{(     ,  )}}{\rule{\textwidth}{0.25pt}}$\\   : \uline{        \hfill}\\ 

Por fim, nomeamos especialistas responsáveis. Podemos deixar assim, mas podemos inserir nomes e posições reais, sem esquecer o hspace:

 $\underset{\text{(, , )}}{\rule{\textwidth}{0.25pt}}$\\ $\underset{\text{(, , )}}{\rule{\textwidth}{0.25pt}}$\\ $\underset{\text{(  , , )}}{\rule{\textwidth}{0.25pt}}$\\ 

Toques finais


Quase sempre, qualquer documento é dividido em partes lógicas, que são muito fáceis de organizar em uma folha, colocando o preenchimento entre elas. Retornando ao design das linhas, se não funcionar para criar uma linha uniforme nos campos, você poderá deixá-la um pouco menor e adicionar hfiil ao início da linha.

Gostaria de expressar um agradecimento especial aos autores dos artigos:
habr.com/en/post/207364 de autoria de dbarashev
habr.com/pt/post/144648 by Skiminok

Bom layout!

Texto fonte
 \documentclass[12pt,a4paper,notitlepage]{article} \usepackage{cmap} %%% language, font, encoding \usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage[russian]{babel} %%% pagesize \usepackage[top=2cm,bottom=2cm,left=2cm,right=2cm,nohead,nofoot]{geometry} %%% line spacing and indentation \usepackage[doublespacing]{setspace} %%% working with graphics \usepackage{graphicx} \usepackage{amsmath} \usepackage{ulem} \begin{document} \pagestyle{empty} \vfill \begin{flushright} \begin{minipage}{0.4\textwidth} \centering{ \\ } \raggedright{ \hfill\hfill\hfill<<\hfill>>\\ \hrulefill~~.~.\\ } <<\hspace{0.25cm}>>~\rule{2cm}{0.25pt}~201\hspace{0.25cm}.\hfill \end{minipage} \end{flushright} \vfill \begin{flushleft} \rule{2cm}{0.25pt}~N$^{\underline{\circ}}$~\rule{2cm}{0.25pt} \end{flushleft} \vfill \begin{center}  \\     \end{center} \vfill   (-)  << >> \uline{   << >>  . .\hfill}\\ \\ $\underset{\text{( , ,  )}}{\text{\uline{    . . <<    >>\hspace{2.75cm}}}}$\\ \uline{    <<  >>,   1  10  2019    .  ,  , . ,  37\hfill}\\ ,   :\\ $\underset{\text{(         )}}{\text{\uline{         \hspace{4.25cm}}}}$\\     :\hfill$\underset{\text{( )}}{\text{\uline{\hspace{3.5cm} \hspace{3.5cm}}}}$\\ $\underset{\text{(     ,  )}}{\rule{\textwidth}{0.25pt}}$\\   : \uline{        \hfill}\\    (-):\\ $\underset{\text{(, , )}}{\rule{\textwidth}{0.25pt}}$\\ $\underset{\text{(, , )}}{\rule{\textwidth}{0.25pt}}$\\ $\underset{\text{(  , , )}}{\rule{\textwidth}{0.25pt}}$\\ \vfill \end{document} 

Source: https://habr.com/ru/post/pt463965/


All Articles