\hrule innerhalb von \textblock (aus dem Textpos-Paket) erscheint nicht in der Ausgabe

\hrule innerhalb von \textblock (aus dem Textpos-Paket) erscheint nicht in der Ausgabe

Mein Code:

\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}

Ausgabe:

Bildbeschreibung hier eingeben

Warum erscheint das \hrulenicht in der Ausgabe? Wie kann ich das Problem beheben?

Antwort1

Die textblock*Umgebung verwendet die Eigenschaften des Inhalts, um die Größe der Box zu bestimmen (obwohl im textposHandbuch steht, dass die Breite textpos*absolut ist). Das TeX-Primitiv \hrulenimmt als Breite die Breite der vertikalen Box an, die die \hruleAnweisung umschließt (sieheWarum muss eine \hrule von Text umgeben sein, damit sie gezeichnet werden kann?), das in diesem Fall leer ist.

Mögliche Lösungen sind die Verwendung von \leavevmode(dadurch wird die Breite des Felds auf festgelegt \textwidth, siehe die verknüpfte Frage), die manuelle Angabe der Breite \hruleoder die Verwendung des Befehls \rulemit einer angegebenen Breite.

MWE unten mit einigen Beispielen zur textpos*Handhabung unterschiedlicher Inhaltstypen zu Illustrationszwecken (unter Verwendung der showboxesPaketoption).

\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}

Bildbeschreibung hier eingeben

verwandte Informationen