我正在尝试使用字体排版文章中的所有公式\small
。
如果我使用\DeclareMathSizes{9}{8}{6}{4}
,则常规文本中的内嵌数学公式的大小也会改变。但是,我只想为环境中的多行方程式重新定义字体大小align
。
我还尝试按以下方式重新定义对齐命令:
\let\oldalign=\align
\renewcommand{\align}{\small\oldalign}
这导致align
环境之后的一些文本段落现在以字体排版\small
,尽管它们远远超出了align
环境范围。抱歉,我现在没有最小示例。这可能与cls
我使用的模板有关(sig-alt-full
)。
我尝试添加\normalsize
作为修复,但没有成功:
\let\oldalign=\align
\renewcommand{\align}{\small\oldalign\normalsize}
然后我开始定义我自己的align
环境,如下:
\newenvironment{myalign}
{% begin code
\begin{small}
\begin{align}
}
{% end code
\end{align}
\end{small} }
这个失败了,因为根据 LaTeX,\begin{small}
以 结束\end{document}
。
答案1
我觉得这不是一个好主意。不过下面的方法似乎可行:
\documentclass{article}
\usepackage{amsmath,lipsum}
\newenvironment{myalign}{\par\nobreak\small\noindent\align}{\endalign}
\begin{document}
\lipsum*[2]
\begin{myalign}
a&=b\\
c&=d
\end{myalign}
\lipsum[2]
\renewenvironment{myalign}{\par\nobreak\tiny\noindent\align}{\endalign}
\lipsum*[2]
\begin{myalign}
a&=b\\
c&=d
\end{myalign}
\lipsum[2]
\end{document}
重新定义只是为了更清楚地表明它有效(小尺寸与正常尺寸没有太大区别)。
如果你想使用原来的align
和align*
环境,那么下面的技巧就可以了
\usepackage{etoolbox}
\preto\align{\par\nobreak\small\noindent}
\expandafter\preto\csname align*\endcsname{\par\nobreak\small\noindent}
类似的技巧也可用于其他对齐环境。
完整示例:
\documentclass{article}
\usepackage{amsmath,lipsum}
\usepackage{etoolbox}
\preto\align{\par\nobreak\small\noindent}
\expandafter\preto\csname align*\endcsname{\par\nobreak\small\noindent}
\begin{document}
\lipsum*[2]
\begin{align}
a&=b\\
c&=d
\end{align}
\lipsum*[2]
\begin{align*}
a&=b\\
c&=d
\end{align*}
\lipsum[2]
\end{document}