I don't know OpenGL 3 that well but figures described here (http://openbve.trainsimcentral.co.uk/common/faces.png) are basics in all graphics API's? However you can use indexes with triangle_strips too. Only point of indexes is to save memory by reducing vertex calls. But if you compare rendering speed of GL_TRIANGLES and GL_TRIANGLE_STRIP, then strip is always faster.

Now that i think about it, it depends if you render the font characters continuous or 1 by 1. You actually need unique texture coordinate per vertex so continuous is out of question. I guess in this case indexes wouldn't do any good.