我定义了一个框来包含指令文件中每个部分的标题。我已经使用这个个人定义的框很长时间了,它一直运行良好。MWE 如下:
\ducumentclass{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{longfbox}
\newcommand*{\mylbox}[1]{\lfbox[border-style=double, border-width=3pt, width = \textwidth,
padding=4pt]{\textbf{\centerline{\Large #1}}}}
\newcommand*{\mysbox}[1]{\centerline{\lfbox[border-radius = 1.5ex, border-width=2pt,
padding=4pt, padding-left = 10em, padding-right = 10em]{\textbf{\large #1}}}}
\begin{document}
\mylbox{General Information}
\end{document}
但是,当我对文本进行一些更改时(这不可能是原因),我在编译文件时收到很多错误。这些错误消息的两个示例如下:
引用!未定义的控制序列。\fbox@border@hcornerarc@ ...er -x}\fi @tempdimd \fbox@adjusty {@tempdimb ... l.71 \mylbox{一般信息}
引用!您不能在受限水平模式下使用“\dimexpr”。\fbox@adjusty #1->\dimexpr \option {/fbox/@border-box-height} - #1\relax l.71 \mylbox{一般信息}
可以找到更完整的错误消息列表这里。
问题是什么?我唯一做的事情就是两天前通过 MikTex 更新了许多软件包。没有其他问题。
如果您还需要有关特定错误的更多详细信息,请告诉我。
答案1
不幸的是,依赖于曾经由分配但现在不再由分配的longfbox
临时寄存器。\@tempdimd
pict2e
您可以通过添加来解决问题
\makeatletter
\newdimen\@tempdimd
\makeatother
在您的文档序言中。顺便说一句,没有必要\centerline
。
\documentclass{article}
\usepackage{longfbox}
\makeatletter
\newdimen\@tempdimd
\makeatother
\newcommand*{\mylbox}[1]{%
\lfbox[
border-style=double,
border-width=3pt,
width = \dimexpr\textwidth-14pt,
padding=4pt,
]{\hfill\bfseries\Large #1\hfill}%
}
\begin{document}
\noindent\mylbox{General Information}
\end{document}
注:感谢 campa 在评论中指出\@tempdimd
曾经存在的内容pict2e
。