\textblock 내의 \hrule(textpos 패키지에서)이 출력에 표시되지 않습니다.

\textblock 내의 \hrule(textpos 패키지에서)이 출력에 표시되지 않습니다.

내 코드:

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

산출:

여기에 이미지 설명을 입력하세요

\hrule출력에 이 표시되지 않는 이유는 무엇입니까 ? 어떻게 해결할 수 있나요?

답변1

환경 textblock*에서는 콘텐츠의 속성을 사용하여 상자의 크기를 결정합니다(설명서 textpos에 너비가 textpos*절대적이라고 명시되어 있음에도 불구하고). TeX 프리미티브는 \hrule텍스트를 둘러싸는 수직 상자의 너비를 너비로 사용합니다.\hrule (참조:\hrule을 그리려면 왜 주위에 텍스트가 필요합니까?), 이 경우에는 비어 있습니다.

\leavevmode가능한 해결책은 (상자 너비를 로 설정 , 링크된 질문 참조)을 사용 \textwidth하거나 수동으로 너비를 지정 하거나 지정된 너비로 \hrule명령을 사용하는 것입니다 .\rule

textpos*아래 MWE에는 설명 목적으로 다양한 유형의 콘텐츠를 처리하는 방법에 대한 몇 가지 예가 나와 있습니다 ( showboxes패키지 옵션 사용).

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

여기에 이미지 설명을 입력하세요

관련 정보