\setfoot 第三个参数内的 \makebox 产生错误

\setfoot 第三个参数内的 \makebox 产生错误

如果我用注释掉的版本替换当前版本\setfoot,我会得到:“缺少 \begin{document}”。我猜想这与它被正确刷新有关。

\documentclass{article}
\usepackage{lipsum}
\usepackage[pagestyles]{titlesec}

\newpagestyle{rest}
{%
  \sethead{}{}{}
%  \setfoot{Tenant Initials:\makebox[3em]{\hrulefill}}{}{Landlord Initials:\makebox[3em]{\hrulefill}} % Missing \begin{document}
  \setfoot{Tenant Initials:\makebox[3em]{\hrulefill}}{}{}
}
\AtEndDocument{\thispagestyle{empty}}
\pagestyle{rest}


\begin{document}

\lipsum

\end{document}

在此处输入图片描述

答案1

好奇的问题。

解决方法:支撑有问题的部分。

\documentclass{article}
\usepackage{lipsum}
\usepackage[pagestyles]{titlesec}

\newpagestyle{rest}
{%
  \sethead{}{}{}%
  \setfoot
    {Tenant Initials:\makebox[3em]{\hrulefill}}% left
    {}% center
    {Landlord Initials:{\makebox[3em]{\hrulefill}}}% right
}
\AtEndDocument{\thispagestyle{empty}}

\pagestyle{rest}


\begin{document}

\lipsum

\end{document}

在此处输入图片描述

答案2

这是宏中的一个错误\ttl@duplthreeargs,它确实如此, #1#2#3#4->#1[#2][#3][#4]{#2}{#3}{#4}#1#2#3#4->#1[{#2}][{#3}][{#4}]{#2}{#3}{#4}至少应该如此#4,因为][分隔符不太可能出现在和中#2,而#3不是单独的]#4否则,这里来自的任何]内容都会在下一个宏中破坏正确的流程,该宏会获取分隔参数。这里最终会出现故障。#4\makebox[3em]{\hrulefill}\ttl@setfoot[#1][#2][#3]#4#5#6#3Landlord Initials:\makebox [3em

解决方法给出答案,以上内容已在@egreg 回答中附带的评论中提及。

相关内容