【LaTex】11 ACM参考文献顺序引用 - 解决 ACM-Reference-Format 顺序不符合论文实际引用顺序的问题

【LaTex】11 ACM参考文献顺序引用

  • 写在最前面
  • 解决 ACM-Reference-Format 顺序不符合论文实际引用顺序的问题
    • 问题描述
    • 问题原因
    • 如何解决问题
      • 解决方案1(更简单)
      • 解决方案2(更自由)
  • 小结


请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

写在最前面

在学术论文写作中,参考文献的排序方式通常有两种:一种是按照引用顺序排序,另一种是按作者姓氏的字母顺序排列。

使用 ACM Reference Format 进行排版时,引用顺序可能会出现与实际引用顺序不一致的情况。本文将介绍这个问题的原因、解决思路,并提供有效的解决方案。

参考:https://www.cnblogs.com/haifwu/p/15457508.html
Latex——natbib宏包使用说明中文版
https://www.baeldung.com/cs/latex-bibtex-sort-references
https://blog.csdn.net/qq_46106285/article/details/138530789

解决 ACM-Reference-Format 顺序不符合论文实际引用顺序的问题

问题描述

当使用 ACM Reference Format 排版时,有时我们会发现,参考文献并没有按照我们在论文中实际引用的顺序出现。

这种情况会导致

  1. 作者在编辑论文时,不方便快速定位到参考文献相关区域,影响论文编辑优化体验。
  2. 读者在查看参考文献时,难以迅速找到对应的文献,影响阅读体验和论文的专业性。

问题原因

导致这一问题的原因主要有两个方面:

  1. BibTeX 的默认排序方式:BibTeX 默认按照作者姓氏的字母顺序排序参考文献,而不是按照引用的顺序。
  2. 缺乏适当的排序指令:在 LaTeX 文件中没有使用合适的排序指令,使得参考文献无法按照引用顺序排列。

如何解决问题

第一种解决方案则通过直接修改 .bst 文件中的排序设置,彻底禁用了默认的排序规则,使得参考文献能够按照我们引用的顺序出现。这种方法简单直接,适合不需要复杂排序功能的情况。

第二种解决方案的关键在于使用 natbib 宏包和适当配置的 .bst 文件。natbib 宏包提供了强大的引用管理功能,能够处理引用排序和格式问题。而通过配置 .bst 文件,我们可以确保参考文献按照实际引用的顺序排列,而不是默认的字母顺序。

解决方案1(更简单)

Makebst 工具是一个 LaTeX 包,它生成定制的参考文献样式。它允许我们设计自己的参考文献样式,同时管理排序偏好。

为了让 BibTeX 不对参考文献进行排序,有一种更简单的方法:

  1. 找到 ACM-Reference-Format.bst 文件:这是引用格式的设置文件。

  2. 修改排序设置:(一共有两个)

    • 打开 ACM-Reference-Format.bst 文件。
    • 使用文本编辑器中的搜索功能(如 Ctrl+F)并锁定大小写,搜索大写的 SORT
    • 注释掉所有的 SORT 相关代码。注释的方法是在每行代码前加 % 符号。

    例如:

    % SORT
    

    在这里插入图片描述

  3. 重新编译文档:在 LaTeX 文档中随意新增一个 \cite,然后重新编译即可。

解决方案2(更自由)

要解决这个问题,我们需要做以下几步:

  1. 使用 natbib 宏包:natbib 宏包可以提供更灵活的引用和排序功能。
  2. 配置 ACM-Reference-Format.bst 文件:使用一个定制的 .bst 文件来控制参考文献的排序方式。

具体步骤如下:

步骤1:确保没有冲突的 natbib 宏包

在 LaTeX 文档中导入 natbib 宏包时,可能会遇到选项冲突的问题。为了解决这个问题,首先需要确保文档中没有重复加载 natbib 宏包的地方。

  1. (如果是ACM模版,直接用2.)在 LaTeX 文档(.tex文件)的导言区(通常在 \documentclass 后面,\begin{document} 之前),检查是否已经加载了 natbib 宏包。如果已经加载,请确保所有加载都使用相同的选项。可以通过以下方式加载:
    (注意,多次加载natbib包并使用不同的选项会报错:确保natbib包只加载一次,并且使用一致的选项。检查您的文档导言区以及任何包含的包或模板,看看是否多次加载了natbib。)
    这里的 numbers 选项指示使用数字引用,而 sort&compress 选项则允许引用编号自动排序并压缩相邻的编号,比如说之前是[1, 2, 3, 4],可以压缩成[1-4]。

    \usepackage[numbers,sort&compress]{natbib}
    

    在这里插入图片描述

  2. 如果遇到选项冲突错误,可以在导言区添加以下命令,确保 natbib 选项一致:

    \PassOptionsToPackage{numbers,sort&compress}{natbib}
    \usepackage{natbib}
    

    在这里插入图片描述

