当多目录与自定义 Section 命令一起使用时,如何删除页边距中出现的不需要的星号?

当多目录与自定义 Section 命令一起使用时,如何删除页边距中出现的不需要的星号?

背景 - 我正在修改文档齐全的 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}

在此处输入图片描述

相关内容