Licenciado en Derecho y en Periodismo por la Universidad Nacional Autónoma de México (UNAM). Realizó estudios de doctorado en Historia en la Universidad Iberoamericana (UIA). Fue profesor en la Facultad de Ciencias Políticas y Sociales (FCPYS) de la UNAM por más de veinte años, a partir de 1965. Fue consejero ciudadano en el Consejo General del Instituto Federal Electoral, entre 1994 y 1996 y, candidato a gobernador del Estado de Hidalgo por el Partido de la Revolución Democrática. Se inició en el periodismo como reportero del semanario Crucero (1964), bajo la dirección de Manuel Buendía.
En 1997 fundó el suplemento de libros Hoja por Hoja. En 2002 recibió el Premio Universidad Nacional, otorgado por la UNAM, en la categoría de Creación Artística y Extensión de la Cultura. En 2008 recibió la Medalla Belisario Domínguez por su lucha constante en pro de la libertad de expresión y la justicia en México. El 28 de febrero de 2008, fue elegido miembro de número de la Academia Mexicana de la Lengua, tomó posesión de la silla XXIX el 14 de mayo de 2009.