Ich arbeite an einem Dokument, bei dem ich den Abstand zwischen Textzeilen vergrößern muss, aber den Zeilenabstand in Arrays oder Systemen unverändert lassen möchte. Ich habe versucht, den baselinestretch
Befehl mit einem Wert größer als zu verwenden 1
, sagen wir 4
, aber das wirkt sich auch auf den Abstand in Arrays aus. Um dieses Problem zu beheben, setze ich auf arraystretch
, 0.25
wodurch der Standardabstand in Arrays wiederhergestellt wird. Bei der Verwendung des systeme
Pakets tritt jedoch ein Problem auf – der Zeilenabstand bleibt erhöht und ich möchte ihn wieder auf den Normalwert zurücksetzen (ähnlich wie bei Arrays).
Wie kann ich das erreichen?
\documentclass{article}
\usepackage{systeme}
\renewcommand{\baselinestretch}{4}
\renewcommand{\arraystretch}{0.25}
\begin{document}
\systeme{x+y=0,2x-y=1}
\end{document}
Antwort1
Der \systeme
Befehl verwendet TeX-Konstrukte auf niedriger Ebene, die von abhängen \baselineskip
, aber nicht berücksichtigen arraystretch
.
Im Paket ist keine Methode implementiert, aber ein einfacher Patch funktioniert. Hier verwende ich einen weniger dramatischen Spread-Faktor.
\documentclass{article}
\usepackage{amsmath}
\usepackage{systeme}
\usepackage[nodisplayskipstretch]{setspace}
\usepackage{xpatch}
\usepackage{lipsum}
\setstretch{2}
\renewcommand{\arraystretch}{0.5}% actually, the reciprocal of the spread factor
\catcode`_=11
\xpatchcmd{\SYS_systeme_i}
{\begingroup}
{\begingroup\linespread{1}\selectfont}
{}{}
\catcode`_=8
\begin{document}
\lipsum[1][1-2]
\[
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\]
\lipsum[2][1-2]
\[
\systeme{x+y=0,2x-y=1}
\]
\end{document}