
Mein System generiert LaTex-Briefe und -Vorlagen. Mein Kunde muss jedoch vorgefertigte Formulare ausfüllen, auf die er keinen Einfluss hat. Ich möchte diese Formulare ausfüllen, indem ich die Koordinaten in mm messe und dann den Text mit diesen Koordinaten in mm als Ausgangspunkt platziere. Ich kann dann direkt auf die vorhandenen Papierformulare drucken.
Idealerweise hätte ich gerne, dass LaTeX ungefähr wie folgt funktioniert:
\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}\\
Bei einer Änderung des Kundenformulars kann ich einfach die Koordinaten ändern. Ist diese Vorgehensweise möglich?
Antwort1
Eine Option mit TikZ. Alle Abstände werden von der oberen linken Ecke des Papiers aus gemessen (dies kann leicht geändert werden, um einen anderen Ursprungspunkt auszuwählen):
\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}
Antwort2
Mit 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}