Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[页面尺寸] 错误设置了 \voffset,建议用 geometry 宏包改写 #130

Closed
muzimuzhi opened this Issue Mar 23, 2019 · 6 comments

Comments

Projects
None yet
2 participants
@muzimuzhi
Copy link

muzimuzhi commented Mar 23, 2019

页面尺寸部分,目前是手动设置的,其中的

\setlength{\voffset}{-17.4mm}% set vertical offset

是不合理的,在特殊情况下会带来问题。

控制页面尺寸的诸多 dimension 内部包含一定的勾契关系,直接设定比较费事,建议换用 geometry 宏包。

如果有具体的页面尺寸要求(例如左侧页边距 xx mm),我可以用 geometry 改写后提交 push request。


特殊情况举例:使用 pdfpages 宏包的 \includepdf 插入一个整页时,插入的页面会整体上移 -\voffset (17.4mm) 的距离。

% a4-insersion.tex
\documentclass[a4paper]{article}
\usepackage[margin=0pt]{geometry}
\usepackage{xcolor}
\pagecolor{blue!60!green!60}

\begin{document}
\noindent
\rule{\textwidth}{\dimexpr17.4mm + 5pt\relax}
\end{document}

% thesis-test.tex
\documentclass{Style/ucasthesis}
\usepackage{pdfpages}

\begin{document}
\includepdf{a4-insertion}
\end{document}

说明:

  • a4-insertion.tex 生成待插入页面 a4-insertion.pdf,页面淡蓝底色,上部有一高为 14.7mm + 5pt 的黑块
  • thesis-test.tex 使用模板,插入 a4-insertion.pdf

image

@mohuangrui

This comment has been minimized.

Copy link
Owner

mohuangrui commented Mar 24, 2019

你好,ucas 的页面尺寸与 latex 的默认设置不一致,从而需要手动设置,不清楚 latex 该如何自动完成这一问题。

页面尺寸的各个参数是紧密耦合的,若要实现 ucas 的尺寸要求,如页眉页脚页码位置,文本长度宽度距页面各边的距离凡此种种,需要调用到 page layout 的各个参数并细心的计算调校。geometry 只是对 latex kernel 的一些 layout 参数进行了封装,却无法避免需要改写 voffset 以缩短默认的1 inch顶部空白的问题,从而用 geometry 写一遍只是相当于将原本用英格兰英文的表达换成了苏格兰英文一般。。。

至于你说的插入一整页原尺寸 a4 pdf的问题,虽不明白这在论文写作里的价值,但修正的方法很简单,即使用:

\includepdf[offset=0 -17.4mm]{a4-insertion}

替换你的

\includepdf{a4-insertion}

\includepdf{} 会被多种参数所影响,从而单纯的调用往往是天真的,调校参数早已被设计者所考虑。

祝好

@mohuangrui

This comment has been minimized.

Copy link
Owner

mohuangrui commented Mar 24, 2019

对了,强迫症者也可以用:

\includepdf[offset=0 \voffset]{a4-insertion}
@muzimuzhi

This comment has been minimized.

Copy link
Author

muzimuzhi commented Mar 24, 2019

geometry 只是对 latex kernel 的一些 layout 参数进行了封装,却无法避免需要改写 voffset 以缩短默认的1 inch顶部空白的问题

并非如此。geometry 无法突破 latex kernal 的限制是真,必须令 \voffset 不为零才能满足模板要求可能是假。

以下例子参考附件17:中国科学院大学研究生学位论文撰写规范指导意见.pdf(从 #107 获取)中对页面设置的要求进行了配置,并加入「调整版心页边距、调整页眉页脚位置」的页面设置作为参照,发现始终有 \voffset = 0

以下摘录自《规范指导意见》第 19 页
纸张,A4 (210mm x 297mm)
页面设置,上下 2.54cm、左右 3.17cm、页眉页脚距页边界 1.5cm

例子

\documentclass[a4paper]{article}
\usepackage[showframe]{geometry}
\geometry{margin={3.17cm, 2.54cm},headsep=1.04cm,footskip=1.5cm,headheight=9bp}
\def\check{\texttt{\textbackslash voffset = \the\voffset}}
\def\ensureFont{\fontsize{30pt}{36pt}\linespread{1.3}\selectfont}
\begin{document}
\ensureFont
\begin{verbatim}
standard setting (according
to the regulation):
  margin  = {3.17cm, 2.54cm},
  headsep = 1.04cm,
  footskip= 1.5cm,
  headheight=9bp
\end{verbatim}
\check\newpage

\newgeometry{margin={3.17cm, 2.54cm}, headsep=2cm, footskip=2cm, headheight=.1cm}
\ensureFont
\begin{verbatim}
change headsep, footskip, 
and headheight
  margin  = {3.17cm, 2.54cm},
  headsep = 2cm,
  footskip= 2cm,
  headheight=.1cm
\end{verbatim}
\check\newpage

\newgeometry{margin={3.17cm, 10cm}, headsep=2cm, footskip=2cm, headheight=.1cm}
\ensureFont
\begin{verbatim}
change vmargin further
  margin  = {3.17cm, 10cm},
  headsep = 2cm,
  footskip= 2cm,
  headheight=.1cm
\end{verbatim}
\check
\end{document}

例子输出
image

据此,我觉得是可以在满足《规范指导意见》页面设置要求的同时,保持 \voffset = 0 的。

@muzimuzhi

This comment has been minimized.

Copy link
Author

muzimuzhi commented Mar 24, 2019

上条回复围绕「不必」修改,本条回复,以 The LaTeX Companion 书中的一段,来佐证「不应」修改 \voffset 的值。

image

@mohuangrui

This comment has been minimized.

Copy link
Owner

mohuangrui commented Mar 24, 2019

你好,你是对的,可以不修改 \voffset 的默认值。模版已修正,感谢指教!

@muzimuzhi

This comment has been minimized.

Copy link
Author

muzimuzhi commented Mar 25, 2019

感谢更新。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.