What I've done for my map is, it's bulky (it requires an extra copy of each pickupable item) but it doesn't require any free inventory slots:
Create a copy of a tome, take away it's bonuses (custom ability - no bonus), then make that item look like your item (description, model, etc.), make a trigger that detects the tome pickup, if your conditions are met (checking free inventory space, if needed) then create your "real" item in a inventory slot. If conditions AREN'T met, then you have to recreate the tome on the ground.
Using this method, you can create items that properly stack (no extra slots required), and you can do ANY check that you like (EG: does the unit have a right hand item, then can't pick up any right hand items, etc.)

Even though I think that the Wc3 engine should have made it easier to do.
Hope this helps
