Неожиданные размеры поля с `textpos`

Неожиданные размеры поля с `textpos`

ОБНОВЛЯТЬС тех пор я опубликовал файл стиля LaTeX, основанный на следующих находках: CXLTX Позиция Абсолют, часть (зарождающегося)Коллекция стиля CXLTX, что упрощает точное размещение однострочных текстов на странице.запросы на извлечение: потрясающе!

Я пытаюсь расположить текст с помощью CSS position: absoluteи нашелтекстпоспакет, который в принципе работает отлично. В документации говорится (стр. 4), что «поле, позиционируемое средой, \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 (десятые доли мм), а верхние края соответственно на отметках 0, 200 и 400, а нижние края коробок плотно охватывают нижние элементы, как заявлено, высота коробок по-прежнему составляет 8 мм. Как мне сделать так, чтобы они охватывали, как заявлено?

решение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придется определять заново.

Связанный контент