我正在编写一本期刊,其中每篇论文都是一个\section*
,用来\include
将所有内容放在一起。参考文献方面,每篇论文都有以下格式:
``Lorem''.\footnote{Bostock \cite{bostock2} p.~87.}
``Ipsum''.\footnote{Ibid.~p.~133.}
\begin{thebibliography}{99}
\bibitem{bostock2} Bostock, D. (2009) \emph{Philosophy of Mathematics}. Oxford: Wiley-Blackwell.
\end{thebibliography}
这种方法还算合理,但我意识到如果两篇论文使用相同的标签(由于论文是分开排版的,所以这种情况很有可能发生),这种方法就会出现问题。因此,如果论文 1 只引用了一篇论文,bostock2
而论文 2 引用了一篇论文bostock1
,bostock2
顺序相同,那么论文 1 中应该为 [1] 的脚注将变为 [2]。
我知道这是一种非常混乱的做事方式,但有没有一种干扰最小的方式(即不让非专业人士花费比已经做的更多的时间来重新安排别人的书目)来解决这个问题?
梅威瑟:
\documentclass{article}
\begin{document}
\section*{Paper 1}
Ipsum \cite{ipsum}, % I want this to produce the text '[1]', since it is number 1 in this paper's bibliography.
Dolor \cite{dolor}
\begin{thebibliography}{9}
\bibitem{ipsum} Ipsum
\bibitem{dolor} Dolor
\end{thebibliography}
\section*{Paper 2}
Lorem \cite{lorem}, Ipsum \cite{ipsum}
\begin{thebibliography}{9}
\bibitem{lorem} Lorem
\bibitem{ipsum} Ipsum
\end{thebibliography}
\end{document}
答案1
您可以ChrisH
通过修改宏来自动添加前缀,将 的前缀解决方案应用为软件修复。为此,请在序言中添加:
% Save old cite/bibitem command(s)
\let\oldcite\cite
\let\oldtextcite\textcite % Add others as needed
\let\oldbibitem\bibitem
% Add new counter to increment at each paper
\newcounter{papernum}
\def\nextpaper{\stepcounter{papernum}}
% Define new cite/bibitem command(s) with prefix applied
\def\mynewcite#1{\oldcite{\thepapernum#1}}%
\def\mynewtextcite#1{\oldtextcite{\thepapernum#1}}%
\def\mynewbibitem#1{\oldbibitem{\thepapernum#1}}%
% Reroute original commands to new commands
\let\cite\mynewcite%
\let\textcite\mynewtextcite%
\let\bibitem\mynewbibitem%
然后唯一需要做的更改是\nextpaper
在每篇论文的开头添加。如下面的代码所示,你可以将其应用于所有\section*
命令,但您需要注意不要在不应该增加计数器的地方增加计数器(例如在本例中,在参考文献排版之前)。
正如所期望的,输出变成:
完整代码
\documentclass{article}
\begin{document}
% Save old cite/bibitem command(s)
\let\oldcite\cite
\let\oldtextcite\textcite % Add others as needed
\let\oldbibitem\bibitem
% Add new counter to increment at each paper
\newcounter{papernum}
\def\nextpaper{\stepcounter{papernum}}
% Define new cite/bibitem command(s) with prefix applied
\def\mynewcite#1{\oldcite{\thepapernum#1}}%
\def\mynewtextcite#1{\oldtextcite{\thepapernum#1}}%
\def\mynewbibitem#1{\oldbibitem{\thepapernum#1}}%
% Reroute original commands to new commands
\let\cite\mynewcite%
\let\textcite\mynewtextcite%
\let\bibitem\mynewbibitem%
\section*{Paper 1}\nextpaper %This could be wrapped into whatever unit you use to start a new paper; just make sure another sectioning command (in this case, References is also a \section*) doesn't increment the counter in places you don't want it to.
Ipsum \cite{ipsum}, % I want this to produce the text '[1]', since it is number 1 in this paper's bibliography.
Dolor \cite{dolor}
\begin{thebibliography}{9}
\bibitem{ipsum} Ipsum
\bibitem{dolor} Dolor
\end{thebibliography}
\section*{Paper 2}\nextpaper
Lorem \cite{lorem}, Ipsum \cite{ipsum}
\begin{thebibliography}{9}
\bibitem{lorem} Lorem
\bibitem{ipsum} Ipsum
\end{thebibliography}
\end{document}
选择
只是另一个想法......
ChrisH
还评论说:“我认为合并 PDF 不是一个选项,因为文章可能会共享一个页面?”这实际上是一些期刊采用的策略,其中的论文设计有更宽的边距,没有页眉/页码。这些“照相排版”论文可以通过以下方式添加到期刊文档中:pdfpages
并在更大的包中生成页眉/页码并叠加在论文上(通过类似于在这里回答)。
例如,IEEEtran.cls
课程设计时就考虑到了这种方法。摘录自文档笔记:
由于文本高度减小至约 9.25 英寸,因此页边距也增大了。特别是,由于 IEEE 希望在底部留出额外的空间,因此底部边距将变得比顶部边距更大。文本高度不会正好是 9.25 英寸,但会与正常字体大小略有不同,以确保每列的行数为整数。
标题和页码不显示在页眉或页脚中。 这与对称的水平边距相结合,意味着单面和双面选项之间不会有明显的差异。
和
作者不得在照相排版会议论文上标注出版物编号,因此
\pubid{}
在会议模式下禁用。相反,在会议模式下,IEEEtran 会自动增加底部边距以便在出版时为 IEEE 提供此类标记的空间。在草稿模式下,出版者 ID 标记不会打印在标题页的底部,但会为其腾出空间。