一次性删除整个乳胶书文档中不需要的空白

一次性删除整个乳胶书文档中不需要的空白

我体验到使用该命令\everydisplay{\setstretch{1.2}}会一次性删除整个文档(书籍样式)的空白。我使用 xelatex 包输入波斯语。我的问题是,虽然在序言中包含上述命令后,我的所有数字都以波斯语显示,但 display-math 环境\[ ... \]和 inline-math$ ... $设置中的数字表现不同。如何解决这个问题,即如何强制内部数字 \[ ... \]表现得像 inline-math 设置中的数字$ ... $

以下示例中使用的字体Yas可以轻松下载。

在此处输入图片描述

\documentclass[a4paper,11pt]{article}
\usepackage{setspace}

\usepackage{xepersian}
  \settextfont[Scale=1]{Yas}
  \setdigitfont[Scale=1.1]{Yas} 
\everydisplay{\setstretch{1.2}}

\begin{document} 
\[P(X<2)=\lim _{x\to 2^{-}}F_{X}(x)=0.53.\]
\centering
$P(X<2)=\lim _{x\to 2^{-}}F_{X}(x)=0.53.$
\end{document} 

答案1

\setstretch调用\normalsize并当你调用它时\everydisplay它会生成警告(实际上是错误)

LaTeX Font Warning: Command \normalsize invalid in math mode on input line 8.

目前尚不清楚

\everydisplay{\setstretch{1.2}}

但它没有做任何有用的事情,并生成此警告。如果您删除它,警告就会消失。

我没有字体,但我用了 Arial,结果

在此处输入图片描述

其中显示和内联数学中的数字似乎相同(但我看不懂脚本所以我不能确定它们是否正确)

通过字体大小设置,字体大小命令在数学模式中产生了不良影响并撤消了 xepersian 数学设置的部分,但由于这确实是一种错误情况,因此不能期待合理的 pdf。

答案2

我能想到两种立即的补救措施:

  • 执行指令\everydisplay{\setstretch{1.2}} 而不是在加载xepersian包之后。

  • 实际上,\everydisplay{\setstretch{1.2}}这并不完全正确;事实上,这是自找麻烦,因为它会破坏任何先前执行的影响属性的尝试\everydisplay——包括包的一些尝试xepersian。替换\everydisplay{\setstretch{1.2}}

    \everydisplay=\expandafter{\the\everydisplay\setstretch{1.2}}
    

    并在加载包之前或之后xepersian(但在加载之后setspace)运行这个较长的指令。

在此处输入图片描述

% !TEX TS-program = xelatex
\documentclass[a4paper,11pt]{article}
\usepackage{setspace}

\usepackage{xepersian}
 \settextfont[Scale=1]{Yas}
 \setdigitfont[Scale=1.1]{Yas} 
\everydisplay=\expandafter{\the\everydisplay\setstretch{1.2}}
\begin{document} 
\[P(X<2)=\lim _{x\to 2^{-}}F_{X}(x)=0.53.\]
\centering
$P(X<2)=\lim _{x\to 2^{-}}F_{X}(x)=0.53.$
\end{document} 

相关内容