Can't overwrite Unicode character definition

You can use the newunicodechar package, but not with the utf8x option to inputenc:

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\newunicodechar{〈}{\langle}

\begin{document}
$〈$
\end{document}

If you want to use ucs and utf8x (which I can't recommend), you have to load ucs with the Postscript option. The definition associated to U+2329 is however faulty, because it produces nothing even when loading pifont, that seems required. I provide a workaround.

\documentclass[11pt]{article}
\usepackage[postscript]{ucs}
\usepackage[utf8x]{inputenc}

\makeatletter
\AtBeginDocument{%
  \sbox0{\let\Pisymbol\relax〈}% this loads uni-35.def and defines the character
  \@namedef{u-postscript-9001}#1{\langle}% we can now change the definition
}
\makeatother

\begin{document}

$a〈b$
\end{document}

Tags:

Unicode