我有一个很长的等式,想将其合并为一行:
\documentclass[a4paper,11pt,oneside]{article}
%%% DOCUMENT SETUP %%%
\PassOptionsToPackage{medium}{titlesec}
% packages and configurations come here (see list below).
\graphicspath{{images/}}
\title{My title}
\author{Myself}
\date{\today{}}
\begin{document}
\maketitle
\newcommand{\indicator}[1]{\mathbbm{1}_{\{#1\}}}
\newcommand{\sgn}{\mathrm{sgn}}
\begin{align}
\Lambda=
\frac{1}{x}\left(
\indicator{z\geq0}
-e^{-xt}\Phi\left(\beta_0\right)
+\frac{e^{-zy}}{2}\left(
e^{-zp}\left(\frac{y}{p}-1\right)\Phi\left(\sgn(z)\beta_1\right)
-e^{zp}\left(\frac{y}{p}+1\right)\Phi\left(-\sgn(z)\beta_2\right)
\right)
\right)
\end{align}
\end{document}
基于这个答案,我尝试通过修改\thinmuskip
和的值来压缩方程\medmuskip
:
\begingroup
\setlength{\thinmuskip}{0mu}
\setlength{\medmuskip}{0mu}
\begin{align}
\Lambda=
\frac{1}{x}\left(
\indicator{z\geq0}
-e^{-xt}\Phi\left(\beta_0\right)
+\frac{e^{-zy}}{2}\left(
e^{-zp}\left(\frac{y}{p}-1\right)\Phi\left(\sgn(z)\beta_1\right)
-e^{zp}\left(\frac{y}{p}+1\right)\Phi\left(-\sgn(z)\beta_2\right)
\right)
\right)
\end{align}
\endgroup
但是我收到了以下错误:
! Incompatible glue units. \setlength{\thinmuskip}{0mu}
! Illegal unit of measure (pt inserted). \setlength{\medmuskip}{0mu}
此外,该字符串u!
出现在我的输出中该组开始的地方。
此网站上还有其他有关此类错误的问题,例如这,但这似乎与当前的问题无关。
是什么原因导致我的代码在这里失败?
编辑:我的文档的包/设置
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{bbm}
\usepackage{bm}
\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{graphicx}
\usepackage[colorlinks=true,allcolors=blue]{hyperref}
\usepackage[authoryear]{natbib}
\usepackage{titlesec}
\usepackage[dvipsnames]{xcolor}
\usepackage[normalem]{ulem}
\usepackage{soul}
\usepackage{color}
\usepackage{booktabs}
\usepackage[textsize=footnotesize,tickmarkheight=3pt]{todonotes}
\usepackage{setspace}
% MATHS %
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{bigints}
\usepackage{mathrsfs}
\usepackage{xfrac}
\usepackage{yfonts}
\usepackage{mathtools}
\usepackage{upgreek}
\usepackage{nccmath}
\usepackage{scalerel}
\usepackage{accents}
\usepackage{nicefrac}
\usepackage{mathtools}
\usepackage{subcaption}
\usepackage[labelfont=bf]{caption}
\usepackage{changepage}
\usepackage{enumitem}
\usepackage{eurosym}
\usepackage{indentfirst}
\usepackage{bibentry}
\usepackage{pifont}
\setlength\parindent{0pt}
\bibliographystyle{myauthordate3}
\setcitestyle{authoryear,round,semicolon,}
\titleformat{\paragraph}[hang]
{\normalfont\normalsize\bfseries}{}{1em}{}
\titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titleformat{\subparagraph}
{\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{}
\titlespacing*{\subparagraph}{\parindent}{3.25ex plus 1ex minus .2ex}{.75ex plus .1ex}
\makeatletter
\def\today{%
\two@digits{\the\day}-%
\ifcase\month\or%
Jan\or Feb\or Mar\or Apr\or May\or Jun\or%
Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi-%
\number\year%
}
\makeatother
\newcommand{\indicator}[1]{\mathbbm{1}_{\{#1\}}}
\newcommand{\sgn}{\mathrm{sgn}}
\makeatletter
\newcommand{\vast}{\bBigg@{4}}
\newcommand{\Vast}{\bBigg@{5}}
\makeatother
答案1
该scalerel
包加载calc
。一旦调用后者包,就无法使用来设置 muskips \setlength
。
做就是了
\thinmuskip=0mu
\medmuskip=0mu
代替\setlength
。
答案2
默认间距已经经过深思熟虑。我不会改变它,而是将公式拆分为两个:
\documentclass[a4paper,11pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\usepackage{bbm}
\newcommand{\indicator}[1]{\mathbbm{1}_{\{#1\}}}
\DeclareMathOperator{\sgn}{sgn}
\begin{document}
\begin{multline}
\Lambda=
\frac{1}{x}\biggl(
\indicator{z\geq0}
-e^{-xt}\Phi(\beta_0)\\
+\frac{e^{-zy}}{2}\Bigl(
e^{-zp}\Bigl(\frac{y}{p}-1\Bigr)\Phi(\sgn(z)\beta_1)
-e^{zp}\Bigl(\frac{y}{p}+1\Bigr)\Phi(-\sgn(z)\beta_2)
\Bigr)
\biggr)
\end{multline}
\end{document}
我还更改了和\left
,\right
因为在这种情况下它们不是最理想的(我目前找不到合适的问答)。
关于最小示例的附言:我们只需要amsmath
和bbm
来编译示例。我们只需要文档类选项和geometry
来确定可用文本区域的大小。其他一切都会使您的示例 (1) 更难理解,并且 (2) 无法编译为单个代码块。