背景 - 我正在修改文档齐全的 LaTex 简历建立自己的。一切顺利,直到我尝试使用multibib
(使用这个答案在 Tex.SE 中)。当我合并它时,我在边距中得到了一系列星号,我不知道如何删除它们。我已将代码缩减为以下 MWE - 但是,我不知道如何进一步调试它。任何帮助都将不胜感激!
\documentclass[10pt]{article}
\usepackage{multibib}
\newcites{journal,conference}{Journal Articles, Refereed Conference Publications}
\usepackage{color,hyperref}
%%% SECTION HEADINGS
% The section headings. Flush left in small caps down pseudo-margin.
%
% Usage: \section{section name}
\renewcommand{\section}[1]{\pagebreak[3]%
\vspace{1.3\baselineskip}%
\phantomsection\addcontentsline{toc}{section}{#1}%
\noindent\llap{\scshape\smash{\parbox[t]{\marginparwidth}{\hyphenpenalty=10000\raggedright #1}}}%
\vspace{-\baselineskip}\par}
\begin{document}
\section{Publications}
\bibliographystylejournal{plain}
\nocitejournal{*}
\bibliographyjournal{journal}
\bibliographystyleconference{plain}
\nociteconference{*}
\bibliographyconference{conference}
\end{document}
journal.bib 的内容
@article{entry2,
author = {Author name},
journal = {Some Journal},
title = {Title},
year = {2013},
}
conference.bib 的内容
@inproceedings{entry1,
author = {Author name},
address = {address},
booktitle = {Some conference},
title = {Title},
year = {2013},
}
生成的输出如下所示:
我想删除边距中令人反感的星号。从重新定义 section 命令的方式我明白,它将 multibib 输出的条目视为某种列表。但如何避免这种情况发生,我无法理解。
答案1
\multibib
使用\section*
命令(隐藏在 中\thebibliography
),但重新定义\section{}
而不提供带星号的版本是错误的(一般来说!),因此必须以以下方式解决\section*{}
仍然可用的方式解决这个问题,方法是将其推回到使用旧定义,使用\let
宏。
如果\section*{}
没有,\section*{}
则会在相应位置打印星号 *。
但是,重新定义\section
会破坏文档主体的其他部分。在我看来,\renewcommand{section}
如果要重新定义,应该只在\thebibliography
组内进行。
补充说明:在\newcites{...}
逗号后面不应该有空格,因为这将按字面意思理解为,\bibname
并且它会相应地出现。
长版本使用\@ifnextchar
等。
\documentclass[10pt]{article}
\usepackage{multibib}
\newcites{journal,conference}{Journal Articles,Refereed Conference Publications}
\usepackage{color,hyperref}
%%% SECTION HEADINGS
% The section headings. Flush left in small caps down pseudo-margin.
%
% Usage: \section{section name}
\makeatletter
\let\LaTeXStandardSection\section
\newcommand{\starredsection}[1]{%
\LaTeXStandardSection*{#1}%
}
\newcommand{\unstarredsection@@noopt}[1]{%
\unstarredsection@@opt[#1]{#1}%
}%
\newcommand{\unstarredsection@@opt}[2][]{%
\pagebreak[3]%
\vspace{1.3\baselineskip}%
\phantomsection\addcontentsline{toc}{section}{#1}%
\noindent\llap{\scshape\smash{\parbox[t]{\marginparwidth}{\hyphenpenalty=10000\raggedright #1}}}%
\vspace{-\baselineskip}\par}%
\newcommand{\unstarredsection}{%
\@ifnextchar[{\unstarredsection@@opt}{\unstarredsection@@noopt}%
}%
\renewcommand{\section}{%
\@ifstar{\starredsection}{\unstarredsection}%
}%
\makeatother
\begin{document}
\section{Publications}
\bibliographystylejournal{plain}
\nocitejournal{*}
\bibliographyjournal{journal}
\bibliographystyleconference{plain}
\nociteconference{*}
\bibliographyconference{conference}
\end{document}
简短版本,使用\xapptocmd
\documentclass[10pt]{article}
\usepackage{xpatch}%
\usepackage{multibib}
\newcites{journal,conference}{Journal Articles,Refereed Conference Publications}
\let\LaTeXStandardSection\section
\xpatchcmd{\thebibliography}{\section*}{\LaTeXStandardSection*}{}{}
\usepackage{color,hyperref}
%%% SECTION HEADINGS
% The section headings. Flush left in small caps down pseudo-margin.
%
% Usage: \section{section name}
% This not a very good style --> it will break the text sections!
\renewcommand{\section}[1]{%
\pagebreak[3]%
\vspace{1.3\baselineskip}%
\phantomsection\addcontentsline{toc}{section}{#1}%
\noindent\llap{\scshape\smash{\parbox[t]{\marginparwidth}{\hyphenpenalty=10000\raggedright #1}}}%
\vspace{-\baselineskip}\par}%
\begin{document}
\section{Publications}
\bibliographystylejournal{plain}
\nocitejournal{*}
\bibliographyjournal{journal}
\bibliographystyleconference{plain}
\nociteconference{*}
\bibliographyconference{conference}
\end{document}