[Bug]: 硕博模板书脊不适应长标题
Closed this issue · 7 comments
YDX-2147483647 commented
发生了什么?
标题很长时,书脊的标题、姓名、学校会粘在一起。即使下面有空,也不往下挪。
你期望的结果
问题复现的步骤(或者截图)
足够长的标题:八月秋高风怒号卷我屋上三重茅茅飞渡江洒江郊高者挂罥长林梢下者飘转沉塘坳
相关代码
这俩\vfill
有时无效,原因不明。
Lines 1929 to 1931 in 2f6cf63
YDX-2147483647 commented
临时解决方案
编辑bithesis.cls
,搜索“书脊”,把上面提到的两处\vfill
换成\vspace{1em}
。
YDX-2147483647 commented
给书脊的minipage
环境套\fbox{…}
,发现框太小了。
\begingroup
\noindent\hfill
\rotatebox[origin=lt]{-90}{%
\makebox[\textheight]{%
\fangsong
\addCJKfontfeatures*{RawFeature={vertical}}%
\thu@spine@font
\CJKmove
#1\hfill
\thu@stretch{4.5em}{#2}%
}%
}%
\endgroup
\thu@stretch
的功能:如果内容小于给定宽度,则拉伸至该宽度,否则取自然宽度。
cjk - Vertical Chinese text with XeTeX - TeX - LaTeX Stack Exchange
fky2015 commented
距下边界均为 5cm 左右。
当时编写时参考的要求。
YDX-2147483647 commented
fky2015 commented
YDX-2147483647 commented
% 对齐中西基线
% https://tex.stackexchange.com/a/38585
\newcommand*\CJKmovesymbol[1]{\raise.35em\hbox{#1}}
\newcommand*\CJKmove{\punctstyle{plain}% do not modify the spacing between punctuations
\let\CJKsymbol\CJKmovesymbol
\let\CJKpunctsymbol\CJKsymbol}
% \begin{macro}{\make_paper_back:}
% 制作书脊。
% \begin{macrocode}
\cs_new:Npn \make_paper_back: {
\cleardoublepage
\currentpdfbookmark{书脊}{frontmatter:paperback}
\begin{titlepage}
% 上下各留出规定的边距,到下一页再恢复
\newgeometry{
vmargin = 5cm,
}
\centering
% 把盒子竖过来,盒子内相当于一行;再把汉字利用字体特性转回来。
% 存在的问题:破折号断开
\rotatebox[origin=lt]{-90}{
% 实际使用时:\framebox → \makebox
\framebox[\textheight]{
\heiti\zihao{3}
\addCJKfontfeatures*{RawFeature={vertical}}
\CJKmove
%
% 标准例子:
形状记忆聚氨酯的合成及其在织物中的应用
%
% 西文例子:
% 形状记忆聚氨酯 \hspace{0.2em}
% \rotatebox{90}{L} \hspace{0.2em}
% \rotatebox{90}{T} \hspace{0.2em}
% \rotatebox{90}{X} \hspace{0.2em}
% 的合成Feng Kaiyu及其在织物中的应用
%
% 超长例子:
% 八月秋高风怒号卷我屋上三重茅茅飞渡江洒江郊高者挂罥长林梢下者飘转沉塘坳
\hspace{1em plus 1fill}
杜甫
\hspace{1em plus 1fill}
北京理工大学
}
}
\restoregeometry
\end{titlepage}
}
YDX-2147483647 commented
测量像素结果
- Word模板:上 57 mm,下 46 mm。(两个Word模板一样)
- LaTeX v3.7.7 模板:上 37 mm,下 60 mm。