如何使用 \let\par\relax 禁用我的环境中的段落?

如何使用 \let\par\relax 禁用我的环境中的段落?

我想禁用论文摘要中的自动段落,该段落称为resumo。关于问题如何在空行处禁用新段落?他们说我可以用来\let\par\relax禁用段落,但如果我这样做:

\documentclass{abntex2}

% How to disable automatic indentation on new paragraphs?
% https://tex.stackexchange.com/questions/14375/how-to-disable-automatic-indentation
%
% Changing font size in an example environment
% https://tex.stackexchange.com/questions/123528/changing-font-size-in-an-example
\expandafter\def\expandafter\resumo\expandafter{\resumo\setlength{\parindent}{0pt}\let\par\relax}

\begin{document}

\begin{resumo}
    O texto do resumo deve ser digitado, em um único bloco,
    sem espaço de parágrafo. O resumo deve ser significativo,
    composto de uma sequência de frases concisas, afirmativas
    e não de uma enumeração de tópicos. Não deve conter
    citações.

    Deve usar o verbo na voz passiva. Abaixo do resumo,
    deve-se informar as palavras-chave (palavras ou
    expressões significativas retiradas do texto) ou, termos
    retirados de thesaurus da área.
\end{resumo}

\end{document}

我遇到了一堆错误:

Redoing nameref's sectioning
Redoing nameref's label
LaTeX Info: Redefining \nameref on input line 7.
LaTeX Info: Redefining \ref on input line 7.
LaTeX Info: Redefining \pageref on input line 7.
LaTeX Info: Redefining \nameref on input line 7.
\myptabbox=\box47
\myptabboxwidth=\skip263

! LaTeX Error: Something's wrong--perhaps a missing \item.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.11     \end{resumo}

Try typing  <return>  to proceed.
If that doesn't work, type  X <return>  to quit.


! LaTeX Error: Something's wrong--perhaps a missing \item.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.11     \end{resumo}

Try typing  <return>  to proceed.
If that doesn't work, type  X <return>  to quit.

好吧,尽管有错误,但以下段落还是被删除了:

在此处输入图片描述


相关问题:

  1. 自动向环境中的每个段落添加内容
  2. 几乎每个段落都添加悬挂缩进的最佳方法
  3. \the\everypar 起什么作用?
  4. 如何将一个命令拆分为几行并让 LaTeX 将其读取为一行?
  5. 为什么 \everypar 不起作用?
  6. 从环境中删除 par 缩进
  7. 如何删除所有段落的缩进?
  8. 删除文章类摘要中的段落缩进
  9. 引用环境后自动不缩进

答案1

环境resumo有一个可选参数,因此

\expandafter\def\expandafter\resumo\expandafter{\resumo\setlength{\parindent}{0pt}\let\par\relax}

从一开始就是错误的。

无论如何,您需要在某个地方结束该段落,但这无法做到,因为它\par被重新定义为不执行任何操作。

我认为你应该避免这样的伎俩。但下面是正确做法。

\documentclass{abntex2}
\usepackage{xpatch}

\xapptocmd{\resumo}{\setlength{\parindent}{0pt}\let\par\relax}{}{}
\xpretocmd{\endresumo}{\endgraf}{}{}

\begin{document}

\begin{resumo}
    O texto do resumo deve ser digitado, em um único bloco,
    sem espaço de parágrafo. O resumo deve ser significativo,
    composto de uma sequência de frases concisas, afirmativas
    e não de uma enumeração de tópicos. Não deve conter
    citações.

    Deve usar o verbo na voz passiva. Abaixo do resumo,
    deve-se informar as palavras-chave (palavras ou
    expressões significativas retiradas do texto) ou, termos
    retirados de thesaurus da área.
\end{resumo}

\end{document}

答案2

问题是您必须先恢复,\par然后才能结束环境。另外,我不相信您的\expandafter重新定义,但我知道它\let会起作用。

\documentclass{abntex2}

\let\oldresumo=\resumo
\def\resumo{\oldresumo\bgroup
  \setlength{\parindent}{0pt}%
  \let\par\relax}

\let\oldendresumo=\endresumo
\def\endresumo{\egroup\oldendresumo}

\begin{document}

\begin{resumo}
    O texto do resumo deve ser digitado, em um único bloco,
    sem espaço de parágrafo. O resumo deve ser significativo,
    composto de uma sequência de frases concisas, afirmativas
    e não de uma enumeração de tópicos. Não deve conter
    citações.

    Deve usar o verbo na voz passiva. Abaixo do resumo,
    deve-se informar as palavras-chave (palavras ou
    expressões significativas retiradas do texto) ou, termos
    retirados de thesaurus da área.
\end{resumo}

\end{document}

答案3

\documentclass{abntex2}
\let\parOrig\par
\renewcommand\resumo[1][\resumoname]{%
    \PRIVATEbookmarkthis{#1}
    \renewcommand{\abstractnamefont}{\chaptitlefont}
    \renewcommand{\abstractname}{\ABNTEXchapterupperifneeded{#1}}
    \abstract\let\par\relax}
\renewcommand\endresumo{\let\par\parOrig
    \endabstract\PRIVATEclearpageifneeded}

\begin{document}

    \begin{resumo}
        O texto do resumo deve ser digitado, em um único bloco,
        sem espaço de parágrafo. O resumo deve ser significativo,
        composto de uma sequência de frases concisas, afirmativas
        e não de uma enumeração de tópicos. Não deve conter
        citações.

        Deve usar o verbo na voz passiva. Abaixo do resumo,
        deve-se informar as palavras-chave (palavras ou
        expressões significativas retiradas do texto) ou, termos
        retirados de thesaurus da área.
    \end{resumo}

\end{document}

在此处输入图片描述

相关内容