%20n%C3%A3o%20aparece%20na%20sa%C3%ADda.png)
Meu código:
\documentclass{beamer}
\usepackage[absolute,overlay]{textpos}
\begin{document}
\begin{frame}[fragile,t]
\frametitle{Demo}
\begin{textblock*}{\textwidth}(20mm,20mm)
\vspace{5mm}\hrule height 1mm\vspace{5mm}
\end{textblock*}
\end{frame}
\end{document}
Saída:
Por que \hrule
não aparece na saída? Como posso consertar isso?
Responder1
O textblock*
ambiente usa as propriedades do conteúdo para determinar o tamanho da caixa (mesmo que o textpos
manual afirme que a largura textpos*
é absoluta). A primitiva TeX \hrule
toma como largura a largura da caixa vertical que contém a \hrule
instrução (vejaPor que um \hrule precisa de texto ao seu redor para ser desenhado?), que está vazio neste caso.
As soluções possíveis são usar \leavevmode
(que define a largura da caixa como \textwidth
, veja a pergunta vinculada), ou especificar a largura \hrule
manualmente, ou usar o comando \rule
com uma largura especificada.
MWE abaixo, com alguns exemplos de como textpos*
lida com diferentes tipos de conteúdo para fins ilustrativos (usando a showboxes
opção de pacote).
\documentclass{beamer}
\usepackage[absolute,overlay,showboxes]{textpos}
\begin{document}
\begin{frame}[fragile,t]
\frametitle{Demo}
\color{green}\vspace{5mm}\hrule height 1mm\vspace{5mm}
\begin{textblock*}{\textwidth}(10mm,20mm)
\vspace{2mm}\hrule height 1mm\vspace{2mm}% zero width
\end{textblock*}
\begin{textblock*}{\textwidth}(10mm,30mm)
\vspace{2mm}\leavevmode\hrule height 1mm\vspace{2mm}
\end{textblock*}
\begin{textblock*}{\textwidth}(10mm,40mm)
\color{red}\vspace{2mm}\hrule height 1mm width \textwidth\vspace{2mm}
\end{textblock*}
\begin{textblock*}{\textwidth}(10mm,50mm)
\color{blue}\rule{\textwidth}{1mm}
\end{textblock*}
%further examples of textblock*
\begin{textblock*}{\textwidth}(10mm,60mm)% width of the character
\phantom{X}
\end{textblock*}
\begin{textblock*}{\textwidth}(10mm,70mm)% does not show
\end{textblock*}
\begin{textblock*}{\textwidth}(10mm,80mm)% full width
\color{black}X
\end{textblock*}
\end{frame}
\end{document}