宏包加载\usepackage[option]{natbib}
具体的 option 有
round: (default) 使用圆括号
square: 使用方括号
curly: 使用花括号
angle: 使用尖括号
colon: (default) 用引号分隔多个引用
comma: 用逗号分隔多个引用
authoryear: (default) 使用作者–年引用形式
numbers: 使用编号引用形式
super: 使用 Nature 那样的上标编号引用
sort: 多个引用按照首字母排序
sort&compress: 除排序外,多个引用可以合并 (如 3-6, 15)
longnamesfirst: 多个作者的文献第一次被引用时列出所有作者,以后的引用可以缩写为 et al.
sectionbib: 重定义了 \thebibliography 使用 \section* 而不是 \chapter*。这样使用 chapterbib 宏包时,参考文献名称为 section 一级
nonamebreak: 在一行排版所有作者名字,这可能引起 overfull hbox 警告但是消除了跨行的 hyperref 问题

步骤2:使用 natbib 宏包和 ACM-Reference-Format.bst 文件(这个源文件已包含)

  1. 确保你的 BibTeX 样式文件中包含如下指令:(一般会自带)

    \bibliographystyle{ACM-Reference-Format}
    

    在这里插入图片描述

  2. 编写 LaTeX 文档时,按正常流程引用参考文献:

    \cite{reference1}
    \cite{reference2}
    
  3. 在文档的末尾添加参考文献列表:

    \bibliography{your_bib_file}
    

小结

在学术写作中,参考文献的排序与实际引用顺序一致,还是修改起来更舒服的。

通过使用 natbib 宏包和适当配置的 .bst 文件,我们可以轻松解决这一问题,提升论文的质量和可读性。

希望本文的介绍能够帮助您在 LaTeX 写作中更好地管理参考文献。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/334056.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python代码:二十一、增加派对名单(二)

1、题目 描述 为庆祝驼瑞驰在牛爱网找到合适的对象,驼瑞驰通过输入的多个连续字符串创建了一个列表作为派对邀请名单,在检查的时候发现少了他最好的朋友“Allen”的名字,因为是最好的朋友,他想让这个名字出现在邀请列表的最前面…

移动云服务器选购指南(图文教程详解)

目录 一、前言 二、基本概念 2.1 定义 2.2 部署形式 2.3 用处 三、主流平台 四、主流产品推荐 4.1 云电脑 4.2 云主机ECS 4.3 弹性公网 IP 五、选购指南 5.1 明确场景 5.2 明确需求 5.3 明确身份 新用户 老用户 5.4 明确时间 5.5 明确教程 六、总结 一、前言…

Aws EC2 + Aws Cli + Terraform

1 什么是 Terraform? Terraform 是由 HashiCorp 创建的“基础架构即代码”(Infrastructure-as-Code,IaC)开源工具。Terraform 的配置语言是 HashiCorp Configuration Language(HCL),用来替代更加冗长的 JSON 和 XML 等…

Python魔法之旅-魔法方法(01)

目录 一、概述 1、定义 2、作用 二、主要应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类…

Dolphinscheduler不重启加载Oracle驱动

转载自刘茫茫看山 问题背景 某天我们的租户反馈数据库连接缺少必要的驱动,我们通过日志查看确实是缺少部分数据库的驱动,因为DolphinScheduler默认只带了Oracle和MySQL的驱动,并且需要将pom文件中的test模式去掉才可以在打包的时候引入。我…

Prompt Engineering

https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/ Few-shot: 有例子,效果好;增大了context长度,执行变慢; 可能的问题:1. Label不均衡造成生成label的bias;2.最后一个shot的label容易…

前端面试问题:子组件的某一个方法调用执行逻辑由父组件的属性状态变化来决定

面试官:请你讲讲你在该项目中遇到的问题是什么?你怎么解决这个问题? 答:我的回答:该项目的实现过程中我确实遇到了问题:【我会给大家整理回答思路和角度,那那么遇到这样的问题也可借鉴这种思路…

强化学习——学习笔记2

