如何获取 \textcite 中的方括号选项?

如何获取 \textcite 中的方括号选项?

目前我在序言中有:

\usepackage[
        backend=biber,
        style=authoryear,
        isbn=false,
        doi=false
]{biblatex}

我的图形代码如下:

\begin{figure}
    \centering
    \includegraphics[width=0.7\textwidth]{Ecore_kernel.pdf}
    \caption{Kern-Elemente von Ecore}
    \label{Ecore_kernel}
    \small{(Eigene Darstellung in Anlehnung an \textcite[S. 124]{Steinberg2009})}
\end{figure}

它产生了一个没有错误的良好输出,但引用看起来像:

(Eigene Darstellung in Anlehnung an Steinberg u.a. (2009, S. 124))

我需要在外括号内使用方括号,而不是圆括号,例如:

(Eigene Darstellung in Anlehnung an Steinberg u.a. [2009, S. 124])

我搜索了类似的问题,只发现此解决方案我觉得对于这个简单的任务来说有点太多了。我还读了biblatex 文档它没有提供有关此任务的信息\textcite{}

我想到了一个解决方案,\textcite[brackets][][S. 124]{Steinberg2009}如果可能的话。

我希望你有一个好的解决方案:)

答案1

您可以利用 的biblatex括号嵌套功能。 biblatex可以跟踪嵌套级别,并根据级别自动选择正确的括号形式((...)或)。(括号的最大嵌套级别也是可以更改的,默认值为三。)[...]maxparens

最简单的方法是使用biblatex带有括号跟踪的命令之一,将文字括号替换(...)\parentext{...}(\或mkbibparens{...})。例如

{\small \parentext{Eigene Darstellung in Anlehnung an \textcite[124]{Steinberg2009}}}

由于\parentext是通过 定义的\newrobustcmd*{\parentext}{\mkbibparens},因此biblatex.sty您也可以使用\mkbibparens而不是\parentext,后者只是前者的别名。

这可能是一个有趣的争论,哪个命令更受欢迎。\parentext列在§3.7.5文本命令这些文本命令“[...] 旨在用于文本流”(第 89 页biblatex文档)。 While\mkbibparens是一个“将其参数括在括号中的通用命令”(第 225 页),并在 §4.10.4 中列出辅助命令和钩子


您还可以定义命令来手动跟踪括号

\makeatletter
\newcommand{\openpar}{%
  \global\advance\blx@parenlevel\@ne
  \global\advance\c@parenlevel\@ne}
\newcommand{\closepar}{%
  \global\advance\blx@parenlevel\m@ne
  \global\advance\c@parenlevel\m@ne}
\makeatother

\openpar在手动插入之前或之后使用(会告诉biblatex您打开了一个括号,然后在之后)您可以通过为跟踪器关闭它\closepar。例如

(\openpar\textcite{geer})\closepar

由于这似乎需要记住很多内容并使用两个命令,因此另一种方法似乎更可取。

相关内容