Con pre no te va a servir ni text-ident , pq es un <pre> y por tanto no se trata de un parrafo normal.
Se aconseja de SIEMPRE no usar tabuladores para identar código, usar siempre ESPACIOS. Hay editores de texto que identan al teclear un TAB mediante X espacios. X espacios son configurables, y recomiendan que se idente por 4 espacios (estandar de codificacion).
Solucion 1 y Unica: Cambia los Tabs por espacios.
Te mando un fragmento extraido del la especificacion de HTML 4.01 de la web
www.w3.org: Cita: El carácter de tabulación horizontal
Los agentes de usuario visuales suelen interpretar el carácter de tabulación horizontal (decimal 9 en [ISO10646] y [ISO88591]) como el número más pequeño distinto de cero de espacios necesarios para alinear los caracteres con las paradas del tabulador, colocadas cada 8 caracteres. Recomendamos encarecidamente no utilizar tabuladores horizontales en texto preformateado, ya que al editar es muy normal fijar el espacio de tabulación en valores diferentes, lo cual conduce a documentos mal alineados.
Los agentes de usuario, quiere decir los navegadores, y el tabulador esta definido como 8 espacios en blanco. En el navegador lo podrias cambiar, pero en los demás usuarios? Amigo mio sólo te queda una solución: pasar tabuladores a espacios.