
Ich habe intensiv nach der Antwort auf diese Frage gesucht, konnte sie aber nicht finden. Ich schreibe einen Artikel und muss viele Formeln schreiben, und für mich ist es schöner, zu schreiben
f(x, y)
als f(x,y)
. Ich bin es leid, im Mathematikmodus immer ein schmales Leerzeichen nach einem Komma zu schreiben \,
, und es ist auch verwirrend. Gibt es eine Möglichkeit, dies zu automatisieren?
Antwort1
Wenn Sie mehr Platz haben möchten, nachdemjedenKomma im Mathematikmodus.
\documentclass{article}
\AtBeginDocument{%
\mathchardef\stdcomma=\mathcode`,
\mathcode`,="8000
}
\begingroup\lccode`~=`, \lowercase{\endgroup\def~}{\stdcomma\,}
\begin{document}
$f(x,y)$
$a,b,c$
\end{document}
Wenn Sie bei der Angabe von Variablen nur das Leerzeichen wünschen, können Sie dieselbe Methode wie das Paket verwenden icomma
, dies erfordert jedoch Disziplin bei der Eingabe: Wenn auf ein Komma ein Leerzeichen folgt (im Mathematikmodus), wird ein schmales Leerzeichen hinzugefügt.
\documentclass{article}
\makeatletter
\AtBeginDocument{%
\mathchardef\stdcomma=\mathcode`,
\mathcode`,="8000
}
\begingroup\lccode`~=`, \lowercase{\endgroup\def~}{%
\futurelet\@let@token\spaced@comma
}
\newcommand{\spaced@comma}{%
\stdcomma
\ifx\@let@token\@sptoken\,\fi
}
\makeatother
\begin{document}
$f(x, y)$ % added space
$f(x,y)$ % compare with the standard
$a,b,c$ % no space is added
\end{document}
Ich würde es vermeiden, \thinmuskip
einen größeren Wert einzustellen. Hier ist der Grund.
\documentclass{article}
\thinmuskip=6mu
\begin{document}
$f(x,y)=\sin x-\sin y$ % with the new setting
\thinmuskip=3mu
$f(x,y)=\sin x-\sin y$ % with the standard setting
\end{document}
Wie Sie sehen, \thinmuskip
wird es nicht nur nach Kommas verwendet, sondern an mehreren anderen Stellen, die von dem gleichen vergrößerten Leerzeichen betroffen wären.