The problem is that there is not just one unique "correct" primitive unit cell. There are many possible choices.
In crystallography, you only have a few cases of non-primitive conventional unit cells. Remember that only primitive translations play a role. Of the 14 Bravais lattices, 7 are primitive anyways. Possible choices for the remaining 7 are:
- Face centered cubic (FCC): A primitive cell is obtained by taking the vectors from the corner to the adjacent face centers. (Also works for face-centered tetragonal and orthorhombic).
- Body centered cubic (BCC): pick two edges of the conventional basis vectors (edges of the cube) and from the origin to the body center (also works for body-centered orthorhombic)
- End centered: pick a and c and replace b by the vector from the origin to the face center. Or pick b and c and replace a by face center (monoclinic and orthorhombic)
I guess the systematic way is as Sam_bell pointed out:
(1) Select the origin. There is not necessarily an atom at the origin.
(2) Find all primitive translation vectors of the lattice. (Screw axes, glide planes, mirror operations etc. are not primitive translations!)
(3) From these, retain only the nearest neighbors.
(4) Pick any 3 provided that they are not all in the same plane.
(5) check the volume of your unit cell to make sure. Should be 1/4 of the FCC cubic volume or 1/2 of the conventional volume for the other non-primitives.
Or ask a computer
http://www.cryst.ehu.es/cryst/celltran.html
A unique primitive unit cell is the Wigner-Seitz cell. However, that often has a complicated shape (rather than just a parallelepiped you get with primitive unit cells spanned by 3 vectors.
http://en.wikipedia.org/wiki/Wigner–Seitz_cell