具有特定条目的替代书目,而不假设全局书目

具有特定条目的替代书目,而不假设全局书目

以下问题这个

我有一份很长的文档,末尾有一个(单一)参考书目。出于某种原因,我在文档的两个不同位置引用了 3 个来源,需要当场为这 3 个条目排版参考书目。这些来源是不是在全球书目中。我该怎么做?

我正在使用 bibtex,但没有使用 biblatex。(目前。)

另外,我对排版引用键或参考书目标题不感兴趣。这些可以在解决方案中,我只是为了自己的目的而将其删除。

我目前的想法:使用multibib

\usepackage{multibib}
\newcites{acks}{Acknowledgement page references}
\bibliographystyleacks{alpha}
...
\nociteacks{GKNR-foracks}
\nociteacks{FR2011-foracks}
\nociteacks{FR2007-foracks}
\begingroup
\renewcommand{\section}[2]{}%
\renewcommand{\chapter}[2]{}%
\bibliographyacks{front/acks}
\endgroup

问题是,我并不想真正发出\bibliographyacks命令来排版参考书目 - 主要是因为我不需要引用键,也不需要缩进等。我希望能够做一些类似于解决方案的事情我的另一个问题;这使我能够轻松地摆弄 bibitem、将其括入框架/小页面、更改大小等。

答案1

好的,我找到了一个解决方案,它也应该清楚地表明我的意思。

% \butcheredbibliography - inserts an on-the-spot 'bibliography' -
% no title, no new section/chapter etc. - with no cite keys, smaller
% font and enclosed in a frame. Usable on the acknowledgement page
% of your thesis. This \nocite{}'s everything in the bib file, so
% have one with just those entries you need, or otherwise do your
% own nocites.
%
% arguments:
%  #1  the multibib bibliography name (appended to certain commands)
%  #2  the bibliography filename/s
%
\newsavebox{\butcheredbib@box}
\newcommand{\butcheredbibliography}[2]{
  \makeatletter
  \ifdefined\butcheredbib@acks
    % already used the #1 bibliography's source file/s, so
    % no need to re-indicate all items are necessary
  \else
    \@nameuse{nocite#1}{*} % e.g. \nociteacks{*}
  \fi
  \begingroup
  \let\etalchar\@undefined
  \def\thebibliography##1{%
    \begin{center}%
    \begin{spacing}{1}%
    \begin{lrbox}{\butcheredbib@box}%
    \footnotesize
    \begin{minipage}{0.9\textwidth}%
    \begin{list}{}{%
      \setlength{\leftmargin}{0in}%
      \setlength{\rightmargin}{0in}%
      %\setlength{\leftmargin}{0.1\textwidth}%
      %\setlength{\rightmargin}{0.1\textwidth}%
      }%
  }%
  \def\endthebibliography{%
    \end{list}%
    \end{minipage}%
    \end{lrbox}%
    \fbox{\usebox{\butcheredbib@box}}
    \end{spacing}%
    \end{center}%
  }%
  % the following works for 'alpha' bibliographystyle, and probably
  % most other styles in which a non-numeric key is generated - it uses
  % the generated cite key instead of the bullet
  \def\bibitem[##1]##2##3\par{\item[]##3}%
  % One can also filter the results, using an extra argument #3
  %\def\bibitem[##1]##2##3\par{\IfSubStr{,#3,}{,##2,}{\item[]##3}{}}%
  \ifdefined\butcheredbib@acks
    % already used the #1 bibliography's source file/s; we're
    % assuming the caller has not indicated other sources...
    \@input{#1.bbl}%
  \else
    \@nameuse{bibliography#1}{#2}
  \fi
  \global\expandafter\def\csname butcheredbib@#1\endcsname{}
  \endgroup%
  \makeatother
}

我在博士论文中使用过两次这个东西,在希伯来语和英语致谢页上——我们的研究生院对此有一个愚蠢的要求。请参阅 英文頁面希伯来语页面

无论如何,acks.bib 文件包含我需要使用的那些项目。我本可以做不同的事情(参见注释掉的过滤),但最终没有必要这样做。

相关内容