a4541e3af31eb33f4559d56e069d1150f332194b was the first commit that broke the ipython printing for me, because it started using unicode unconditionally while my terminal does not support it. First reaction to make it work again was to revert the commit and thus reintroduce the sniffing. It's unfortunate that ipython does not provide any clean API for checking what kind of printing is being used. For the unicode printing, we can leave it set to `None` and rely on the code that is already in the pretty printer to check if unicode is supported (although this won't work for kernel-based console, ipython/ipython#3187). For the latex printing, there is little sense to lunch a latex instance to produce nice pngs for every object being printed when these pngs are not going to be used (for a console). Maybe we can check that we are in the console in the `if` block, as suggested in your link, and leave any other case in the `else` block. But really any sugestion to improve this whole interaction with ipython is welcome. Perhaps what we really need to start implementing is the rich display described here: http://ipython.org/ipython-doc/stable/config/integrating.html?highlight=repr