Я хотел бы сказать, что сравнение выполняется по модулю довольно большого выражения, THING
которое следует заключить в скобки.
\left( \mod{THING}\right)
кажется, приводит к большому пробелу между открывающейся скобкой и «mod», и
\pmod{THING}
создает слишком маленькие скобки на мой вкус. Есть ли вариант менее хакерский, чем просто использовать \mbox
?
решение1
Использование amsmath
определения кажется более правильным; я также буду использовать mathtools
для растущих скобок.
\documentclass{article}
\usepackage{mathtools}
% Here's how amsmath defines \pmod
% \newcommand{\pod}[1]{\allowbreak
% \if@display\mkern18mu\else\mkern8mu\fi(#1)}
% \renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
\makeatletter
\DeclarePairedDelimiterX{\pmodx}[1]{(}{)}{{\operator@font mod}\mkern6mu#1}
\renewcommand{\pmod}{%
\allowbreak
\if@display\mkern18mu\else\mkern8mu\fi
\pmodx
}
\makeatother
\begin{document}
\begin{align*}
a &\equiv b \pmod{n}\\
a &\equiv b \pmod[\big]{n}\\
a &\equiv b \pmod[\Big]{\frac{n}{2}}\\
a &\equiv b \pmod[\bigg]{\sum_{k=1}^n k^2}\\
a &\equiv b \pmod*{\sqrt{\sum_{k=1}^n k^3}\,}
\end{align*}
\end{document}
Было бы легко дать определение, \pod
используя ту же идею.
Не рекомендуется использовать \mod
, который по определению похож на , \pmod
но без скобок.
решение2
Команды \mod
и pmod
предназначены для использования следующим образом:
x\equiv y\pmod b \qquad x\equiv y\mod c
а не так, как вы их используете.
Вероятно, вам нужен новый оператор, подобный этому:
\DeclareMathOperator{\mymod}{mod\,}
а затем используйте Bigl
and Bigr
или аналогичные, чтобы увеличить скобки:
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\mymod}{mod\,}
\begin{document}
\[
\Bigl(\mymod\text{THING}\Bigr)
\]
\end{document}
Выход:
решение3
Команда \mod
вводит некоторый жестко закодированный кернинг, который вы видите здесь. Вы можете просто определить новую команду с кернингом, который вам нравится. Однако, \pmod
сохраняет этот кернинг перед скобками. Если вы хотите придерживаться этого, вам следует использовать второй подход.
Лично мне не нравится использовать, \left(\right)
так как это приносит больше вреда, чем пользы. Поэтому я бы определил более простую \mod
-команду для своих нужд и использовал бы наиболее соответствующие скобки вручную.
% arara: lualatex
\documentclass{article}
\usepackage{mathtools}
\usepackage{lua-visual-debug}
\makeatletter
\newcommand{\myMod}[1]{\allowbreak \if@display \mkern 18mu \else \mkern 0mu\fi {\operator@font mod}\,\,#1} % 0mu was 12mu for the math mode in the orignial defintion
\newcommand{\myPMod}[1]{\allowbreak \if@display \mkern 18mu\else \mkern 8mu\fi \left({{\operator@font mod}\mkern 6mu #1}\right)} % replaced () by \left(\right) in respect to the original definiont
\makeatother
\begin{document}
% The original \mod
$\mod{Thing}$
% \mod redefined in order to kick out the math style kerning
$\left(\myMod{Thing}\right)$
% The original \pmod
$\pmod{Thing}$
% \pmod redefined with \left(\right) instead of normal parantheses
$\myPMod{Thing_{g_{g_g}}}$
\end{document}