我发现,每当我在文档中输入一些方程式时,如果方程式有点复杂(比如括号中的分数、平方、平方根、分数),我放入方程式“内部”部分的变量和其他东西就会变得非常非常小。但如果我将字体大小设置为大得多,“内部”的内容就会变得可以忍受,但“外部”的内容(例如,“x = 很多垃圾”,x 会在“外部”)就会变得非常大!
我怎样才能使它更像我的教科书,其中所有变量都具有相同的大小,而不管它们下面的括号/分数/根号如何?
答案1
为了获得相等的大小,你可以\DeclareMathSizes
在序言中使用。语法是
\DeclareMathSizes{display size}{text size}{script size}{scriptscript size}.
您可以简单地将所有字体大小设置为默认字体大小。在此示例中:
\documentclass[10pt]{article}
\begin{document}
\[
x = \frac{1}{x + \frac{1}{x + \frac{1}{x}}}
\]
\end{document}
首先获得不同的尺寸:
插入此行
\DeclareMathSizes{10}{10}{10}{10}
将输出更改为:
答案2
您可以尝试\dfrac
而不是\frac
。
答案3
把这个放在你的序言中,但在所有\usepackage
命令之后:
\everymath=\expandafter{\the\everymath\displaystyle}
这将有效地添加\displaystyle
到每个(内联)数学环境,使所有数学看起来都像显示的数学。
编辑:感谢 Charles 指出,\everymath
如果现有标记列表已经不为空,则可以/应该以不破坏现有标记列表的方式完成此操作。正如 Willie 所说,这=
是可选的。我喜欢使用它;它只是提醒我正在进行一些分配。
编辑2:楼主要求详细解释。我会尽力的。
首先,请记住,这\everymath
是一个代币列表插入到每个数学模式材料的前面。因此,如果您键入,\everymath={\text{Here comes the math: }}
您将在每个方程式前面看到它。 通过在每个数学模式前面 \everymath={\displaystyle}
插入,可以做一些更有成效的事情。\displaystyle
当你或其他包已经修改时,就会出现问题\everymath
。所以我们需要附加 \displaystyle
到\everymath
标记列表。在伪 TeX 中,你想说:
\everymath={\currentcontentsof{\everymath}\displaystyle}
伪宏的 TeX 实现\currentcontentsof
是\the
。因此更接近的近似值是:
\everymath={\the\everymath\displaystyle}
但这样会很麻烦,当 TeX 读取标记列表声明时,它只会读取标记无需扩大。也就是说,\the
不会在这里展开,而是在第一次遇到数学模式时展开。这将导致 TeX 尝试展开,而这需要在其中\everymath
展开。哎呀!无限循环。\everymath
因此你需要\the
扩展前你保存了 token 列表。因此\expandafter
:
\everymath=\expandafter{\the\everymath\displaystyle}
当 TeX 读取 时\everymath=
,它期望得到一个标记列表。但是,它得到的是\expandafter
,它表示“保留下一个标记,扩展下一个标记,然后将保留的标记放回原位并正常扩展。”因此,在扩展 {
时,标记被推迟。需要另一个标记才能工作,因此读取下一个标记。这会将 中的两个标记替换为 中的当前标记。现在已放回原位,TeX 可以读取正常的标记列表声明。\the
\the
\everymath
\the\everymath
\everymath
{
其他技术人员可能会纠正这个答案,但这是我的理解。
答案4
您可以在本地使用,\everymath
方法是插入\begingroup
并\endgroup
作为
\begingroup
\everymath{\scriptstyle}
\scriptsize
%your equation
\endgroup