方程式行超出文本块的宽度

方程式行超出文本块的宽度

我有一个方程式的问题,它几乎超出了页面的限制。这是代码:

\documentclass[a4paper,12pt,blue,rgb,]{tubsbook}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{lipsum}
\usepackage{listings}
\usepackage{color}
\usepackage{hyperref}
\usepackage{url}
\usepackage{array,multirow}
\newcommand\mcbf[1]{\multicolumn{2}{|c|}{\textbf{#1}}}
\newcommand\mlbf[1]{\multicolumn{2}{|l|}{\textbf{#1}}}
\usepackage{graphicx}
\usepackage[activate]{pdfcprot}

\begin{document}
\begin{center}
\begin{equation}
X[k1+4.k2]=\sum_{n2=0}^{N/4-1}[(x[n2]+(-i)^{k1}x[N/4+n2]+(-1)^{k1}x[N  /2+n2]+(i)^{k1}x[3N/4+n2])W_{N}^{k1.n2}]W_{N/4}^{k2.n2}
\end{equation}
\label{eqfft4}
\end{center}
\end{document}

我得到了这个结果:

在此处输入图片描述

我该如何修复它?

答案1

这实际上不是 LaTeX 格式的问题。如果公式的长度超过文本宽度,即使排版优化,也很难阅读和理解。我建议通过引入缩写来分解公式,例如以以下方式。之后,您仍然可以决定使用一些适当的amsmath环境来对齐方程式。

\documentclass[a4paper,12pt]{scrbook}
\begin{document}
\begin{equation}
X[k1+4.k2]=\sum_{n2=0}^{N/4-1} \alpha(n2)\cdot W_{N}^{k1.n2}\cdot W_{N/4}^{k2.n2}
\label{eqfft4}
\end{equation}
where
\begin{equation}
\alpha(n2)= x[n2]+(-i)^{k1}x[N/4+n2]+(-1)^{k1}x[N  /2+n2]+(i)^{k1}x[3N/4+n2]
\end{equation}
\end{document}

在此处输入图片描述

答案2

我建议您使用multline环境或嵌套的equation/split环境。至少需要一个换行符。选择更适合您的审美情趣的方法。

我还建议您稍微增加“外部”方括号和圆括号的大小,以帮助眼睛确定主要分组发生的位置。

顺便问一下,各种.(“点”)字符应该表示什么?它们是乘法“点”吗?如果是这样,它们应该被替换为\cdot

在此处输入图片描述

\documentclass[a4paper,12pt]{book}
\usepackage{mathtools} % for '\mathclap' macro; automatically loads 'amsmath'
\begin{document}

\begin{equation}\begin{split}
X[k1+4.k2]=\sum_{n2=0}^{\mathclap{N/4-1}}\bigl[\bigl( 
&x[n2]+(-i)^{k1}x[N/4+n2]+(-1)^{k1}x[N/2+n2]\\
&+(i)^{k1}x[3N/4+n2]\bigr) W_{N}^{k1.n2}\,\bigr] W_{N/4}^{k2.n2}
\end{split}\end{equation}

\begin{multline}
X[k1+4.k2]=\sum_{n2=0}^{\mathclap{N/4-1}} 
\bigl[\bigl (x[n2]+(-i)^{k1}x[N/4+n2]+(-1)^{k1}x[N/2+n2]\\
+(i)^{k1}x[3N/4+n2]\bigr) W_{N}^{k1.n2}\,\bigr] W_{N/4}^{k2.n2}
\end{multline}\label{eqfft4}

\end{document}

答案3

用作article文档类,但这可以与其中任何一个一起使用:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{hyperref} % MUST be last in preamble

\begin{document}
\begin{equation}\label{eqfft4}
    \begin{multlined}[][0.8\linewidth]
X[k1+4.k2] = \sum_{n2=0}^{N/4-1}[(x[n2]+(-i)^{k1}x[N/4+n2]  \\
                + (-1)^{k1}x[N/2+n2] 
                + (i)^{k1}x[3N/4+n2])W_{N}^{k1.n2}]W_{N/4}^{k2.n2}
    \end{multlined}
\end{equation}

\begin{equation}\label{eqfft4}
    \begin{split}
X[k1+4.k2] 
    & = \sum_{n2=0}^{N/4-1}[(x[n2]+(-i)^{k1}x[N/4+n2]   \\
    &\qquad + (-1)^{k1}x[N/2+n2]                        \\
    &\qquad + (i)^{k1}x[3N/4+n2])W_{N}^{k1.n2}]W_{N/4}^{k2.n2}
    \end{split}

\end{document}

编辑: 在您的 MWE 中,我删除了所有不相关的包。我还将hyperref包移到了它所属的前言末尾。对于aligned使用的数学环境,我添加了包mathtools,它提供了一组改进的amsmath用于编写多行方程的环境。

附录: 为了完整性,我又添加了一个可能性,即如何将方程拆分成更多行。我不知道你想在什么时候拆分方程,所以我只展示了一种实现方法,并没有打算决定它。

结果

相关内容