
Usando o estilo do teorema como no exemplo abaixo, um novo parágrafo é produzido após a Observação. Posso evitar isso? (e usando o amsthm
pacote ao mesmo tempo)?
\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}
Responder1
Não tenho certeza do que exatamente você está procurando, mas isso pode ajudá-lo
\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: Estilo de teorema usado deaqui
Responder2
Não é difícil fazer isso, mas você deve pensar duas vezes. Uma observação colocada em evidência dentro de um rem
ambienteéum parágrafo (ou mais deles) por si só, então o texto depois deledeveser um novo parágrafo.
\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}
Responder3
O comportamento ocorre porque amsthm.sty
inclui explicitamente \@endpefalse
em sua definição de \@endtheorem
: it has \def\@endtheorem{\endtrivlist\@endpefalse }
. Em 7 de maio de 1996publicarem comp.text.tex, Mark Wooding deu uma solução,
\expandafter\let\csname @endtheorem\endcsname\endtrivlist
e então escreveu: "Um método mais robusto seria dizer
\makeatletter
\toks@\expandafter{\@endtheorem\@endpetrue}
\edef\@endtheorem{\the\toks@}
\makeatother
no caso [...] de outra pessoa alterar ainda mais a macro original." Esta solução está funcionando para mim (em 2023). O código deve ficar entre \usepackage{amsthm}
e \newtheorem{...}{...}
, conforme apontado posteriormente naquele tópico por Tom Scavo citando Young U. Ryu ( que ofereceu \makeatletter\def\@endtheorem{\endtrivlist}\makeatother
como solução).