To handle this put the middle name in the Nickname field. Then use the [person:casual] field option to show the nickname as the person's usual name.
Using John Quincy Public in your example, enter Given = John Quincy, Surname = Public, Nickname = Quincy.
Then it will show:
[person] = John Quincy Public
[person:first] = John
[person:given] = John Qunicy
[person:casual] = Quincy
[person:casual:last] = Quincy Public
With Quincy as the nickname, the default sentences that use [person] will print John Quincy Public for the first fact, He for the second and third facts, then Quincy for the fourth fact. RM will then use two "He" pronouns, then Quincy, alternate this way through the person's narrative.