|
|
TeX中修改minipage一例 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
Q: 如何使twoside的book在奇数页的右侧和偶数页的左侧留出一段margin,而且这段margin上面也有页眉线,并且用小页(minipage)可以设为占用整个textwidth + margin,即超出正文的左侧或右侧?
A: 在奇数页的右侧和偶数页的左侧留出margin,这个比较简单 按照《TeX中修改文本尺寸的问题》修改\oddsidemargin和\evensidemargin就可以了
页眉线的问题可以使用fancyhdr宏包,然后在导言区加上
\addtolength{\headwidth}{2cm} %2cm为margin宽度
关于minipage的问题,我定义了一个命令\preminipage
\def\preminipage{% \ifodd\thepage \else \hspace{-2.54cm} \fi \noindent}%
然后在正文中调用\begin{minipage}{\headwidth}...\end{minipage}之前先调用一下\preminipage
但是,这种方法存在一个bug:当有些minipage需要重新开一页时,就会出现奇偶页判断错误的现象,这种情况下只能在\preminipage之前手动加上\newpage
为了解决这个bug,我借用\pageref命令的定义进行改装,重新完善了\preminipage
\makeatletter \def\@set@ref#1#2#3{% \ifx#1\relax \thepage \else \expandafter#2#1\null \fi}
\def\page@ref#1{\expandafter\@set@ref\csname r@#1\endcsname \@secondoftwo{#1}}
\def\preminipage#1{% \ifodd\page@ref{#1} \else \hspace{-2.54cm} \fi% \noindent} \makeatother
使用方法: \preminipage{aa}\begin{minipage}{\headwidth}\label{aa}...\end{minipage}
注意事项: 由于交叉引用的原因,所以需编译两次后才能正常使用
|
|
相关文章:相关软件: |
|