Mathematische Ausdrücke mit dem Abwärtspfeil abbrechen

Mathematische Ausdrücke mit dem Abwärtspfeil abbrechen

Die folgende LösungzumFragewo mathematischer Text gestrichen werden soll, wird das cancelPaket verwendet. Dort \canceltoerzeugt das Makro einen Pfeil von links unten nach rechts oben. Es gibt auch ein Makro namens \bcancel, das einen Durchstreicher von links oben nach rechts unten erzeugt.

Ist es möglich, ein Makro zu haben, das diese beiden miteinander kombiniert, etwa in der Form \bcancelto: ein Pfeil von oben links nach unten rechts?

Hier ist ein MWE:

\documentclass{article}
\usepackage{amsmath}
\usepackage[makeroom]{cancel}

\begin{document}
\noindent
\verb|\cancel{5y}|:
\[ x+\cancel{5y}=0\]
\verb|\bcancel{5y}|:
\[ x+\bcancel{5y}=0\]
\verb|\xcancel{5y}|:
\[ x+\xcancel{5y}=0\]
\verb|\cancelto{\infty}{5y}|:
\[ x+\cancelto{\infty}{5y}=0\]

\end{document}

Antwort1

Ich führe es ein \bcancelto{label}{term}, indem ich eine der Paketroutinen ändere. BEARBEITET, um Beschriftungen auf zu unterstützen \bcancelto.

Die Änderung von „ \canto@vectorzu produzieren“ \cantox@vectorführte zu drei Dingen:

1) Hinzufügen eines -„Vorher“-Zeichens #4im \vectorAufruf;

2) Ändern des ^hochgestellten Zeichens in ein _tiefgestelltes Zeichen vor dem \raise; und

3) Hinzufügen eines -Zeichens vor #2dem Folgenden \raise.

Dann musste ich definieren, \bcanceltodass diese Makroersetzung vorgenommen und \canceltomit der Ersetzung aufgerufen werden soll.

\documentclass{article}
\usepackage{amsmath}
\usepackage[makeroom]{cancel}
\makeatletter
% #1, #2 offset of label   #6 extra width to clear arrowhead
% #3, #4 vector direction  #7 superscript label style
% #5 vector width          #8 superscript label
\def\cantox@vector#1#2#3#4#5#6#7#8{%
  \[email protected]\p@
  \setbox\z@\vbox{\boxmaxdepth.5\p@
   \hbox{\kern-1.2\p@\kern#1\dimen@$#7{#8}\m@th$}}%
  \ifx\canto@fil\hidewidth  \wd\z@\z@ \else \kern-#6\unitlength \fi
  \ooalign{%
    \canto@fil$\m@th \CancelColor
    \vcenter{\hbox{\dimen@#6\unitlength \kern\dimen@
      \multiply\dimen@#4\divide\dimen@#3 \vrule\@depth\dimen@\@width\z@
      \vector(#3,-#4){#5}%
    }}_{\raise-#2\dimen@\copy\z@\kern-\scriptspace}$%
    \canto@fil \cr
    \hfil \box\@tempboxa \kern\wd\z@ \hfil \cr}}
\def\bcancelto#1#2{\let\canto@vector\cantox@vector\cancelto{#1}{#2}}
\makeatother
\begin{document}
\noindent
\verb|\cancel{5y}|:
\[ x+\cancel{5y}=0\]
\verb|\bcancel{5y}|:
\[ x+\bcancel{5y}=0\]
\verb|\xcancel{5y}|:
\[ x+\xcancel{5y}=0\]
\verb|\cancelto{\infty}{5y}|:
\[ x+\cancelto{\infty}{5y}=0\]
\noindent NEW! \verb|\bcancelto{\infty}{5y}|:
\[ x+\bcancelto{\infty}{5y}=0\]
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Hier ist eine TikZ-Lösung.

\documentclass[varwidth,border=50]{standalone}
\usepackage{tikz}
\tikzset{
main node/.style={inner sep=0,outer sep=0},
label node/.style={inner sep=0,outer ysep=.2em,outer xsep=.4em,font=\scriptsize,overlay},
strike out/.style={shorten <=-.2em,shorten >=-.5em,overlay}
}
\newcommand{\cancelto}[3][]{\tikz[baseline=(N.base)]{
  \node[main node](N){$#2$};
  \node[label node,#1, anchor=south west] at (N.north east){$#3$};
  \draw[strike out,-latex,#1]  (N.south west) -- (N.north east);
}}
\newcommand{\bcancelto}[3][]{\tikz[baseline=(N.base)]{
  \node[main node](N){$#2$};
  \node[label node,#1, anchor=north west] at (N.south east){$#3$};
  \draw[strike out,-latex,#1]  (N.north west) -- (N.south east);
}}

\begin{document}
  \cancelto[orange]{test}{Oooo!}
    and math
  $\sqrt{\cancelto[red]{x}{\infty}}$

  \bcancelto[orange]{test}{Oooo!}
    and math
  $\sqrt{\bcancelto[red]{x}{\infty}}$
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen