Ich habe inzwischen ein bisschen recherchiert, und möchte versuchen, hier zusammenzufassen, was ich herausgefunden habe/schon wusste.
## Grundsätzliche Unterschiede zwischen `\par` und `\endgraf` ##
Die folgenden zwei Punkte erwähnt [Frank Mittelbach in seiner Antwort][1] auf [When is it better to use \par than \endgraf?][2] auf TeX.sx:
- `\par` (das Makro) ist in LaTeX das Äquivalent zu einer leeren Zeile in einem Dokument! Welche Bedeutung auch immer LaTeX in einem bestimmten Kontext einer leeren Zeile gibt, ist auch das, was `\par` in diesem Kontext liefert. Beispielsweise werden in einer Tabelle leere Zeilen ignoriert und so enthält auch die Definition von `\@array` die Zeile `\let\par\@empty`.
`\let\par\@empty`. Auch in Listen wird es umdefiniert.
- Im Gegensatz dazu ist `\endgraf`/`\@@par` das Primitiv, **Primitiv**, das den horizontalen Modus beendet und das Material in Zeilen bricht. (Oder nichts macht oder einen Fehler produziert oder ...)
Oder kurz und knapp ([Quelle][3]):
> abstractly speaking `\par` implements an
> abstract user/document level interface
> and `\endgraf` a specific technical
> operation.
(*[...] `\\par` implementiert ein abstraktes Dokumenten-Level-Interface, `\\endgraf` eine bestimmte technische Operation.*)
[Laut Frank Mittelbach][4] ist `\endgraf` allerdings lediglich ein Überbleibsel von plain TeX und sollte in LaTeX nicht verwendet werden:
> actually `\endgraf` is a historic
> leftover from plain TeX and you should
> not use it at all in LaTeX code, you
> should use `\@@par` to indicate that
> it is the primitive you are after.
## Mögliche Konsequenzen aus Anwendersicht ##
Obiges bedeutet im weiteren Schluss für mich, dass ein Anwender/eine Anwenderin (sprich: Dokumentenautor/in) eigentlich `\endgraf`/`\@@par` **im Idealfall** nie verwenden sollen müsste und wenn er/sie soch in die Verlegenheit kommt, dann liegt das entweder an einer ungünstigen Definition eines Befehls in einem Paket und sollte dort korrigiert werden, oder der Anwender/die Anwenderin macht irgendetwas (im Sinne von LaTeX *best-practice*) falsch. *Das beantwortet für mich die Frage, ob ich als Anwender im Sinne von Dokumentenautor `\\@@par`/`\\endgraf` kennen muss, mit Nein.* (Ich bitte um Feedback, Nein.*
Allerdings scheinen die Meinungen hier auseinander zu gehen. @Ulrike argumentiert in ihrer Antwort, dass `\endgraf` für einen Anwender da ist, wenn ich hier etwas grundsätzlich falsch er/sie **das Primitiv** braucht. Ich bin davon nicht völlig überzeugt, kann die Argumentation aber nachvollziehen. Meinem Bauchgefühl nach (und [Frank bestätigt mir das][5]), sollta man dabei aber vorsichtig sein:
> no: `\@@par` is not intended for user
> level while `\endgraf` was (by Don) and
> although it is not explicitly
> documented in LaTeX for this purpose
> one can argue that `\endgraf` is a user
> level command in LaTeX. Personally I
> think it is a but dangerous as you
> need to really understand the above
> difference (and partly how LaTeX does
> \par redefs) to make good use of
> `\endgraf`.
(*Nein, `\\@@par` ist nicht für das Anwenderlevel gedacht [klar zu erkennen an den @ (Clemens)]), `\\endgraf` war es (von Don) schon, und obwohl es in LaTeX nicht explizit dokumentiert ist, kann man argumentieren, es sei ein Anwenderbefehl. Persönlich denke ich, es ist einer, aber ein gefährlicher, weil man den Unterschied [zu LaTeXs `\\par` (Clemens)] wirklich verstanden haben sollte.)
muss (und zum Teil auch, wie LaTeX `\\par`-Redefinitionen macht), um guten Gebrauch davon zu machen.*)
----------
Weil LaTeX die Definition von `\par` (dem Makro) immer wieder anpasst, ist es also grundsätzlich wesentlich sicherer (auch hier bitte ich um Feedback, wenn das im Grundsatz falsch sein sollte), sicherer, `\par` (das Makro) zu verwenden, etwa in einem `\item` in Listen, statt mit `\endgraf` auf jeden Fall das Primitiv zu bekommen.
Das bedeutet für mich auch, dass, sollte man in die Verlegenheit kommen, ein `\par` (das Makro) in ein kurzes Argument schmuggeln zu müssen (weil das Argument kurz ist und `\par` (das Token) daher nicht erlaubt), es in *in der Regel Regel* zu bevorzugen wäre, etwas wie das in der Frage erwähnte `\fakepar` zu verwenden, also ein Makro, das zu `\par` (dem Makro) expandiert. (Wieder gilt: bitte Feedback, wenn man das grundsätzlich falsch ist.)
expandiert.
\documentclass{article}
\newcommand*\fakepar{\par}
\begin{document}
\begin{itemize}
\item \verb+\fakepar+ (vermutlich versteckt in einem anderen Makro, \ldots)
\fakepar
foo bar baz
\fakepar
foo bar baz
\item \verb+\endgraf+ (vermutlich versteckt in einem anderen Makro, \ldots)
\endgraf
foo bar baz
\endgraf
foo bar baz
\end{itemize}
\end{document}
![alt text][5]
text][6]
Wenn jemand *genau das Primitiv* einsetzen möchte, dann sollte er `\@@par` verwenden (oder auf Dokument-Level notgedrungen `\endgraf`). (Hier bin ich noch auf der Suche nach Fällen, wo ich tatsächlich (ausschließlich) das Primitiv haben möchte. Meinem Gefühl nach sind die eher rar gesät, Beispiele würden mich aber interessieren.)
[1]: http://tex.stackexchange.com/a/97052/5049
[2]: http://tex.stackexchange.com/q/96865/5049
[3]: http://tex.stackexchange.com/questions/96865/when-is-it-better-to-use-par-than-endgraf#comment208623_97052
[4]: http://tex.stackexchange.com/questions/96865/when-is-it-better-to-use-par-than-endgraf#comment208626_96868
[5]: http://tex.stackexchange.com/questions/96865/when-is-it-better-to-use-par-than-endgraf#comment415976_97052
[6]: http://texwelt.de/wissen/upfiles/endgraf.png