用可见括号替换语法括号

用可见括号替换语法括号

总体概述

我有我正在处理的文档本身的 BibTeX 条目,我将这个定义放在一个变量中,以便能够在任何我想用的地方使用它。目标是在文档上打印这个条目(以便让读者能够在他们自己的 BibTeX 作品中引用这个文档)。

问题

但是,由于 BibTeX 包含括号,当我调用该函数时,括号被解释为 LaTeX 语法,因此它们消失。

平均能量损失

\documentclass[a4paper,12pt]{article}
\usepackage{xstring}

\title{foo}
\author{baz}
\date{Bar}

\makeatletter
\newcommand\bibtexselfentry{
 @book{thisDocumentItself,

    title  = {\@title},

    author = {\@author},

    publisher = {Éditeur},

    year = {\@date}
 }
}
\makeatother

\newcommand\bibtexselfentryVisible{%
  \StrSubstitute{\bibtexselfentry}{\{}{\textbraceleft}[\temp]%
  \StrSubstitute{\temp}{\}}{\textbraceright}%
  \temp
}

\begin{document}

Cite this work with the following Bib\TeX{} definition:

\texttt{\bibtexselfentry}

\end{document}

输出渲染

渲染

如您所见,括号完全消失了。

我想象的解决方案

正如您在我的 MWE 中看到的,我添加了一个\bibtexselfentryVisible命令来用可见括号替换语法括号,但它对最终行为几乎没有影响。

问题

\bibtexselfentry当我需要时如何使括号可见?它不应该总是可见,因为有时它\bibtexselfentry可以像真正的 BibTeX 命令一样运行。

相关内容