拜托,没人问我为什么我有这个代码....
以下 MNWE 无法编译。它没有给出错误。它只是一直挂起,直到我中断该过程。因为这是 pdfTeX 而不是 XeTeX,所以我可以中断它而不是杀死它,但这在实际意义上没有多大用处。
重新定义脚注规则和特定使用xxxtable
会导致问题。如果我删除其中任何一个,它都会编译通过。我不确定这意味着它会以其他方式工作,但至少这么多可以编译通过。
\renewcommand\footnoterule{\vspace*{-0.18mm}\setlength\leftskip{0pt}\setlength\rightskip{0pt plus 1fil}\noindent{\rule{0.25\columnwidth}{0.18mm}}\vspace*{1.01mm}}
我觉得这很奇怪。我没有写过它,我不相信它,也不知道该怎么办。
现在我可以看到我在发帖前寻找的相关问题,我试过了
\renewcommand\footnoterule{\vspace*{-0.18mm}\setlength\leftskip{0pt}\setlength\rightskip{0pt plus 1fil}\noindent\hrule width 0.25\columnwidth height 0.18mm\vspace*{1.01mm}}
但意识到我实际上不知道原始定义的目的是什么,即使与相关问题的答案中纠正的错误定义相比,这看起来也很奇怪。
\NewDocumentEnvironment{xxxtable}{ m }
{%
\makegapedcells
\begin{longtable}{!{\vrule width \xlineht}#1}
\Xhline{\xlineht}\endhead
\Xhline{\xlineht}\endfoot
}{%
\end{longtable}%
}
我觉得这有点奇怪。我确实写了它,但我并不完全相信它,而且我不确定这不是问题所在。
当我中断编译时,我得到
\unvbox
l.228 \end{xxxtable}
就像它永远被困在试图做的事情一样。
\documentclass[a4paper]{article}
\usepackage{array,makecell,longtable,calc,xparse,geometry,kantlipsum}
\newlength\xlineht
\newlength\mlineht
\setlength\xlineht{1.2pt}
\setlength\mlineht{.8pt}
\newcolumntype{P}[1]{p{#1}}
\newcolumntype{F}[1]{p{#1}!{\vrule width \xlineht}}
\setcellgapes{3pt}
\renewcommand\cellalign{cc}
\NewDocumentEnvironment{xxxtable}{ m }
{%
\makegapedcells
\begin{longtable}{!{\vrule width \xlineht}#1}
\Xhline{\xlineht}\endhead
\Xhline{\xlineht}\endfoot
}{%
\end{longtable}%
}
\geometry{top=25.4mm,left=25.4mm,height=234.29mm,width=158.21mm,footskip=24.82mm,headheight=0pt,headsep=0pt,marginparwidth=0pt,marginparsep=0pt,showframe}
\renewcommand\footnoterule{\vspace*{-0.18mm}\setlength\leftskip{0pt}\setlength\rightskip{0pt plus 1fil}\noindent{\rule{0.25\columnwidth}{0.18mm}}\vspace*{1.01mm}}
\renewcommand\arraystretch{1.3}
\begin{document}
\kant[1]
\begin{flushleft}
\begin{xxxtable}{>{\bfseries\arraybackslash}P{54.85mm}|F{\textwidth-54.85mm-4\tabcolsep-2\xlineht}}
xxxx: & \\\hline
xxxxxxx: & xxxxxxxxxxxx xxxxxxxx\\\hline
xxxxxx/xxxxxxxxxx/xxxxxxxxx: & xxxxxxxxxx xxx xxxxxxxxxxxx xxxxxxxxx\\\hline
xxxx xx xxxxxxxx: & xx xxxx xxxxx\\\hline
xxxx xx xxxxxx: & \\
\end{xxxtable}
\end{flushleft}
\bigskip
\textbf{xxxxxxx x - xxxx xxxxxx}
\textit{xxx xxxxxxx xxxxxx xx xxxxxxxxx xx xxx xxxxxxxx xx xxxxxxx xx xxx xxxxxxxxx xxxxxxxxxxx xxxxxxxxxxx xxxxxx
xxxxxxxxxx}\footnote{ \textrm{xxx xxxxxx xxxxxxx xxxxx xx xxxxxx xx xxxxx xxx/xx xxxxx, xxx xx xxxxx xxx xxxx xxxxxx xxxx xxxxx xxxxxxx xxxx xxxx xx xxxx xxxxxxxxxx, x xxxxxxxx xxxxxxxxxxx xx xxxx xxxxxx xx xxxx.}}\textit{ xxxx xxxx xxxxxxxx/xxxx xxxxxxx.}
\textit{xxxxxxxxxxx xxxxxxxx xxxxxx xxxxxx xx xxx xxxxxx xxxxxx xxxx -- xxxx}
\begin{flushleft}
\begin{xxxtable}{>{\bfseries\arraybackslash}P{26.77mm}|P{\textwidth-63.89mm-6\tabcolsep-2\xlineht}|>{\bfseries\arraybackslash}F{37.12mm}}
xxxxxxxxx & xx xxxxxx xxx xxxxx x xxxxxx xxxxxxx xx xxxxxxx. & xxxxxx\\\hline
xxxxxxx & & \\\hline
xxxxxxxxx & xx xxxxxxx xxxxxx xxxxxxxxxx xx xxxxx xx x xxxxx xxxxxxxx. & xxxxxx\\\hline
xxxxxxx & & \\\hline
xxxxxxxxx & xx xxxxxx xxxxxxxxxxx xxxxx xx xxxxxxxxxx (xxxxxxxx xxxx xx xxxxx 80\% xx xxxxxxxx xxxxxxx xxxxxxxxxx), xxxx xxxxxxx xxxx xxxxx xxx'x xxxxxxx xxxxxxx xxxxxxxx, xxx xx xxxxxxx xxxxxxxx xxxx xxxxxxxx xx xxxxx xxxx. & xxxxxx\\\hline
xxxxxxx & & \\\hline
xxxxxxxxx & xx xxxxx xxx xxxxxx xxxxxxxxxx, xxxxxxxxx xxxxxxxxxxxx xxxxxxx xxxxxxxx; xxxxxxxxxx xx xxx xxxxxxxx xxxxxx xxx xxxxxxxx; xxx xxxxxxxxxxxx xxxxx xxx xxxxxxxxx xxx xxxxxxxxxxx. & xxxxxx\\\hline
xxxxxxx & & \\\hline
xxxxxxxxx & xx xxxxx xxx x xxxxxxxx xxxx xxx xxxxxxxx, xxx xxxxxxxx xxxxxxxxx xxxx xx xxx xxxxxxxxxxx xxxxxxxxx xxx xxxxxxxx. & xxxxxx\\\hline
xxxxxxx & & \\\hline
xxxxxxxxx & xx xxxxxx xxx xxxxxx xxxxxxxxx, xxxxxxxxx xxxxxxx xx xxxxxxx xxxx, xx xxxxxxxxxx xxx xxxxxxxxxxxx xxxxxxxxx xx xxxx xx xxxxxxxx xxxxx xxx xxxxxx xxx xxxxx. & xxxxxx\\\hline
xxxxxxx & & \\
\end{xxxtable}
\end{flushleft}
\end{document}
答案1
您需要确保脚注规则是垂直构造
\renewcommand\footnoterule{%
\endgraf\vspace*{-0.18mm}%
\setlength\leftskip{0pt}%
\setlength\rightskip{0pt plus 1fil}%
\noindent{\rule{0.25\columnwidth}{0.18mm}}\vspace*{1.01mm}%
\endgraf}