ATUALIZARdesde então, publiquei um arquivo de estilo LaTeX com base nas descobertas abaixo, Posição CXLTX Absoluta, parte do (incipiente)Coleção Estilo CXLTX, o que facilita o posicionamento preciso de linhas simples na página.solicitações pull: incrível!
estou tentando posicionar o texto à la CSS position: absolute
e encontrei oposição de textopacote que basicamente funciona muito bem. na documentação dizem (p4) que "a caixa que está posicionada pelo \textblock
ambiente se ajusta perfeitamente ao bloco de texto (ou outro material) dentro dela`, mas quando tento
\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}
o que eu recebo é
portanto, embora as bordas direitas das caixas estejam posicionadas corretamente em 500 (décimos mm) e as bordas superiores corretamente em, respectivamente, 0, 200 e 400, e as bordas inferiores das caixas envolvam firmemente os descendentes conforme anunciado , as caixas ainda têm 8 mm de altura - como posso embrulhá-las conforme anunciado?
Responder1
agora essa foi fácil... às vezes escrever uma pergunta leva você a resolver um problema. para constar:
eu tinha assumido incorretamente que colocar algo em um textpos
textblock
seria um pouco como colocar coisas em uma página ou em um minipage
, ou seja, 'pular' parágrafo seria silenciosamente omitido.
não tão.
primeiro, configurando
\setlength{\parskip}{0pt}
trouxe redução da altura das caixas; então,
\setlength{\parskip}{-\baselineskip}
rendeu isso:
o que é meio contra-intuitivo - quero dizer,zeroespaço entre parágrafosdeveigual a 'zero espaço em branco acima do parágrafo', não?
Observaçãono mundo real, você não gostaria de definir \parskip
globalmente o valor surpreendente mostrado aqui, mas sim fazê-lo aparecer localmente, dentro dos textblock
ambientes (e talvez lançá-lo como uma nova macro).
Atualizarcomo acompanhamento, defini uma macro útil que simplifica o posicionamento absoluto do texto. aqui está:
\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}%
}
agora, quando você fizer
\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}
(dentro da mesma configuração de documento mostrada na pergunta acima) você obtém
onde o gX
no canto inferior esquerdo demonstra que o texto foi realmente posicionado corretamente (a linha de base da borda direita X
é ( 30mm, 40mm )
medida a partir da borda do documento).
observe que a escora conforme definida aqui tem uma largura visível para fins de demonstração; além disso, sua altura e profundidade foram cuidadosamente adaptadas para corresponder às dimensões específicas da fonte usada aqui – quando você muda para outra fonte, é provável que ambas \textposstrutheight
e - depth
tenham que ser redefinidas.