
Im Grunde genommen würde ich gerne etwas wie „ \xspace
does“ verwenden, d. h. die Bedeutung des Makros sollte davon abhängen, was darauf folgt. Wenn ich also beispielsweise sage:
\mymacro a
es könnte zu erweitert werden foo
, und wenn ein anderes Zeichen folgt, sollte es zu erweitert werden bar
. In meinem speziellen Fall werde ich versuchen, ein Unicode-Zeichen zuzuordnen, falls das einen Unterschied macht.
Bearbeiten:Insbesondere möchte ich den Abstand nach einem Integral beeinflussen. Wenn es allein steht, ist der Standardabstand in Ordnung. Wenn es das erste von mehreren Integralen ist, wird der Abstand zu groß. Hier ist, was ich aus der vorherigen Antwort zusammengeschustert habe:
\newcommand\timeintegral[1]{
∫_{t_0}^{t_1} \if ∫#1 \!\!\! \fi #1
}
So sieht es im Einsatz aus:
\timeintegral E \, dt = \timeintegral ∫_z ∫_φ f \, dφ dz dt
Antwort1
Dies ist eine einfache Anwendung von \@ifnextchar
:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmathfont{Asana Math}
\makeatletter
\newcommand{\timeintegral}{%
∫_{t_0}^{t_1} \@ifnextchar∫{\!\!\!}{}%
}
\makeatother
\begin{document}
\[
\timeintegral E \, dt = \timeintegral ∫_z ∫_φ f \,dφ\,dz\,dt
\]
\end{document}
Die LaTeX3-Version:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmathfont{Asana Math}
\ExplSyntaxOn
\NewDocumentCommand{\timeintegral}{}
{
∫\sb{t\sb{0}}^{t\sb{1}} \psirus_check_int:
}
\cs_new_protected:Npn \psirus_check_int:
{
\peek_charcode_ignore_spaces:NT ∫ { \!\!\! }
}
\ExplSyntaxOff
\begin{document}
\[
\timeintegral E \, dt = \timeintegral ∫_z ∫_φ f \,dφ\,dz\,dt
\]
\end{document}