更改 BibTeX 搜索 .bst 文件的目录

更改 BibTeX 搜索 .bst 文件的目录

在上一个问题中(如何使用“agsm”参考书目样式将引文标注中的“et al”更改为斜体字体),Mico 的答案告诉我们将修改后的 .bst 文件放在“BibTeX 搜索的目录中”。但是,答案并没有明确说明该目录是什么以及如何更改它。(当然我知道这取决于 LaTeX 发行版的版本、用户名和操作系统,但我仍然想大致了解在使用 MiKTeX 和 Windows 时它在哪里)。

此外,我尝试重命名IEEEtranN.bst为,IEEEtranN-mod.bst同时将两个文件保留在 IEEE bst 文件的原始目录中。然后我使用\bibliographystyle{IEEEtranN-mod},但 BibTeX 似乎无法找到该文件。IEEEtranN为什么当它们都在同一个目录中时,BibTeX 可以使用原始版本,而不能使用修改后的版本?

这是我的测试代码示例

\begin{filecontents*}{sample.bib}
@article{aldaoudeyeh2016,
    title={{Photovoltaic-battery scheme to enhance PV array characteristics in partial shading conditions}},
    author={Aldaoudeyeh, Al-Motasem I},
    journal={IET Renewable Power Generation},
    volume={10},
    number={1},
    pages={108--115},
    year={2016},
    publisher={IET}
}
@ARTICLE{wu2017,
    title={{Assessing Impact of Renewable Energy Integration on System Strength Using Site-Dependent Short Circuit Ratio}},
    author={Wu, Di and Li, Gangan and Javadi, Milad and Malyscheff, Alexander M and Hong, Mingguo and Jiang, John Ning},
    journal={IEEE Transactions on Sustainable Energy},
    year={2017},
    publisher={IEEE}
}
@article{wu2019,
    title={A method to identify weak points of interconnection of renewable energy resources},
    author={Wu, Di and Aldaoudeyeh, Al Motasem and Javadi, Milad and Ma, Feng and Tan, Jin and Jiang, John N and others},
    journal={International Journal of Electrical Power \& Energy Systems},
    volume={110},
    pages={72--82},
    year={2019},
    publisher={Elsevier}
}
\end{filecontents*}

\documentclass[]{book}

\usepackage[x11names, svgnames]{xcolor}


%\usepackage[square, nonamebreak, sort&compress, comma]{natbib} % For IEEE
\usepackage[round]{natbib}
\newcommand{\citeauyear}[1]{%
    \citeauthor{#1}~[\citeyear{#1}] [Ref. \citenum{#1}]}


% C:\Users\almot\AppData\Local\Programs\MiKTeX 2.9\bibtex\bst\ieeetran


\usepackage{hyperref}
\hypersetup{citecolor=SlateBlue2, citebordercolor=SlateBlue2, 
    linkbordercolor=DodgerBlue3, linkcolor=DodgerBlue3, urlcolor=Blue1, colorlinks=true}


\begin{document}

\citeauyear{wu2017}, \cite{aldaoudeyeh2016,wu2019,wu2017}

\newpage
\bibliographystyle{IEEEtranN}
\bibliography{sample}

\end{document}

答案1

将文件放在 texmf 文件夹中。此文件夹的位置取决于操作系统

(如果这些文件夹结构尚不存在,请创建必要的文件夹)

如果将文件放置在那里后仍找不到,请texhash从命令行运行

答案2

Kpathsea 优先级的许多变化可以通过 EnvVars 控制,对于 bibtex,有两个专用的(其他与包相关的提到 TEXBIB 和 MLBIBINPUTS,但这些可能更特定于程序)

文档的 bibtex 文件的默认位置与该文档位于同一目录中。这里还描述了一组复杂的搜索https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-550007.1

最好将标准 bib 变量与 TDS 个人默认值对齐(见下文),这些示例仅供参考,不一定是真正的工作示例,您需要根据自己的使用情况进行调整。

../ 对于带有 \input\subdirectory 的项目中的父文件夹很有用 ./ 包括当前文件夹

在 Windows 中,对每个条目仅使用一次“setx”(它将在重启时生效)

setx BIBINPUTS=../;./;%HOME%/texmf/bibtex/bib/misc;
setx BSTINPUTS=../;./;%HOME%/texmf/bibtex/bst/misc;

Windows 用户注销/登录可能不够。例如,类似于其他支持论坛的建议“编辑~/.bash_profile 后,您[可能]必须重新启动您的 Mac。”

您可以使用 TEXINPUTS.bibtex=(见下文),但这可能有点过度,而且可能更难管理

路径顺序如 '.:$TEXMF//',将强制 ./texmf.cnf 覆盖 $TEXMF/tex/texmf.cnf 或以下路径

这是要求您将覆盖或丢失的文件放置在 .tex 目录中的常见原因

以下只是一小部分可以排序的覆盖位置

latex2e_inputs = .:$TEXMF/tex/latex//:$TEXMF/tex//
TEXINPUTS.latex2e = $latex2e_inputs % 将在 latex2e 编译时覆盖 TEXINPUTS=
TEXINPUTS = .:$TEXMF/tex// 应覆盖配置文件,如上所示
TEXMFCNF 配置文件(例如 config.ps 或 texmf.cnf)应覆盖默认值

TeX TDS 兼容系统的默认值(Mac TeX / MiKTeX / TeX Live / W32TeX 等)

/usr/local/share/texmf/ = TDS 根目录(某些系统(例如 Windows)的路径会有所不同)

/usr/local/share/texmf/bibtex/bib/base/(例如“xampl.bib”)
/usr/local/share/texmf/bibtex/bib/misc/单文件数据库
/usr/local/share/texmf/bibtex/bib/pkg/软件包的名称

/usr/local/share/texmf/bibtex/bst/base/(例如“plain.bst”、“acm.bst”)
/usr/local/share/texmf/bibtex/bst/misc/单文件数据库
/usr/local/share/texmf/bibtex/bst/pkg/软件包的名称

如果不存在这些系统默认值,则唯一始终有效的是当前目录或 MiKTeX 在其 texmf 路径中设置的任何目录,但结构应该是 TDS,因此您需要检查 %HOME% 位置,然后添加一个 texmf 文件夹,然后添加一个 bibtex 子文件夹,在该 bib 和 bst 文件夹中,都添加一个 misc 子文件夹

在 MiKTeX 中你指向并添加文本文件位于 %HOME%

相关内容