Closed Fang-Haoshu closed 11 months ago
可能是没有清理临时文件所致?
应该不是,刚刚尝试了一下清理缓存文件重新编译,在开启twoside的时候还是会出现这个显示bug
从日志文件来看,仍然引入了 subfigure
宏包,有没有尝试过完全去除 \usepackage{subfigure}
,以及我本地引入 subfigure
时,实际上是编译不成功的:
Package subcaption Error: This package can't be used in cooperation
(subcaption) with the subfigure package.
谢谢你对这个问题的关注!是的,后来也尝试了一下只使用subcaption,log如下,问题似乎还是存在,我附上了一个最小可复现环境,应该导入sjtu latex,用xelatex编译就能复现,不知道是不是我哪里搞bug了 output (2).log
复现了这个 bug,触发条件:
\documentclass{sjtuthesis}
\begin{document}
\frontmatter
\listoffigures*
\mainmatter
\chapter{Test}
\ExplSyntaxOn
\int_step_inline:nn{10}{
\begin{figure}
% \caption{This~is~a~super~long~caption~that~needs~attention~in~the~list~of~figures~to~see~if~there~is~some~vertical~overflow.}
\caption{这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题}
\end{figure}
}
\ExplSyntaxOff
\end{document}
cc @AlexaraWu
当然最好的实践应该是每个图标题设定一个简短的标题放在插图索引中。
\caption[简短的标题]{这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题}
试了一下用 ctexbook
是正常的,还不清楚是哪里的问题,有空我排查一下。
当然最好的实践应该是每个图标题设定一个简短的标题放在插图索引中。
\caption[简短的标题]{这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题}
有道理
初步排查应该和 ctex\chapter\fixskip
选项相关,关闭此选项后没有问题。
更正:此问题与页面纵向对齐方式有关,标准文档类中 oneside
默认开启 \raggedbottom
,手动开启 \flushbottom
也可以复现此问题。
建议修改模板 oneside
与 twoside
均默认使用 \raggedbottom
。
\documentclass[oneside]{sjtuthesis}
\flushbottom
\begin{document}
\frontmatter
\listoffigures
\mainmatter
\chapter{测试}
\ExplSyntaxOn
\int_step_inline:nn { 10 }
{
\begin{figure}
\caption{这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题这是一个超级长的标题}
\end{figure}
}
\ExplSyntaxOff
\end{document}
跟 fixskip
应该还是有点关系的,实测 \parskip=0pt
取消段间距的弹性也可以解决这个问题。推测是 fixskip
在章标题中引入了弹性间距,在 \flushbottom
模式下产生了问题。
试了一下普通的
itemize
是没问题的。最后发现是\l@figure
(被tocloft
宏包重定义) 中关于\interlinepenalty
的问题:
\@M
是10000
,如果把这行改为\interlinepenalty 9849
就是正常,\interlinepenalty 9850
就是异常。
这是为了阻止每个项目内部的断页,应该跟这个问题没关
fixed in v2.0.3
问题描述: 在document默认开启twoside时,英文版listoffigures与listoftables会出现如图所示的错位显示:
刚开始以为是subfigure与tocloft冲突导致,切换回subcaption发现还是有此问题,最后开启oneside后该问题消失
系统信息:
日志信息:
日志信息附于附件中
output.log
-->