
Meu sistema gera cartas e modelos em LaTex; no entanto, meu cliente precisa preencher formulários pré-construídos sobre os quais ele não tem controle. Gostaria de preencher esses formulários medindo as coordenadas em mm e, em seguida, colocando o texto usando essas coordenadas em mm como ponto de partida. Posso então imprimir diretamente sobre os formulários em papel existentes.
Idealmente, gostaria que o LaTeX funcionasse como abaixo:
\command{x coordinate}{y coordinate}{text1}\\
\command{x coordinate}{y coordinate}{text2}\\
\command{x coordinate}{y coordinate}{text3}\\
\command{x coordinate}{y coordinate}{text4}\\
\command{x coordinate}{y coordinate}{text5}\\
\command{x coordinate}{y coordinate}{text6}\\
Caso o formulário do cliente mude, posso apenas alterar as coordenadas. Essa abordagem é possível?
Responder1
Uma opção usando TikZ. Todas as distâncias são medidas a partir do canto superior esquerdo do papel (isso pode ser facilmente modificado para escolher outro ponto de origem):
\documentclass{article}
\usepackage{tikz}
\newcommand\PlaceText[3]{%
\begin{tikzpicture}[remember picture,overlay]
\node[outer sep=0pt,inner sep=0pt,anchor=south west]
at ([xshift=#1,yshift=-#2]current page.north west) {#3};
\end{tikzpicture}%
}
\begin{document}
\PlaceText{20mm}{30mm}{First text}
\PlaceText{50mm}{30mm}{Second text}
\PlaceText{60mm}{70mm}{Third text}
\end{document}
Responder2
Com textpos
:
\documentclass[a4paper]{article}
\usepackage[overlay,absolute]{textpos}
\newcommand\PlaceText[3]{%
\begin{textblock*}{10in}(#1,#2) %% change width of box from 10in as you wish
#3
\end{textblock*}
}%
\textblockorigin{-5mm}{0mm} %% Default origin top left corner and it can be changed in this line
\begin{document}
\PlaceText{0mm}{0mm}{Origin}
\PlaceText{20mm}{30mm}{First text}
\PlaceText{50mm}{30mm}{Second text}
\PlaceText{60mm}{70mm}{Third text}
\end{document}