`textpos`의 예상치 못한 상자 크기

`textpos`의 예상치 못한 상자 크기

업데이트나는 이후 아래 발견을 기반으로 LaTeX 스타일 파일을 게시했습니다. CXLTX 위치 절대, (초기)의 일부CXLTX 스타일 컬렉션을 사용하면 페이지에 한 줄짜리 항목을 정확하게 배치하는 것이 더 쉬워집니다.풀 리퀘스트: 대단해요!

position: absoluteCSS로 텍스트를 배치 하려고 하는데텍스트포스기본적으로 훌륭하게 작동하는 패키지. 문서에서는 (p4) "환경에 의해 배치된 상자가 \textblock그 내부의 텍스트 블록(또는 기타 자료)에 딱 맞습니다."라고 말하지만, 내가 시도하면

\documentclass[a5paper]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setlength{\parskip}{\baselineskip}
\setlength{\parindent}{0pt}

\usepackage[absolute]{textpos}
\setlength{\TPHorizModule}{0.1mm}
\setlength{\TPVertModule}{0.1mm}
\textblockorigin{0mm}{0mm}

% not needed, but makes for easier measuring:
\usepackage[top-left]{pagegrid}

\begin{document}

\TPshowboxestrue
\begin{textblock}{150}[1,0](500,000)\flushright helo\end{textblock}
\begin{textblock}{150}[1,0](500,200)\flushright world\end{textblock}
\begin{textblock}{150}[1,0](500,400)\flushright gX\end{textblock}
\begin{textblock}{150}[1,0](700,400)\flushright .\end{textblock}

\end{document}


\setlength{\parskip}{0pt}

\setlength{\parskip}{-\baselineskip}

내가 얻는 것은

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

따라서 상자의 오른쪽 가장자리는 500(10분의 1mm)에 올바르게 위치하고 위쪽 가장자리는 각각 0, 200 및 400에 정확하게 위치하며 상자의 아래쪽 가장자리는 광고된 대로 하강기 주위를 단단히 감싸줍니다. , 상자 높이가 여전히 8mm입니다. 광고된 대로 포장하려면 어떻게 해야 하나요?

답변1

지금은 쉬운 문제였습니다... 때로는 질문을 적으면 문제 해결로 이어질 때도 있습니다. 기록을 위해:

textpos textblock나는 무언가를 에 넣는 것이 페이지나 에 물건을 넣는 것과 약간 비슷할 것이라고 잘못 가정했습니다 minipage. 즉, '건너뛰기' 문단이 자동으로 제거될 것입니다.

별로.

먼저, 설정

\setlength{\parskip}{0pt}

상자 높이를 줄였습니다. 그 다음에,

\setlength{\parskip}{-\baselineskip}

이것을 산출했습니다 :

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

이는 일종의 반직관적입니다. 즉,단락 사이의 공간~해야 한다'문단 위 공백 없음'과 같습니다. 아니요?

메모실제 세계에서는 \parskip여기에 표시된 놀라운 값을 전역적으로 설정하는 것이 아니라 환경 내에서 로컬로 표시되도록 할 수 있습니다 textblock(그리고 이를 새 매크로로 캐스팅할 수도 있음).

업데이트후속 작업으로 텍스트의 절대 위치 지정을 단순화하는 편리한 매크로를 정의했습니다. 여기있어:

\newdimen\textposstrutheight
\newdimen\textposstrutwidth
\newdimen\textposstrutdepth
\newdimen\textposstrutlength
\textposstrutwidth=0.5mm
\textposstrutheight=2.7mm
\textposstrutdepth=2.8mm
\textposstrutlength=\dimexpr\textposstrutheight+\textposstrutdepth
\newcommand{\textposstrut}{{\color{blue}\vrule height\textposstrutheight width\textposstrutwidth depth\textposstrutdepth}}

\newcommand{\placeflushright}[4]{%
  \begin{textblock}{#1}[1,0.5](#2,#3)\flushright{\textposstrut}#4\end{textblock}%
  }

지금, 네가 그럴 때

\begin{textblock}{150}[1,0.5](500,000)\flushright\textposstrut helo\end{textblock}
\begin{textblock}{150}[1,0.5](500,200)\flushright\textposstrut world\end{textblock}
\begin{textblock}{150}[1,0.5](500,400)\flushright\textposstrut gX\end{textblock}
\begin{textblock}{150}[1,0.5](700,400)\flushright\textposstrut .\end{textblock}

\placeflushright{150}{300}{400}{gX}

(위의 질문에 표시된 것과 동일한 문서 설정 내에서)

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

여기서 왼쪽 하단의 는 텍스트가 실제로 올바르게 배치되었음을 보여줍니다( 문서 가장자리에서 측정 한 gX오른쪽 가장자리의 기준선 ).X( 30mm, 40mm )

여기에 정의된 버팀대는 시연을 위해 눈에 보이는 너비를 가지고 있습니다. 또한 여기에 사용된 특정 글꼴 크기와 일치하도록 높이와 깊이가 세심하게 조정되었습니다. 다른 글꼴로 전환하면 \textposstrutheight및 -를 모두 depth다시 정의해야 할 가능성이 있습니다.

관련 정보