控制数学环境中的字体大小,进行微调

控制数学环境中的字体大小,进行微调

在我使用的文档中\documentclass[12pt]{report},我有一些表格,每行包含一个索引和一个不等式。由于这是一个很长的列表,因此它是一个supertabular包含列的列表c|rcr。一行的示例数据是1 & x_{i,j} & \leq & 0 \\

现在,在这个特定的表中,我更喜欢打字机样式。此外,这些不等式的长度太长,无法适应正常的文本大小,因此,我还减小了字体大小。为了在每个数学环境中实现这一点而不重复命令,我声明了一个特定的环境:

\newenvironment {specialMath} [0] {} {}
\AtBeginEnvironment{specialMath}
{
\everymath{\scriptstyle\mathtt{\xdef\tmp{\fam\the\fam\relax}\aftergroup\tmp}}
\everydisplay{\scriptstyle\mathtt{\xdef\tmp{\fam\the\fam\relax}\aftergroup\tmp}}
}

一切正常,所有内容都以下标大小显示。但是,打印在 A4 上,这个尺寸有点太小了。

总结一下\textstyle就是太大,\scriptstyle太小,但是又不想调整全部\DeclareMathSizes{...字体大小(据我所知,可以在序言中完成)。

如何在一组数学环境中本地而不是全局地微调字体大小?

一个最小可编译示例(pdflatex),没有表格:

\documentclass[12pt]{report}
\usepackage{amsmath}                                 % math environment
\usepackage{etoolbox}                                % environment customization
\usepackage{supertabular}                            % multi-page tables

\newenvironment {specialMath} [0] {} {}
\AtBeginEnvironment{specialMath}
{
\everymath{\scriptstyle\mathtt{\xdef\tmp{\fam\the\fam\relax}\aftergroup\tmp}}
\everydisplay{\scriptstyle\mathtt{\xdef\tmp{\fam\the\fam\relax}\aftergroup\tmp}}
}

\begin{document}

$x_{i,j} \leq 0$ % normal style
\begin{specialMath}
\begin{supertabular}{r}
$x_{i,j} \leq 0$\\ % typewriter, slightly smaller
\end{supertabular}
\end{specialMath}
$x_{i,j} \leq 0$ % normal style again
\end{document}

如果没有 supertabular,它就不是打字机字体。无论如何它都会在表格中使用,但你可以忽略这个事实。

答案1

我不太确定\scriptstyle;这是我会做的:

\documentclass[12pt]{report}
\usepackage{amsmath}
\usepackage{supertabular}

\newenvironment{specialMath}
  {\footnotesize\everymath{\fam\thettfam}}
  {}
\AtBeginDocument{%
  \sbox0{$\mathtt{\xdef\thettfam{\the\fam}}$}%
}

\begin{document}

$x_{i,j} \leq 0$ % normal style
\begin{specialMath}
\begin{supertabular}{r}
$x_{i,j} \leq 0$\\ % typewriter, slightly smaller
\end{supertabular}
\end{specialMath}
$x_{i,j} \leq 0$ % normal style again
\end{document}

在此处输入图片描述

相关内容