RevTex-4 脚注和上下箭头无法协同工作

RevTex-4 脚注和上下箭头无法协同工作

我正在使用 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应该使用。

相关内容