我想知道是否有办法优化我的引用顺序,以便它们输出文本中最少的数字。
因此,如果我有引文\cite{A,B,C}
和,稍后\cite{A,C,D}
它会意识到,如果我改为执行\cite{B,A,C}
和,\cite{A,C,D}
它会给出更短的输出。也就是说,第一种情况,其中一个将有(1-3)
,第二种情况(1,3,4)
。但如果对它们进行重新排序,您将得到(1-3)
和(2-4)
。
另一个例子:\cite{A,B,C}
,\cite{D,E,F}
,\cite{A,D,F}
可以优化为\cite{B,C,A}
,\cite{D,F,E}
,\cite{A,D,F}
。这样一来, , 就从(1-3)
,(4-6)
,(1,4,6)
变成了(1-3)
,(4-6)
,(3-5)
。
现在,这种方式只会从显示中删除一个数字,但我经常在每个\cite{}
命令中都有 9 个以上的引用(即\cite{Miro2012,Ling2010,Takao2010,Unruh2009,Goff2008,Kubatko2007,DeAquino2001,Rose1994,David1993}
),因此像这样的优化可能会将事情从 改变(1,3,5,7,9,11,13,15,17)
到(1-9)
极端(从 22 个字符减少到 3 个)。
除了 LaTeX 之外,我没有其他方法可以做到这一点。如果必须手动完成,我会首先列出每组引用,这些引用包含 3 条以上引用,并且这些引用也出现在文档的前面。然后,我会查找其中是否有任何引用出现在同一个引用块中,并将它们放在一起,前提是这不会使其他块变得更糟。然后,我会查找在较早的块中出现的任何引用是否出现在相邻的块中,并尝试将它们移动到末尾,如果我可以这样做而不会弄乱其他块。这不会生成优化的解决方案,但我认为它会产生更好的解决方案。如果用计算机执行此操作,我还会多次尝试以不同的顺序优化块,这样您就不会因为早期的重新排序而妨碍后面的重新排序。
有可能,你可以对不良分数进行一些处理,这样,如果它使另外两个引用块变得更好,或者使一个引用块变得好很多,那么你就可以搞乱一个引用块?
受@JosephWright 启发的重写在评论中得到了很好的解释:
我认为这里的重点是,如果一个人有多个多重引用,,,,
\cite{A,B,C}
那么每个参数的排序都会有一个最佳方法,即在连续运行中放置尽可能多的引用\cite{A,D,E}
,\cite{B,D,F}
从而降低输出的复杂性。 -Joseph Wright,2016 年 5 月 14 日 5:30例如,优化可能会发现,如果您先使用
\cite{A,B,C}
,然后\cite{B,D,E}
重新排序第一个案例,\cite{A,C,B}
将交换两个引用,并从输出 1---3(A = 1、B = 2、C = 3)和 2,4,5(D = 4、E = 5)变为 1--3(A = 1、C = 2、B = 3)和 3--5(D = 4、E = 5)。这里的重点是引用仍然按使用顺序排列,但在一次使用的集合中,顺序经过优化,以全局最小化需要打印的数字数量。– Joseph Wright 2016 年 5 月 14 日 13:34
原文:
目前,在每个引用块中,我按日期列出引用。所以我会有一个类似这样的命令:\cite{Miro2012,Ling2010,Takao2010,Unruh2009,Goff2008,Kubatko2007,DeAquino2001,Rose1994,David1993}
效果很好,LaTeX 帮我完成了排序,并给出了如下输出:14,19,62,70,71,75–78
这很丑陋,而且占用了相当多的空间。但是,其中大部分都是在论文前面的同一个引用块中引用的。所以实际上,如果我按顺序引用它们,我会得到更像这样的结果:14,19,62-68
鉴于我的大部分引用顺序在每个引用(日期)中都是任意的,我想知道是否有一个引用优化器可以遍历并尝试通过重新排序你之前的引用来尽可能压缩你后面的引用参考文献?有人在 LaTeX 中做过类似的事情吗?
如果我可以指定不这样做的时间(即,如果尚未引用,则此引用必须位于此块中的第一个)或者它可以与“achemso”一起使用,那就更好了,但我最好奇的是这是否可能。
(MWE 被删除,因为他们没有添加任何东西,只是让它看起来像是我试图用特定的引用包来做这件事,而我很好奇是否有可能做到这一点)。