定理環境の後に新しい段落を禁止する

定理環境の後に新しい段落を禁止する

以下の例のように定理スタイルを使用すると、備考の後に新しい段落が生成されます。これを防ぐことはできますか? (amsthm同時にパッケージを使用します)?

\documentclass[english]{scrartcl}  

\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}

 \usepackage{amsthm}

\usepackage{blindtext}

\newtheorem{rem}{Remark} 

\begin{document}


\begin{rem}
\blindtext
\end{rem}
\blindtext  % I want that the text begins aligned left, i.e. no new 
 % paragraph


\end{document} 

問題の例

答え1

あなたが何を探しているのか正確にはわかりませんが、これは役に立つかもしれません

\documentclass[english]{scrartcl}  

\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}

 \usepackage{amsthm}

\usepackage{blindtext}


\newtheoremstyle{mystyle}
  {\topsep} % Space above
  {0pt} % Space below
  {\itshape} % Body font
  {} % Indent amount
  {\bfseries} % Theorem head font
  {.} % Punctuation after theorem head
  {.5em} % Space after theorem head
  {} % Theorem head spec (can be left empty, meaning `normal')

\theoremstyle{mystyle}
\newtheorem{rem}{Remark} 

\begin{document}


\begin{rem}
\blindtext
\end{rem}
\noindent\blindtext


\end{document}

PS: 定理スタイルを使用ここ

答え2

難しいことではありませんが、よく考えてください。rem環境内で証拠として提示された発言段落(または段落以上)を単独で作成し、その後のテキストをすべき新しい段落になります。

\documentclass{article}

\usepackage{amsthm}

\newtheorem{reminner}{Remark}

\makeatletter
\newenvironment{rem}
  {\reminner}
  {\endreminner\@endpetrue}
\makeatother

\begin{document}

\begin{rem}
A remarkable text.
\end{rem}
Some text that shouldn't start a new paragraph. But why not?

\begin{rem}
Another remarkable text.
\end{rem}

Some text that will start a new paragraph.

\end{document}

ここに画像の説明を入力してください

答え3

この動作は、の定義に がamsthm.sty明示的に含まれているために発生します。\@endpefalse\@endtheorem\def\@endtheorem{\endtrivlist\@endpefalse }ために発生します。 1996年5月7日役職comp.text.texで、Mark Woodingが解決策を提示しました。

\expandafter\let\csname @endtheorem\endcsname\endtrivlist

そしてこう書いている。「もっと強力な方法はこう言うことだ

\makeatletter
\toks@\expandafter{\@endtheorem\@endpetrue}
\edef\@endtheorem{\the\toks@}
\makeatother

「[...] 他の誰かが元のマクロをさらに変更した場合に備えて」。この解決策は私の場合(2023年現在)は機能しています。コードは と の間にある必要があります。これ\usepackage{amsthm}は、そのスレッドの後半で、Tom Scavo が Young U. Ryu(解決策として提案した人物)\newtheorem{...}{...}を引用して指摘しているとおりです。\makeatletter\def\@endtheorem{\endtrivlist}\makeatother

関連情報