这是一个非常基本的问题,可能已经得到解答但找不到任何东西。
我有这个代码:
\documentclass[a4paper]{scrreprt}
\usepackage{fontspec}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
x_j = 1,\quad y_j = 2,\quad z_j = 3 \qquad \text{for }j=1, 2, 3, \dots, n
\end{equation*}
\end{document}
我得到的是:
但我想要这样的东西(当等式居中时,“for j”部分应该被忽略):
如果“for j”部分与右边距对齐,可能会看起来更好,不幸的是我也不知道如何做到这一点。
答案1
只需加载mathtools
而不是amsmath
(它加载后者)并使用其\mathrlap
命令。您可以将放在\qquad
里面\rlap
也可以不放。在我看来,如果您将它放在里面,等式的主要部分看起来不会在读者眼中居中,尽管它确实居中。
您还必须意识到条件可能会与右边距重叠。在这种情况下,我会使用多行 amsmath 环境之一并将条件放在单独的行上。
\documentclass[a4paper]{scrreprt}
\usepackage{fontspec}
\usepackage{mathtools}
\usepackage[showframe, nomarginpar]{geometry}
\begin{document}
\begin{equation*}
x_j = 1,\quad y_j = 2,\quad z_j = 3 \qquad\mathrlap{\text{for }j=1, 2, 3, \dots, n}
\end{equation*}
\begin{equation*}
x_j = 1,\quad y_j = 2,\quad z_j = 3 \mathrlap{\qquad\text{for }j=1, 2, 3, \dots, n}
\end{equation*}
\begin{equation*}
x_j = 1,\quad y_j = 2,\quad z_j = 3 \qquad \text{for }j=1, 2, 3, \dots, n
\end{equation*}
\end{document}
答案2
您可以将条件与右边距对齐,并使用 将方程式置于行的其余部分的中心flalign
。
\documentclass{scrreprt}
\usepackage{fontspec}
\usepackage{amsmath}% loads also amsmath
\usepackage{showframe}% to show the page layout
\begin{document}
\begin{flalign*}
&&x_j = 1,\quad y_j = 2,\quad z_j = 3 &&\text{for }j=1, 2, 3, \dots, n&
\end{flalign*}
\end{document}
只有当您确定方程和条件不会互相重叠时,您才可以\mathllap
忽略条件,同时将方程置于整条线的中心。
\documentclass{scrreprt}
\usepackage{fontspec}
\usepackage{mathtools}% loads also amsmath
\usepackage{showframe}% to show the page layout
\begin{document}
\begin{equation*}
x_j = 1,\quad y_j = 2,\quad z_j = 3
\end{equation*}
\begin{flalign*}
&&x_j = 1,\quad y_j = 2,\quad z_j = 3 &&\mathllap{\text{for }j=1, 2, 3, \dots, n}
\end{flalign*}
\end{document}