LaTeX

Como Ajustar o Tamanho da Fonte em Caixas no LaTeX

Você já se deparou com a necessidade de criar uma caixa de texto com dimensões específicas no LaTeX e, ao mesmo tempo, garantir que o texto dentro dela se ajuste para preencher todo o espaço disponível, aumentando ou diminuindo automaticamente o tamanho da fonte? Se sim, você está no lugar certo! (tipos de caixas no LaTeX)

Por isso, neste artigo, vamos explorar uma solução simples e eficaz para essa situação utilizando o pacote environ, que oferece o ambiente fitbox.

O ambiente fitbox permite definir uma caixa com largura e altura personalizadas, enquanto o conteúdo dentro dela é ajustado automaticamente para ocupar todo o espaço disponível. Vejamos como isso é feito.

\begin{fitbox}{largura}{altura}
  conteúdo
\end{fitbox}

Onde em {largura} informamos a largura da caixa e em {altura} a altura da caixa.

Exemplo do ajuste da fonte do texto dentro da caixa

Só para exemplificar, definimos uma caixa de texto com 7cm de largura e 300pt de altura (unidades de medidas do LaTeX). O conteúdo dentro dela será automaticamente ajustado para preencher todo o espaço disponível, aumentando ou diminuindo o tamanho da fonte conforme necessário.

\documentclass{article}
\usepackage{lmodern}
\usepackage{environ}
\usepackage{lipsum}

\newdimen\fontdim
\newdimen\upperfontdim
\newdimen\lowerfontdim
\newif\ifmoreiterations
\fontdim12pt\makeatletter
\newEnviron{fitbox}[2]{ %
  \def\buildbox{ %
    \setbox0\vbox{\hbox{\minipage{#1}%
      \fontsize{\fontdim}{1.2\fontdim}%
      \selectfont%
      \stuff%
    \endminipage}}%
    \dimen@\ht0
    \advance\dimen@\dp0
  }
  \def\stuff{\BODY}% Armazena o corpo do ambiente
  \buildbox
  % Calcular limites superior e inferior
  \ifdim\dimen@>#2
    \loop
      \fontdim.5\fontdim % Reduz o tamanho da fonte pela metade
      \buildbox
    \ifdim\dimen@<#2 \repeat
    \lowerfontdim\fontdim
    \upperfontdim2\fontdim
    \fontdim1.5\fontdim
  \else
    \loop
      \fontdim2\fontdim % Dobra o tamanho da fonte
      \buildbox
    \ifdim\dimen@>#2 \repeat
    \upperfontdim\fontdim
    \lowerfontdim.5\fontdim
    \fontdim.75\fontdim
  \fi
  % Tenta encontrar o tamanho ideal
  \loop
    %\message{Bounds: \the\lowerfontdim\space
    %         \the\fontdim\space \the\upperfontdim^^J}
    \buildbox
    \ifdim\dimen@<#2
      \moreiterationstrue
      \upperfontdim\fontdim
      \advance\fontdim\lowerfontdim
      \fontdim.5\fontdim
    \else
      \advance\dimen@-#2
      \ifdim\dimen@>10pt
        \lowerfontdim\fontdim
        \advance\fontdim\upperfontdim
        \fontdim.5\fontdim
        \dimen@\upperfontdim
        \advance\dimen@-\lowerfontdim
        \ifdim\dimen@>.2pt
          \moreiterationsfalse
        \else
          \moreiterationstrue
        \fi
      \else
        \moreiterationsfalse
      \fi
    \fi
  \ifmoreiterations \repeat
  \box0% Escreve o conteúdo
}
\makeatother

\begin{document}
    \lipsum[1]
    
    \begin{fitbox}{7cm}{300pt}
      \lipsum[1-1]
    \end{fitbox}
    
    \lipsum[2]
\end{document}
texto central sobre como Ajustar o Tamanho da Fonte em Caixas no LaTeX ajustado para caber dentro de uma caixa de 7cm x 300pt com o tamanho do texto ajustado para caber na caixa

Em conclusão, dominar técnicas para ajustar o tamanho da fonte em caixas no LaTeX é fundamental para garantir uma apresentação visualmente atraente e profissional de documentos. Ao explorar o ambiente fitbox do pacote environ, agora você pode criar caixas de texto com dimensões personalizadas, enquanto o conteúdo se ajusta dinamicamente para preencher o espaço disponível. Essa habilidade é especialmente útil em situações em que é necessário manter uma estética consistente e legível, independentemente das dimensões da caixa. Com essas técnicas em seu arsenal, você está preparado para produzir documentos LaTeX de alta qualidade e visualmente impactantes.

Você também pode gostar...