The main problem is in the usage of the OT1 encoding, instead of T1; in the former, the đ and Đ characters are constructed and the construction doesn't work well with the TX fonts.
Switching to T1 has also the benefit that words containing letters with diacritics will be hyphenated properly, which doesn't happen with OT1.
\documentclass[onecolumn,11pt]{revtex4-1}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[croatian]{babel}
\usepackage{txfonts}
(I don't recommend utf8x
, but that's a matter of opinion, mostly).
You can also consider using the newTX fonts:
\documentclass[onecolumn,11pt]{revtex4-1}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[croatian]{babel}
\usepackage{newtxtext,newtxmath}
that correct several glitches in the TX fonts. You may also prefer the TeX Gyre Termes fonts for text:
\documentclass[onecolumn,11pt]{revtex4-1}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[croatian]{babel}
\usepackage{tgtermes,newtxmath}
Here's a comparison (using TX fonts but there's practically no difference with newTX as far as the glyph shape is concerned).
