![“未定義的控制序列”heisenbug](https://rvso.com/image/370314/%E2%80%9C%E6%9C%AA%E5%AE%9A%E7%BE%A9%E7%9A%84%E6%8E%A7%E5%88%B6%E5%BA%8F%E5%88%97%E2%80%9Dheisenbug.png)
我正在編輯下面的文件,並開始收到“未定義的控制序列”錯誤。問題是,我不認為程式碼有錯誤。事實上,在第6 項中,第二個數學顯示是從第一個數學顯示複製的,但是當我有第二行時我會收到錯誤,但如果我刪除第二行而只有第一行則不會。同樣,如果我刪除文件的其他隨機部分,該文件也可以正常編譯。我認為這可能是軟體中某個地方的錯誤,但我不確定如何處理。我正在使用 Texmaker 4.5。如果有人能告訴我如何解決這個問題或我可以向哪個小組報告錯誤,那就太好了。錯誤和程式碼如下。
! Undefined control sequence.
\f@ncyorh ->\myauthor
\strut
l.120 \end{document}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
[2] (./PainRankinErrata.aux) )
Here is how much of TeX's memory you used:
13472 strings out of 493089
262778 string characters out of 6134842
311803 words of memory out of 5000000
16685 multiletter control sequences out of 15000+600000
6590 words of font info for 26 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
55i,12n,67p,425b,262s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/local/texlive/2015/texmf-dist/fonts/type1/p
ublic/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/pu
blic/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/publ
ic/amsfonts/cm/cmr10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public
/amsfonts/cm/cmr5.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/am
sfonts/cm/cmr7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfo
nts/cm/cmss10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfon
ts/cm/cmsy10.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfont
s/cm/cmsy7.pfb></usr/local/texlive/2015/texmf-dist/fonts/type1/public/amsfonts/
cm/cmti10.pfb>
Output written on PainRankinErrata.pdf (2 pages, 86516 bytes).
PDF statistics:
50 PDF objects out of 1000 (max. 8388607)
36 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
13 words of extra memory for PDF output out of 10000 (max. 10000000)
和程式碼
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{comment}
\usepackage{fancyhdr}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{calc}
\pagestyle{fancy}
\usepackage{enumerate}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\erfc}{erfc}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\I}{\mathbb{I}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\lb}{\lbrace}
\newcommand{\rb}{\rbrace}
\newcommand{\exist}{\exists}
\newcommand{\abs}[1]{\lvert#1\rvert}
\newcommand{\norm}[1]{\lVert#1\rVert}
\newcommand{\seq}[1]{\left\lb#1\right\rb}
\theoremstyle{definition}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newcommand{\mytitle}{Errata for Introduction to Vibrations and Waves by H. J. Pain and Patricia Rankin}
\newcommand{\mydate}{February 11, 2018}
\newcommand{\mymaketitle}{
\centering{\mytitle\\
\mydate\\
}
}
\lhead{\mydate}
\chead{\mytitle}
\rhead{\myauthor}
\begin{document}\thispagestyle{empty}
\mymaketitle
\bigskip
\begin{enumerate}
\item Page 9, Worked Example. The following text\\
\bigskip
\fbox{\begin{minipage}{4 in}
In Figure 1.1(g) the energy equation is
\begin{gather*}
E = \frac{1}{2}m\dot x^2 + A\rho gx^2\\
\frac{\mathrm{d}E}{\mathrm{d}t} = (m\ddot x + 2A\rho gx)\dot x = 0\\
m\ddot x + sx = 0
\end{gather*}
with
\begin{gather*}
s=2A\rho g\\
\omega^2 = \frac{2A\rho g}{m} = \frac{2g}{l}
\end{gather*}
\end{minipage}}\\
\bigskip
should be replaced with\\
\bigskip
\fbox{\begin{minipage}{4 in}
In Figure 1.1(g) the energy equation is
\begin{gather*}
E = \frac{1}{2}m\dot x^2 + \frac{1}{2}A\rho gx^2\\
\frac{\mathrm{d}E}{\mathrm{d}t} = (m\ddot x + A\rho gx)\dot x = 0\\
m\ddot x + sx = 0
\end{gather*}
with
\begin{gather*}
s=A\rho g\\
\omega^2 = \frac{A\rho g}{m} = \frac{g}{l}
\end{gather*}
\end{minipage}}\\
\bigskip
This makes the formula for $\omega^2$ match that in Figure 1.1(g).
\item Page 12, Figure 1.5. Change the label
\begin{equation*}
\mathsf{L\dot q + \frac{q}{c} = 0}
\end{equation*}
to
\begin{equation*}
\mathsf{L\ddot q + \frac{q}{c} = 0}
\end{equation*}
\item Page 14, Figure 1.6. Change the angle for $\phi_2$ to indicate the angle between the x-axis and the vector with length $a_2$.
\item Page 18, Problem 1.10. Change ``a spring of length \textit{1}'' to ``a spring of length $l$''.
\item Page 35, last line. Change
\begin{equation*}
A^2 = A_0^2 e^{(-rt/2m)^2}
\end{equation*}
to
\begin{equation*}
A^2 = A_0^2 (e^{-rt/2m})^2
\end{equation*}
\item Page 37, first equation. Change
\begin{equation*}
-\Delta E = \frac{\mathrm{d}E}{\mathrm{d}t} \Delta t = \frac{-r}{m} E \frac{1}{\nu'}
\end{equation*}
to
\begin{equation*}
-\Delta E = \frac{\mathrm{d}E}{\mathrm{d}t} \Delta t = \frac{-r}{m} E \frac{1}{\nu'}
\end{equation*}
\item Page 39, Worked Example solution, first line. Change ``Critical dumping:'' to ``Critical damping:''.
\end{enumerate}
\begin{flushleft}
\end{flushleft}
\end{document}
答案1
如果您查看錯誤訊息,
! Undefined control sequence.
\f@ncyorh ->\myauthor
\strut
它告訴你命令\myauthor
(TeX 術語中的控制序列)未定義。如果你查看你的文檔,你會定義\mytitle
and\mydate
但不是\myauthor
。
該錯誤看起來是一個 Heisenbug,因為它僅在您建造“奇特”標頭時才會觸發;第一頁沒有頁首或頁尾 ( \thispagestyle{empty}
),因此只有當文件足夠長以產生另一個頁面時才會發生這種情況。
您可能會懷疑,因為\f@ncyorh
提醒“花哨”(實際上,包的內部“變數”和“函數”fancyhdr
都使用該前綴存儲,以避免與其他套件發生衝突)。
所以
\newcommand{\myauthor}{user109923}
會修復它。