我正在使用 RevTex-4 中的脚注命令,当我使用该\updownarrow
命令时,LaTeC 会抛出错误。以下代码存在问题:
\documentclass{revtex4-1}
\begin{document}
\footnote{$\updownarrow$}
\end{document}
但是,类似的命令最终还是可以工作的,例如\leftarrow
和\nearrow
。抛出的错误对我来说毫无意义;它们是文件中的错误output.bbl
,并显示“缺失数字被视为零”之类的内容。有人有什么见解吗?
答案1
revtex 会移动脚注。这意味着您必须保护脆弱的命令:
\documentclass{revtex4-1}
\begin{document}
\footnote{$\protect\updownarrow$}
\end{document}
答案2
这是 中的一个错误,它使用作为字段分隔符revtex4-1
写出文件;例如,如果使用德语,则在准备文件时,用作简写的双引号会使 BibTeX 产生混淆,从而导致混乱。.bib
"
babel
.bbl
对于一些定义为分隔符的宏也是如此,例如\updownarrow
:LaTeX 定义是
\delimiter "326C33F
事实上你会发现,在aaronNotes.bib
(我将aaron.tex
你的测试文件命名为)
@FOOTNOTE{Note1,key="Note1",note="$\delimiter "326C33F$"}
您可以清楚地看到出了什么问题: BibTeX 误将"
after\delimiter
视为字段分隔符。
解决方案:修复revtex4-1
使用括号来分隔 BibTeX 字段的问题。
\documentclass{revtex4-1}
% fix \@endnotetext
\makeatletter
\long\def\@endnotetext#1{%
\begingroup
\endnote@relax
\immediate\write\@bibdataout{%
@FOOTNOTE{%
\@endnotelabel,%
key={\@endnotelabel},% not "\@endnotelabel"
note={\unexpanded{#1}}% not "#1"
}%
}%
\endgroup
}
\makeatother
\begin{document}
\footnote{$\updownarrow$}
\end{document}
条目也@CONTROL
用双引号引起来,但这似乎不太可能产生类似的问题。
笔记
- 我添加了它
\unexpanded
以提高安全性。 - 正如 Ulrike Fischer 所评论的,
\{
的参数中不匹配的括号\footnote
无论如何都会断开;在这种情况下,\lbrace
应该使用。