我有以下 MWE,它创建了一个自定义书目
\documentclass[12pt]{report}
\usepackage{hyperref} %
\hypersetup{
colorlinks=true,
linkcolor=[rgb]{0.4,0.8,0.9},
filecolor=magenta,
urlcolor=cyan,
}
%
% Bibliography stuff
%
\usepackage[backend=biber,maxbibnames=99]{biblatex}
\begin{filecontents*}{biblatex-dm.cfg}
\DeclareDatamodelFields[type=field,datatype=verbatim]{pmid}
\DeclareDatamodelEntryfields{pmid}
\DeclareDatamodelFields[type=field,datatype=verbatim]{pmcid}
\DeclareDatamodelEntryfields{pmcid}
\end{filecontents*}
\DeclareFieldFormat{eprint:pmcid}{%
PMCID\addcolon\space
\ifhyperref
{\href{http://www.ncbi.nlm.nih.gov/pmc/articles/#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\DeclareFieldAlias{eprint:PMC}{eprint:pmcid}
\DeclareFieldAlias{eprint:PMCID}{eprint:pmcid}
\DeclareFieldAlias{eprint:pmc}{eprint:pmcid}
\DeclareFieldAlias{pmcid}{eprint:pmcid}
\DeclareFieldAlias{pmid}{eprint:pubmed}
\DeclareFieldAlias{eprint:pmid}{eprint:pubmed}
\renewbibmacro*{doi+eprint+url}{%
\iftoggle{bbx:doi}
{\printfield{doi}}
{}%
\newunit\newblock
\printfield{pmcid}%
\newunit\newblock
\printfield{pmid}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\iftoggle{bbx:url}
{\usebibmacro{url+urldate}}
{}}
\usepackage{filecontents}
\begin{filecontents*}{bubtest.bib}
@article{Konietzny2017,
langid = {english},
title = {Dendritic {{Actin Cytoskeleton}}: {{Structure}}, {{Functions}}, and {{Regulations}}},
volume = {11},
issn = {1662-5102},
doi = {10.3389/fncel.2017.00147},
shorttitle = {Dendritic {{Actin Cytoskeleton}}},
abstract = {Actin is a versatile and ubiquitous .},
journaltitle = {Frontiers in Cellular Neuroscience},
shortjournal = {Front Cell Neurosci},
date = {2027},
pages = {147},
keywords = {actin,cytoskeleton,dendrites,Arp2/3-complex,cofilin,formin,protein trafficking},
author = {Konietzny, Anja and Bär, Julia and Mikhaylova, Marina},
eprinttype = {pmid},
eprint = {28572759},
pmcid = {PMC5435805}
}
\end{filecontents*}
\addbibresource{bubtest.bib}
\begin{document}
Here is some contenty content \parencite{Konietzny2017}
\printbibliography
\end{document}
当我在编辑器 TeXstudio 中编译此文件时,编译正确。我的参考书目中同时出现了 PMCID 和 PMID。
但是,如果我重新开始(删除所有 .aux 文件等)并通过命令行 lualatex 编译文档,它就不起作用。
这些是我运行的命令
lualatex document.tex
biber document
lualatex document.tex
我查看过,在 TeXstudio 中唯一看到的命令是:
lualatex -synctex=1 -interaction=nonstopmode %.tex
我尝试使用这些选项运行命令行,结果相同。TeXstudio 的编译方式一定不同。
我如何才能确定要使用哪些选项,以使命令行编译工作相同?
编辑
我应该说得更清楚。它在 texstudio 和命令行中都可以编译。但它们会产生不同的参考书目。
在 TexStudio 中,我得到了这个
Anja Konietzny, Julia Br, and Marina Mikhaylova. “Dendritic Actin
Cytoskeleton: Structure, Functions, and Regulations”. In: Frontiers in
Cellular Neuroscience 11 (2027), p. 147. issn: 1662-5102. doi: 10.3389/
fncel.2017.00147. PMCID: PMC5435805. PMID: 28572759.
当我编译命令行时,我得到了这个:
Anja Konietzny, Julia Br, and Marina Mikhaylova. “Dendritic Actin
Cytoskeleton: Structure, Functions, and Regulations”. In: Frontiers in
Cellular Neuroscience 11 (2027), p. 147. issn: 1662-5102. doi: 10.3389/
fncel.2017.00147. PMID: 28572759.
请注意,在命令行上编译的第二个版本中没有 PMCID。
编辑2
这是正在使用的 texstudio .log 文件的 pastebin
这是不起作用的命令行 lualatex .log 文件的 pastebin
这两个文件确实说了不同数量的“pdf对象”,但我不知道那是什么意思。
答案1
您的问题可以通过在开始时额外运行 lualatex 来解决。因此您必须运行:
lualatex document.tex
lualatex document.tex
biber document
lualatex document.tex
lualatex document.tex
第一次运行生成文件 biblatex-dm.cfg,该文件在第二次运行中用于生成 biber 的输入,而 biber 则生成最后几次 lualatex 运行中包含的参考书目。
您的问题是,在第一次运行期间,lualatex 尚未找到 biblatex-dm.cfg,因此在生成 biber 输入时会忽略它。TeXstudio 可能没有出现此问题,因为您之前使用 TeXstudio 编译了文档,因此该文件已经存在。