
Минимальный рабочий пример ниже демонстрирует проблему. У меня есть несколько уравнений, отформатированных как первое ниже, где, скажем, числитель имеет квадратные метры, а знаменатель — метры. Я хотел бы отменить показатель степени, но сейчас мне приходится говорить «м м» и отменять первое «м», что выглядит довольно глупо.
\documentclass{article}
\usepackage{siunitx}
\usepackage{cancel}
\begin{document}
How can I cancel out the exponent in the numerator of the following equation?
\begin{equation}
W = \frac{\SI{32}{\square\meter}}{\SI{4}{\meter}} = \SI{8}{\meter}
\end{equation}
If instead of using \si{\square\meter} I use \si{\meter\meter}, it's easy:
\begin{equation}
W = \frac{\SI{32}{\cancel\meter\meter}}{\SI{4}{\cancel\meter}} = \SI{8}{\meter}
\end{equation}
\end{document}
Очевидно, если бы это были кубические метры, деленные на метры, я бы хотел отменить 3 и поставить после нее 2, но у меня пока такой проблемы не было. Заранее спасибо!
решение1
Как сказал Мико, вероятно, проще просто пропустить siunitx
все вместе и просто установить вручную. Если вы действительно хотите продолжать использовать siunitx
, вы можете попробовать использовать кернинг, чтобы поместить \cancel
в нужное место. Например, вы можете использовать пару макросов 1 ниже, чтобы вычеркнутьфиналнижний индекс в единице.
\usepackage{calc}
\newdimen{\KernAmount}
\newcommand{\cancelsup}[2]{%
\setlength{\KernAmount}{\widthof{{\scriptsize \cancel{#1}}}*\real{-1}}%
#2\kern\KernAmount\vphantom{}^{\cancel{\phantom{#1}}}}
\newcommand{\canceltosup}[3]{%
\setlength{\KernAmount}{\widthof{{\scriptsize \cancel{#1}}}*\real{-1}}%
#3\kern\KernAmount\vphantom{}^{\cancel{\phantom{#1}}}\vphantom{}^{^{#2}}}
Первый просто зачеркивает показатель степени, а второй также помещает заменяющую степень мелким текстом над сокращением. Например:
\[
W = \frac{\cancelsup{2}{\SI{32}{\square\meter}}}{\SI{4}{\cancel\meter}} = \SI{8}{\meter}
\] \[
W = \frac{\canceltosup{3}{2}{\SI{32}{\cubic\meter}}}{\SI{4}{\cancel\meter}} = \SI{8}{\square\meter}
\]
Обратите внимание, что в обоих случаях вам необходимо указать заполнитель для числа, которое вы собираетесь отменить. Это необходимо для того, чтобы убедиться, что отмена имеет правильную форму и положение.
1 Как и для каждого фрагмента кода, он был лишь поверхностно протестирован и может выйти из строя непредсказуемым образом.