Ogonek 被拒绝列入参考书目

Ogonek 被拒绝列入参考书目

我正在尝试编写一个参考书目,它不会接受包含 ogonek 的人的名字。我没有使用\k,我需要它来做其他事情,所以我使用了\let\ogonek\k\newcommand{\eogonek}{\ogonek{e}}因为 BibTeX 曾经遇到过以 开头的任何内容的问题\o.bbl生成的文件以

\begin{thebibliography}{{St{\}}02}

以人名开头(无意义的{\}是 e-ogonek 应该出现的位置),然后书目将无法编译,因为它缺少}。我知道这应该是开头的宽度参数,我可以用另一个名称替换它,以及\bibitem同样损坏的 ,但我只想能够正常编译,而不必.bbl每次都手动编辑 。我确实有\usepackage[T1]{fontenc}其他各种东西。这曾经在另一个系统上运行过。我目前正在使用 MacTeX。


编辑:我终于整理出了一个 MWE。这是 .tex 文件:

\documentclass{article}
\usepackage[T1]{fontenc}
\let\ogonek\k       
\newcommand{\eogonek}{\ogonek{e}}
\renewcommand   {\k}            {k}
\bibliographystyle{alphaurl} 
\begin{document}
St{\ogonek{e}}pie{\'n}~\cite{stepien2002formal} showed...
\bibliography{bibshort}
\end{document}

以下是 .bib 文件的相关部分:

@article{stepien2002formal,
    author = "{St{\eogonek}pie{\'n}}, Zofia",
    journal = "Geom. Dedicata",
    number = "1",
    pages = "37--45",
    publisher = "Springer",
    title = "{On formality of a class of compact homogeneous spaces}",
    volume = "93",
    year = "2002",
    doi = "10.1023/A:102031393"
}

我用路径编译它txs:///pdflatex | txs:///bibtex | txs:///pdflatex | txs:///pdflatex | txs:///view-pdf

生成的.bbl 文件如下。

\begin{thebibliography}{{St{\}}02}

\bibitem[{St{\}}02]{stepien2002formal}
Zofia {St{\eogonek}pie{\'n}}.
\newblock {On formality of a class of compact homogeneous spaces}.
\newblock {\em Geom. Dedicata}, 93(1):37--45, 2002.
\newblock \href {http://dx.doi.org/10.1023/A:102031393}
  {\path{doi:10.1023/A:102031393}}.

\end{thebibliography}

括号数量不匹配会导致这些错误,如 .log 中记录的那样:

(./bib_ogonek_min.bbl)
Runaway argument?
{{St{\}}02} \par \bibitem [{St{\}}02]{stepien2002formal} Zofia {St{\eogonek \ET
C.
! File ended while scanning use of \thebibliography.
<inserted text> 
                \par 
l.9 \bibliography{bibshort}

I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.


! LaTeX Error: \begin{thebibliography} on input line 1 ended by \end{document}.


See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.10 \end{document}

感谢您的耐心等待。

答案1

\k无论如何,重新定义都是一个坏主意。

如果你喜欢冒险,

author = "{St{\eogonek}pie{\'n}}, Zofia",

应该

author = "St{\eogonek}pie{\'n}, Zofia",

更好的是,使用

author = {St{\eogonek}pie{\'n}, Zofia},

现在你知道为什么重新定义\k是一个坏主意了。事实上,在文档中,

[Stke02]

而不是参考书目中预期的 [Stę02]。

有什么解决方法吗?是的,不重新定义\k

问题在于hyperref在于期望所有 LICR 命令(LaTeX 内部字符表示)不是需要重新定义,因为其内部必须进行多次编码切换。如果你这样做

\show\ogonek

之后\begin{document},你会看到

> \ogonek=macro:
->\PD1-cmd \k \PD1\k .

如果你不加载hyperref,那么你的方法可能会有效。

相关内容