更新日期:2013-04-18
今天升级到microtype
2.5 后,这个特定的测试用例确实运行得更快了(从大约 3 分钟缩短到 8 秒)。但是,我确实遇到了其他一些情况,编译时间并没有改善太多:只从 2:05 缩短到 1:30。
问题:
我想禁用该microtype
软件包中部分文档的功能。我尝试过\microtypesetup{activate=false}
但似乎没有效果。我尝试过的其他选项包括:
\microtypesetup{expansion=false}
\microtypesetup{protrusion=false}
\microtypesetup{kerning=false}
\microtypesetup{tracking=false}
但似乎并没有解决编译时问题。
背景:
这个问题似乎与为什么使用microtype和xfrac会导致编译时间过长?因为我对这个小文档的编译时间非常长,如果全部\def
顶部定义的三个未注释:即
- 该
microtype
包已使用,和 \sfrac
从xfrac
包装中使用,和\bracr
我使用的“扩展”版本的宏
否则,本文档可以顺利编译。%\def\UseMicrotype{}
注释掉其他两行,\def
取消注释,结果如下:
最后一句话只是为了说明为什么我需要“扩展”版本的宏\bracr
。
笔记:
- 我正在使用
microtype
CTAN (2.4),一旦发布就会更新到 2.5(显然不存在编译时间过长的问题\sfrac
)。同时,如果有办法禁用microtype
它,那将会很有帮助。
代码:
%%% Problems ONLY if ALL three of these are uncommented
%\def\UseMicrotype{}% Enable use of microtype.
\def\UseExtendedBrac{}% Enable use of "extended" version of \brac macro
\def\UseSFrac{}% Enable use of \sfrac
\documentclass{article}
\usepackage{showframe}%
\usepackage{amsmath}%
\usepackage{xfrac}% Provides sfrac
\ifdefined\UseMicrotype
\usepackage{microtype}%
\fi
\ifdefined\UseExtendedBrac%
\makeatletter
\newcommand{\@Brac}[3]{% #1,#3 = left/right bracket type
\ensuremath{%
\left#1\vphantom{#2}\right.% left bracket
#2% content
\left.\vphantom{#2}\right#3% right bracket
}%
}%
\newcommand{\bracr}[1]{\@Brac{(}{#1}{)}}%
\newcommand{\bracs}[1]{\@Brac{[}{#1}{]}}%
\makeatother
\else% Works if these are used
\newcommand{\bracr}[1]{\left(#1\right)}
\newcommand{\bracs}[1]{\left[#1\right]}
\fi
\ifdefined\UseSFrac
\else% No problem if we don't use \sfrac
\renewcommand*{\sfrac}[2]{\frac{#1}{#2}}%
\fi
\begin{document}
\ifdefined\UseMicrotype
\microtypesetup{activate=false}
\fi
%
\begin{align*}
f(x,y)
&= \bracr{\frac{x^{ \sfrac{3}{2}}}
y^{-\sfrac{1}{2}}}^{\!\!\!-2} \\
&= \bracr{
\bracs{
\frac{x^{ \sfrac{3}{2}}}
{y^{-\sfrac{1}{2}}}}^2}^{\!\!\!-1}
\end{align*}
%
% Reason for using the "extended" brac as it yields line wrapping.
As we can see in the following, the \verb|\bracr| wraps around lines:
$\bracr{x^{-1} + x^{-2} + x^{-3} +x^{-4} + x^{-5} + \cdots }$
\end{document}
答案1
如果你仍在使用较旧但仍为官方版本的 2.4:未记录的密钥disable
将真的关闭 microtype,enable
然后再次启用它:
\microtypesetup{disable}
...
\microtypesetup{enable}
编辑:自microtype
v3.0 以来,这些密钥已分别重命名为deactivate
和reactivate
,但它们仍未记录,因为它们不用于一般用途,而只是在错误修复可用之前作为最后的手段。因此,每当您发现自己被迫使用这些密钥时,请确保也提交错误报告。