
Mi sistema genera cartas y plantillas de LaTex; sin embargo, mi cliente tiene que completar formularios prediseñados sobre los que no tiene control. Me gustaría completar estos formularios midiendo las coordenadas en mm y luego colocando texto usando esas coordenadas en mm como punto de partida. Luego puedo imprimir directamente sobre los formularios en papel existentes.
Idealmente, me gustaría que LaTeX funcione de la siguiente manera:
\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}\\
En caso de que el formulario del cliente cambie, simplemente puedo cambiar las coordenadas. ¿Es posible este enfoque?
Respuesta1
Una opción usando TikZ. Todas las distancias se miden desde la esquina superior izquierda del papel (esto se puede modificar fácilmente para elegir otro punto de origen):
\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}
Respuesta2
Con 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}