我使用的是 Emacs 24.2.1,我认为没有任何特殊设置会造成干扰。如果我输入以下文本,则没有问题:
/cite{BibtexRef} Text that is not italicized. /cite{BibtexRef}
但这里有一个问题:
*/cite{BibtexRef} I don't want italics here. /I only want them here./*
我不明白为什么第二种情况下格式会混乱,而第一种情况下却不会。有人能解释一下吗?
为了让事情看起来更接近我想要的,我把所有的引用都用斜体表示,就像这样。
*/cite{BibtexRef}/* Not italicized. */Italicized./*
这会导致 Bibtex 出现问题吗?有更好的解决方案吗?
答案1
这似乎是语法上的误解,而不是 Org-mode 的问题。
您似乎混淆了斜杠/
和反斜杠\
。在 Org-mode 中,用(正)斜杠括起文本确实是为了强调,但(正)斜杠不用于引用 TeX 宏。要引用 TeX 宏,请使用反斜杠后跟宏的名称,例如\printbibliography
。
因此,由于 TeX 宏不以前导斜杠或前导反斜杠来引用,因此它们不是干扰 Org-mode 强调文本的语法。
这里举个例子来说明一下。下面是 Org-mode 文档:
#+title: Title
#+options: toc:nil
#+LaTeX_HEADER: \usepackage[style=authoryear]{biblatex}
#+LaTeX_HEADER: \begin{filecontents*}{bibliography.bib}
#+LaTeX_HEADER: @book{thebook,
#+LaTeX_HEADER: title = {Title},
#+LaTeX_HEADER: author = {Author},
#+LaTeX_HEADER: year = {2000}
#+LaTeX_HEADER: }
#+LaTeX_HEADER: \end{filecontents*}
#+LaTeX_HEADER: \bibliography{bibliography}
/italicized/ \cite{thebook} not italicized /italicized/
\printbibliography
如果将其导出为 LaTeX ( C-c C-e l
) 并进行编译(例如通过latexmk
),则部分输出将如下所示:
你可以看到,强调是正确的。Org-mode 缓冲区中的强调也证实了这一点:
答案2
这本身不是一个答案,但对于评论来说有点太长了:
您可能还希望在 LaTeX 级别上将所有引用都设为斜体,而不是在组织代码中,因为这样您就不会违反 DRY 原则。一种做法可能是这样的:
\let\originalcite=\cite
\def\cite#1{\emph{\cite#1}}
然而,这破坏了可选参数 to \cite
(可以使用合适的 进行修复\newcommand
)。也许一个更好的解决方案(虽然承认有点肮脏的黑客行为)可能是
\usepackage{etoolbox}
\pretocmd{\cite}{\emph\bgroup}{}{}
\apptocmd{\cite}{\egroup}{}{}
无论你是否使用类似的东西,这个解决方案都应该有效amsrefs
。但是,如果你不修改 LaTeX2e 的\cite
命令(例如通过\usepackage
ing \amsrefs
),这可能是最简单和最好的方法:
\makeatletter
\def\@cite#1#2{\emph{[{#1\if@tempswa , #2\fi}]}}
\makeatother
然而,我必须承认,我不明白观点你的问题:为什么有人会想将\cite
s 斜体化?即使你这么做了,也可能是这样:
\makeatletter
\def\@cite#1#2{[\emph{{#1\if@tempswa , #2\fi}}]}
\makeatother
因为它是作风很差将括号斜体化(我相信那些读过 Bringurst 的书的英文版的人可以为你提供这一说法的参考;))。如果你将其斜体化,那么你可能也想将参考书目中的条目也斜体化。
而当我们讨论这个问题时,似乎还没有人告诉你biblatex
(比旧的 更高级bibtex
)或amsrefs
(比 更好bibtex
,虽然可能更弱,但比 更容易上手biblatex
)。所以看看它们吧!