我发现包的一部分有影响microtype
,我想以某种方式取消它。在下面包含的 MWE 中,我收集了一些标记内容,这些内容将作为文档每个奇数页页脚的一部分输入。此页脚由两个水平对齐的框组成,第一个框的内容向左参差不齐,其宽度由Authors:
打字机面上设置的字符串框的宽度决定。要排版框的页面位置是根据textblock
环境(来自包textpos
)指定的,与文本块的左边距垂直对齐。最后,一旦排版了框,就会有一个由一行组成的新段落。
MWE如下:
\documentclass[12pt]{memoir}
\usepackage{calc}
\usepackage[absolute]{textpos}
\usepackage{microtype}
\newtoks{\tokname}
\newtoks{\toktitle}
\newtoks{\toklatexed}
\toklatexed={Another paragraph}
\newcommand{\docauthors}[1]{\global\tokname={#1}}
\newcommand{\doctitle}[1]{\global\toktitle={#1}}
\newlength{\tagsboxlen}
\settowidth{\tagsboxlen}{\scriptsize\texttt{Authors:}}
\newcommand{\tagsbox}{%
\parbox[t]{\tagsboxlen}{%
\raggedleft
Authors:\\
Title:\\}}
\newcommand{\datatagsbox}{%
\parbox[t]{\textwidth - \tagsboxlen - 1em}{%
\the\tokname\\
\the\toktitle\\}}
\newcommand{\footpaperdata}{%
\setlength{\TPHorizModule}{1in + \oddsidemargin}
\setlength{\TPVertModule}{1in + \textheight + \topmargin %
+ \headheight + \headsep + \footskip %
+ 2\onelineskip}
\begin{textblock}{10}[0,0](1,1)
\scriptsize\ttfamily
\noindent\tagsbox\hfill\datatagsbox
\par\noindent\the\toklatexed
\end{textblock}
}
\makeoddfoot{plain}{\footpaperdata}{}{}
\doctitle{This is the title}
\docauthors{This is the author's name}
\begin{document}
\pagestyle{plain}
Please, look at footer.
\end{document}
如果我不加载该包microtype
,则字符串Authors:
将与文本块垂直对齐,但如果我加载它,则字符串将稍微向右移动,而这些框后面的段落仍然与文本块垂直对齐,如上所述。
有人能解释一下这里发生了什么吗?
在阅读了 egreg 的回答后,我想到了一个可能感兴趣的人可以考虑的替代方案,该替代方案基于他的方法并诉诸于包tabu
。 经过修订的整个 MWE 如下:
\documentclass[12pt]{memoir}
\usepackage{calc,tabu}
\usepackage[absolute]{textpos}
\usepackage{microtype}
\newtoks{\tokname}
\newtoks{\toktitle}
\newtoks{\toklatexed}
\toklatexed={Another paragraph}
\newcommand{\docauthors}[1]{\global\tokname={#1}}
\newcommand{\doctitle}[1]{\global\toktitle={#1}}
\newcommand{\paperdatatabu}{%
\begin{tabu} spread0pt{@{}X[-1,r]X[-1,l]@{}}
Authors: & \the\tokname\\
Title: & \the\toktitle\\
\end{tabu}
}
\newcommand{\footpaperdata}{%
\setlength{\TPHorizModule}{1in + \oddsidemargin}
\setlength{\TPVertModule}{1in + \textheight + \topmargin %
+ \headheight + \headsep + \footskip %
+ 2\onelineskip}
\begin{textblock}{10}[0,0](1,1)
\scriptsize\ttfamily
\paperdatatabu
\par\noindent\the\toklatexed
\end{textblock}
}
\makeoddfoot{plain}{\footpaperdata}{}{}
\doctitle{This is the title}
\docauthors{This is the author's name}
\begin{document}
\pagestyle{plain}
Please, look at footer.
\end{document}
答案1
您可以在本地停用以下功能microtype
:
\newcommand{\tagsbox}{%
\parbox[t]{\tagsboxlen}{%
\microtypesetup{activate=false}
\raggedleft
Authors:\\
Title:\\}}
但是,使用 parbox 并测量它们并不是必需的:
\documentclass[12pt]{memoir}
\usepackage{calc}
\usepackage[absolute]{textpos}
\usepackage{microtype}
\newtoks{\tokname}
\newtoks{\toktitle}
\newtoks{\toklatexed}
\toklatexed={Another paragraph}
\newcommand{\docauthors}[1]{\global\tokname={#1}}
\newcommand{\doctitle}[1]{\global\toktitle={#1}}
\newcommand{\tagsbox}{%
\begin{tabular}[t]{@{}l@{}}
Authors:\\
Title:
\end{tabular}}
\newcommand{\datatagsbox}{%
\begin{tabular}[t]{@{}l@{}}
\the\tokname\\
\the\toktitle
\end{tabular}}
\newcommand{\footpaperdata}{%
\setlength{\TPHorizModule}{1in + \oddsidemargin}
\setlength{\TPVertModule}{1in + \textheight + \topmargin %
+ \headheight + \headsep + \footskip %
+ 2\onelineskip}
\begin{textblock}{10}[0,0](1,1)
\scriptsize\ttfamily
\noindent\tagsbox\hspace{1em}\datatagsbox
\par\medskip\noindent\the\toklatexed
\end{textblock}
}
\makeoddfoot{plain}{\footpaperdata}{}{}
\doctitle{This is the title}
\docauthors{This is the author's name}
\begin{document}
\pagestyle{plain}
Please, look at footer.
\end{document}
有了tabular
它就更容易了。