А как Вам такой вариант:
Код:
...
\newlength{\lendef}
\newenvironment{mydef}[1]{\settowidth{\lendef}{#1~---~}\addtolength{\lendef}{-\textwidth} #1~---~\begin{minipage}[t]{-\lendef}}{\end{minipage}}
Не очень, потому что (как я понимаю) он будет некорректно работать, когда определение разрывается между страницами. Я хотел как-то так:
Код:
\newlength{\lendef}
\newenvironment{mydef}[1]{\settowidth{\lendef}{#1~---~}\noindent\advance\leftskip\lendef \hskip-\lendef #1~---~}{}
но оно почему-то не работает. Когда тот же код вставляешь в тексте документа, не определяя никаких команд, работает, как надо. Чего-то тут я не знаю.