Or by getting rid of the notion of apportionment altogether.
There's no reason, in an always-connected society in which people can telecommute to work, that people's votes should be aggregated (counted up and applied) based on their geographic proximity.
Instead, votes should be aggregated exactly at the level of governance to which they apply. For example, representatives to city government should be elected by city-wide ballot, not ward-by-ward. State reps should be elected by state-wide ballot, not district-by-district. National reps should be elected by national ballot, not state-by-state.
Forcing geographical aggregation on people just strips geographically-distributed minorities of their power. If, say, 5% of the country's population consists of radical vegetarian pacifists (RVPs) who would vote for a RVP slate, then why shouldn't 5% of the nation's representatives (give or take) come from an RVP party? Yet if those 5% are distributed evenly throughout the country, they can have no party, and no dedicated direct voice, because the current system dilutes their votes among those of people who happen to live near them.
"Let the people gerrymander themselves!"
Of course, this would require changing the system, and would reduce the power of those who control the current system. Therefore it is extremely unlikely ever to happen.
(By the way, some might object that such a change would make small states lose their voice at the national level. But everybody who thinks their state's interests are threatened by some national policy, can form a party and vote its representatives into office. I'm not saying geography shouldn't be considered at all-- I'm just saying it shouldn't be the only means of aggregating votes.)