在上一篇文章中对强化学习进行了基本的概述,在此篇文章中将继续深入强化学习的相关知识。 一、什么是DP、MC、TD? 动态规划法(DP):动态规划法离不开一个关键词,拆分 ,就是把求解的问题分解成若…

解读:Mint Blockchain 最新路线图,释放 NFT 生态重磅发展计划

作者:Mint Ecosystem 关于 Mint Blockchain:Mint Blockchain 是一个以太坊原生 L2 网络,核心是发展 NFT 生态和产业,促进 NFT 领域的 Mass Adoption 产生。MintCore 团队致力于将 Mint Blockchain 打造成一个围绕服务 NFT 资产的…

GIT 新建分支和合并分支

文章目录 前言一、新建分支二、切回老分支,保留新分支的更改三、合并分支 前言 本文主要针对以下场景进行介绍: 场景一:创建新的分支 当前分支(dev_1)已经开发完毕,下一期的需求需要在新分支(dev_2)上进行开发,如何创…

Java整合EasyExcel实战——2 导出复杂表头

详情代码 实体类 Data public class ComplexHeadData {ExcelProperty({"主标题", "字符串标题"})private String string;ExcelProperty({"主标题", "日期标题"})private Date date;ExcelProperty({"主标题", "数字标…

UE5 Cesium2 最新使用地理配准子关卡构造全球场景

参考官方最新教程:Building Global Scenes with Georeferenced Sublevels – Cesium 创建持久关卡(主关卡) 这里一般包含DynamicPawn、CesiumSunSky 和 Cesium World Terrain 全球场景通用的对象。子关卡的创立,官方教程分为了两…

“揭秘:为什么羊驼Ollama成为计算机运行大型语言模型的最佳拍档?“

最近,AIM 评测了在计算机上本地运行大语言模型(LLM)的最佳工具,Ollama 脱颖而出,成为最高效的解决方案,提供了无与伦比的灵活性。Ollama 是 Jeffrey Morgan 开发的一款开源工具,它正在彻底改变爱…

Prometheus Operator创建告警规则并接入钉钉报警

prometheus之钉钉报警 前言1. 添加prometheus报警规则1.2 添加自定义报警规则文件 2. 配置钉钉报警2.2 部署dingding插件 3. 编写alertmanager配置文件 前言 在kubenetes上安装了kube-promethues(包含Prometheus Operator),程序正常跑起来了&#xff0c…

expect自动交互

在执行命令或脚本的时候,当控制台提示我们需要输入账号密码、参数等信息的时候,expect可以将预设的参数值自动输入到控制台,实现了自动交互。 1. 安装expect yum install expect 2. 案例: 创建 demo.exp 文件,并添…

BEVFusion的相机工作流中,图像编码之后FPN+ADP网络的作用

在BEVFusion的相机工作流中,图像编码之后会经过一个FPNADP的网络,那么这个结构的作用是什么呢 FPN大家都很熟悉,就是特征金字塔。但是这里还是贴一些来自GPT的废话 在Bird’s Eye View (BEV) 算法中使用的特征金字塔网络(FPN, Feature Pyrami…

C++容器之栈(std::stack)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 empty3.3 size3.4 top3.5 push3.6 emplace3.7 pop3.8 swap1 概述 堆栈是一种容器适配器,专门设计用于在后进先出(后进先出)环境中操作,其中元素仅从容器的一端插入和提取。   堆栈被实现为容器适配器,容器适配器是使用…

再创佳绩丨达梦数据库一体机荣获2024数字中国创新大赛·信创赛道总决赛一等奖

5月24日,第七届数字中国建设峰会在福州盛大开幕,峰会内容安排包含开幕式、主论坛、分论坛、数字中国创新大赛、现场体验区及成果发布和专业工作会议等。武汉达梦数据库股份有限公司(以下简称达梦数据)受邀参加并在展、会、赛等多个环节深度参与。达梦全栈…

在winnas中使用docker desktop遇到的问题及解决方法记录

最近在尝试从群晖转向winnas,一些简单的服务依然计划使用docker来部署。群晖的docker简单易用且稳定,在win上使用docker desktop过程中遇到了不少问题,在此记录一下以供后来人参考。 一、安装docker desktop后启动时遇到无法启动docker引擎 …

自回归模型(二):具有自回归误差的回归

让我们考虑一个问题,其中我们有一个y变量和多个x变量,它们都被测量为时间序列。举个例子,我们可以将y设定为高速公路上每月的事故数量,而x则表示每月在高速公路上的交通量,观测时间为连续的120个月。一个多元&#xff…