# Macro for \AddToPictureShipoutFG when editing pdf with pdfpages

using pdfpages as a quick and dirty pdf annotation tool to fill in a pdf based form. I do this often and am really keen to try and stick to a linux environment.

There are a lot of entries so I'd like to use a macro to summarize the code

\AddToShipoutPictureFG{\put(x_coord,y_coord){content}} command with a macro. I've tried lots of variants on the \def below but keep getting errors. Any thoughts very appreciated. (including any other routes to take with this)

An MWE looks a little like the following with somepdf in the \includepdf command replaced by the pdf form in question.

\documentclass[10pt]{article}
\usepackage{grffile}
\usepackage{eso-pic}
\usepackage{pdfpages}

\begin{document}
\pd(150,150,{Rhubarb and crumble})
\includepdf[pages=1-1]{"/home/me/somepdf"}
\end{document}

-
Remove the \expandafter. –  Ulrike Fischer Jan 21 '13 at 16:21

Your current definition of \pd includes an incorrect usage of \put. Put is defined to take 3 arguments in a specific delimited form (from latex.ltx):

\long\gdef\put(#1,#2)#3{%
\@killglue\raise#2\unitlength
\hb@xt@\z@{\kern#1\unitlength #3\hss}%
\ignorespaces}


Using \pd(<x>,<y>,<stuff>) expands to

\AddToShipoutPictureFG{\put(<x>,<y>)\expandafter{<stuff>}}


where \put grabs <x> as #1, <y> as #2 and \expandafter as #3. Perhaps the following definition of \pd is what you're after:

\def\pd(#1,#2,#3){% \pd(<x>,<y>,<stuff>)


which will appropriately pass #3 to \put.

Here's a complete minimal example showing the difference:

\documentclass{article}
\usepackage{eso-pic,pdfpages}% http://ctan.org/pkg/{eso-pic,pdfpages}
\makeatletter
\makeatother
\begin{document}

perfect thank you. why does the \putstuff need to be \protected? thanks –  Tahnoon Pasha Jan 21 '13 at 21:39
@TahnoonPasha: Some commands should not be expanded until the actual typesetting occurs. In this case, \color. See a short discussion on this topic in Minimal \protected@edef example. –  Werner Jan 21 '13 at 23:26
Hi @Werner, having tried the macro, it seems to have a problem with multiple form inputs. So if I use \pdA(50,50,{Rhubarb and Custard}) and then \pdA(150,150,{Crumble topping}) then I get "Crumble topping" for both. Do you know what is going wrong here? –  Tahnoon Pasha Jan 22 '13 at 6:15