I want a macro to be followed by a paragraph without indentation, even if the source includes a space before the next non-space character.
This is fine if the macro takes no argument, but I do not understand how it should be done if it does take an argument.
In the example below, \isbool is just a control. \istable{} and \istab{} both produce the correct output, but I do not think either does so in a reasonable way.
\documentclass{article} \makeatletter \def\NoIndent#1{\noindent#1} \def\istable#1{#1\par\NoIndent} \def\isbool{b\par\noindent} % sylwad david carlisle: https://tex.stackexchange.com/questions/329949/ignore-par-after-the-end-of-a-macro-then-insert-noindent#comment808392_329949 \def\istab#1{#1\@afterindentfalse\@afterheading\par} \makeatother \begin{document} \istable{g} S \hrule \isbool S \hrule \istab{t} S \hrule \end{document} I'm pretty sure I shouldn't be using \noindent. I'm also fairly sure I shouldn't be using \@afterheading for a non-heading. I know something like this can probably be done with \futurelet or expl3 peeking, but I'm not confident that is the right way to do this in LaTeX.
Ref.: Ignore \par after the end of a macro; THEN insert \noindent is the source of David's comment, but seems specific to headings. The linked code by egreg seems focused on ignoring paragraphs.
However, most of the posts I found are either about retaining or adding spaces following macros, or else about getting rid of them following environments.
Nonetheless, I imagine this is a duplicate of something I've just failed to find.



macros, but there doesn't seem to be a tag about writing macros as opposed to one for tex's macro processor. there is nocommandorcommandstag, but only some specific ones which don't apply.\def\shinynewmacro#1{\par\noindent\ignorespaces#1}meet them?everyparbut now you can probably rewrite using lthooks and give it a more appropriate name for your use case.{#1\par\noindent\ignorespaces}sounds better than the version using\NoIndentwhich potentially removes braces.