# Add a break between theorem head and theorem body if theorem note (the #3 arg) exists

I'm using the amsthm package for theorem style setting. I want the style like:

Theorem 1 A triangle ...

Theorem 2 (someone)

A square ...

that is, when the theorem includes a note, the body should begin with a new line after the theorem head.

-

\documentclass{article}
\usepackage{ntheorem}
\usepackage{marginnote}
\makeatletter
\newtheoremstyle{optbreak}%
{\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}% from plain style
##1\ ##2\ (##3)\theorem@separator}\hbox{\strut}}}]} % from break style
\makeatother
\theoremstyle{optbreak}
\newtheorem{thm}{Theorem}
\begin{document}
\begin{thm}
blah blah
\end{thm}
\begin{thm}[Opt]
blah blah
\end{thm}
\end{document}

-