当包含参考书目时,长表环境会中断

当包含参考书目时,长表环境会中断

我已经使用 CV 类一段时间了,它给了我很大的满足感。然而,当我尝试链接参考书目时,我无法编译它。

我相信该错误与定义 CV 类的 .cls 文件中的以下块有关:

\renewenvironment{section}[1]{
    \CV@initLength

    \vspace{\cmedskip}
    \textbf{\large #1}\par
    \rule[3mm]{\textwidth}{0.1mm}\par
    \vspace{-4mm}
    \begin{longtable}{p{\colwidth}p{\scolwidth}}

    % \end{longtable}

    % \tabularx{\linewidth}{p{\colwidth}X}
}{
%   \endtabularx
    \end{longtable}
}

当 cv.tex 文件与其参考书目链接时,通过添加类似

\bibliographystyle{unsrt}
\bibliography{general_biblio}

然后就会发生大混乱。具体来说,调用

pdflatex cv.tex 
bibtex cv.aux 
pdflatextex cv.tex 
pdflatextex cv.tex 

在第二次调用 pdflatex 结束时中断。错误消息如下所示

/Users/me/Desktop/debug_latex/test_cv.bbl:3: LaTeX Error: \begin{longtable} on input line 1 ended by \end{thebibliography}. [\end{thebibliography}]
/Users/me/Desktop/debug_latex/test_cv.bbl:3: Missing } inserted. [\end{thebibliography}]
/Users/me/Desktop/debug_latex/test_cv.bbl:3: Missing } inserted. [\end{thebibliography}]
/Users/bbercovici/Desktop/debug_latex/test_cv.bbl:3: Missing \cr inserted. [\end{thebibliography}]
/Users/me/Desktop/debug_latex/test_cv.bbl:3: Missing { inserted. [\end{thebibliography}]
/Users/me/Desktop/debug_latex/test_cv.bbl:3: Missing } inserted. [\end{thebibliography}]
/Users/me/Desktop/debug_latex/test_cv.tex:89: LaTeX Error: \begin{longtable} on input line 1 ended by \end{document}. [\end{document}]

我不知道这是怎么回事。看起来书目文件的包含破坏了某些东西,但我不能确定是什么。

有什么建议么?

变种

\documentclass[10pt,paperletter]{cv}
\usepackage[english]{babel} 
\usepackage{bibentry}

\Language{english}

\definecolor{urlcolor}{rgb}{0, 0, 0.5}


\Detailed{0}


\setlength{\colwidth}{2cm}

\smallskipamount=2mm    
\medskipamount=1mm      
\bigskipamount=10mm     

\geometry{
    hmargin=1.2cm,          
    vmargin=1.3cm               
}

\begin{document}

% \small
% \begin{heading}
%   \Name{XXXXXXXX}
%   \Address{XXXXXXXX}
%   \Email{XXXXX}       
%   \Nationality{XXXXX}
%   \DateOfBirth{XXXXX}
%   \Gender{XX} 
% \end{heading}

% \begin{objective}
% TEST
% \end{objective}


% \begin{section}{Education}
%   \begin{entry}

%   \end{entry}
% \end{section}

% \begin{section}{Work Experience}


% \begin{entry}
% \Date{08/2015 - 05/2016 }
%   \Place{XXXX}
% \Activity{XXXXX}
% \end{entry}



% \end{section}

% \begin{section}{Additional Skills}
% \begin{entry}
% \Skill{\underline{\textbf{Languages}}}
% \end{entry}
%   \begin{entry}
%       \Skill{XXX}
%       \Activity{XXXX}
%   \end{entry}

% \end{section}
% \newpage

% \begin{section}{Publications and Proceedings}

% \begin{entry}
% \Activity{\bibentry{Schroeder2006}}
% \end{entry}

% \end{section}

% \begin{section}{Ref}

\bibliographystyle{unsrt}
\bibliography{general_biblio}

% \end{section}



\end{document}

变种

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{cv}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\LoadClass{article}
\RequirePackage{ltxtable}
\RequirePackage{ifthen}
\RequirePackage{color}
\RequirePackage[
    pdftex,
    pdfstartview={XYZ 0 1000 1.0},
    bookmarks=false,
    colorlinks,
    breaklinks=true,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=urlcolor,
    pdfborder={0 0 0}
]{hyperref}

\RequirePackage{geometry}
\RequirePackage{graphicx}
\RequirePackage{longtable}

\pagestyle{empty}
\parindent=0pt

\newlength{\colwidth}

\toksdef\ta=0
\toksdef\tb=2
\def\CV@AppendItem#1#2{
    \ta={#1}
    \tb=\expandafter{#2}
    \global\edef#2{\the\tb\the\ta}
}

\newcommand{\CV@init}[1]{
    \expandafter\global\expandafter\def\csname @@#1\endcsname{}
}

\newcommand{\superscript}[1]{\ensuremath{^\textrm{\scriptsize#1}}}
\newcommand{\subscript}[1]{\ensuremath{_\textrm{\scriptsize#1}}}

\newcommand{\xst}[0]{\superscript{st}}
\newcommand{\xnd}[0]{\superscript{nd}}
\newcommand{\xrd}[0]{\superscript{rd}}
\newcommand{\xth}[0]{\superscript{th}}

\def\detailedOnly{0}
\def\@@language{}
\def\@@detailed{}

\newcommand{\Language}[1]{
    \global\def\@@language{#1}
}

\newcommand{\Detailed}[1]{
    \global\def\@@detailed{#1}
}

\newlength{\scolwidth}
\newlength{\mcolwidth}
\newlength{\cmedskip}
\newlength{\sbigskip}
\newlength{\smedskip}
\newlength{\ssmallskip}

\newcommand{\CV@initLength}{
    \setlength{\scolwidth}{\textwidth}
    \addtolength{\scolwidth}{-\colwidth}
    \addtolength{\scolwidth}{-8.72mm}       

    \setlength{\mcolwidth}{\colwidth}
    \addtolength{\mcolwidth}{\scolwidth}
    \addtolength{\mcolwidth}{4.36mm}        

    \setlength{\cmedskip}{\medskipamount}
    \addtolength{\cmedskip}{-\smallskipamount}
    \addtolength{\cmedskip}{-\baselineskip}

    \setlength{\sbigskip}{\bigskipamount}
    \addtolength{\sbigskip}{-\baselineskip}
    \setlength{\smedskip}{\medskipamount}
    \addtolength{\smedskip}{-\baselineskip}
    \setlength{\ssmallskip}{\smallskipamount}
    \addtolength{\ssmallskip}{-\baselineskip}
}

\def\@@name{}
\def\@@address{}
\def\@@telephone{}
\def\@@email{}
\def\@@emails{}
\def\@@nationality{}
\def\@@dateofbirth{}
\def\@@age{}
\def\@@gender{}
\def\@@maritalstatus{}
\def\@@drivinglicense{}

\newenvironment{heading}{
    \CV@init{name}
    \CV@init{address}   
    \CV@init{telephone}
    \CV@init{email}
    \CV@init{emails}
    \CV@init{nationality}
    \CV@init{dateofbirth}
    \CV@init{age}
    \CV@init{gender}
    \CV@init{maritalstatus}
    \CV@init{mobility}
    \CV@init{photo}
    \newcommand{\Name}[1]{\global\def\@@name{##1}}
    \newcommand{\Address}[1]{\global\def\@@address{##1}}    
    \newcommand{\Telephone}[1]{\global\def\@@telephone{##1}}
    \newcommand{\Email}[1]{\global\def\@@email{##1}}
    \newcommand{\Emails}[1]{\global\def\@@emails{##1}}
    \newcommand{\Nationality}[1]{\global\def\@@nationality{##1}}
    \newcommand{\DateOfBirth}[1]{\global\def\@@dateofbirth{##1}}
    \newcommand{\Age}[1]{\global\def\@@age{##1}}
    \newcommand{\Gender}[1]{\global\def\@@gender{##1}}
    \newcommand{\MaritalStatus}[1]{\global\def\@@maritalstatus{##1}}
    \newcommand{\Mobility}[1]{\global\def\@@mobility{##1}}
    \newcommand{\Photo}[1]{\global\def\@@photo{##1}}
}{
    \global\def\CV@delayed{}

    \CV@AppendItem{
        \hspace*{\tabcolsep}
        \begin{minipage}{0.5\linewidth}
        \vspace{-\baselineskip}     
    }{\CV@delayed}

    \ifx\@@name\empty\else
        \CV@AppendItem{{\large \@@name}\newline}{\CV@delayed}
    \fi

    \ifx\@@address\empty\else
        \CV@AppendItem{\@@address\newline}{\CV@delayed}
    \fi

    \ifx\@@telephone\empty\else
        \ifthenelse{\equal{\@@language}{francais}}{
            \CV@AppendItem{T�l.~: \@@telephone\newline}{\CV@delayed}
        }{}
        \ifthenelse{\equal{\@@language}{english}}{
            \CV@AppendItem{Telephone: \@@telephone\newline}{\CV@delayed}
        }{}
    \fi

    \ifx\@@email\empty\else
        \ifthenelse{\equal{\@@language}{francais}}{
            \CV@AppendItem{Email~: \href{mailto:\@@email}{\@@email}}{\CV@delayed}
        }{}
        \ifthenelse{\equal{\@@language}{english}}{
            \CV@AppendItem{Email: \href{mailto:\@@email}{\@@email}}{\CV@delayed}
        }{}
    \fi

    \ifx\@@emails\empty\else
        \ifthenelse{\equal{\@@language}{francais}}{
            \CV@AppendItem{Email 2~: \href{mailto:\@@emails}{\@@emails}}{\CV@delayed}
        }{}
        \ifthenelse{\equal{\@@language}{english}}{
            \CV@AppendItem{Email 2: \href{mailto:\@@emails}{\@@emails}}{\CV@delayed}
        }{}
    \fi

    \CV@AppendItem{
        \end{minipage}
        \begin{minipage}{0.3\linewidth}
%           \vspace{\baselineskip}
    }{\CV@delayed}

    \ifx\@@dateofbirth\empty\else
        \ifthenelse{\equal{\@@language}{francais}}{
            \ifthenelse{\equal{\@@gender}{M}}{
                \CV@AppendItem{N� le }{\CV@delayed}
            }{
                \CV@AppendItem{N�e le }{\CV@delayed}
            }
            \CV@AppendItem{\@@dateofbirth}{\CV@delayed}
            \ifx\@@age\empty\else
                \CV@AppendItem{ (\@@age{} ans)}{\CV@delayed}
            \fi
        }{}
        \ifthenelse{\equal{\@@language}{english}}{
            \CV@AppendItem{Date of birth: \@@dateofbirth}{\CV@delayed}
            \ifx\@@age\empty\else
                \CV@AppendItem{ (\@@age{} year old)}{\CV@delayed}
            \fi
        }{}
    \fi

    \ifx\@@nationality\empty\else
        \ifthenelse{\equal{\@@language}{francais}}{
            \CV@AppendItem{\newline{}Nationalit� \@@nationality}{\CV@delayed}
        }{}
        \ifthenelse{\equal{\@@language}{english}}{
            \CV@AppendItem{\newline{}Nationality: \@@nationality}{\CV@delayed}
        }{}
    \fi

    \ifx\@@maritalstatus\empty\else
        \ifthenelse{\equal{\@@language}{francais}}{
            \CV@AppendItem{\newline{}\@@maritalstatus}{\CV@delayed}
        }{}
        \ifthenelse{\equal{\@@language}{english}}{
            \CV@AppendItem{\newline{}Marital status: \@@maritalstatus}{\CV@delayed}
        }{}
    \fi

    \ifx\@@mobility\empty\else
        \CV@AppendItem{\newline{}\@@mobility}{\CV@delayed}
    \fi

    \ifx\@@photo\empty\else
        \CV@AppendItem{
            \end{minipage}
            \begin{minipage}{0.17\linewidth}
                \flushright
                \vspace{-\baselineskip}
                \includegraphics[height=3cm]{\@@photo}
        }{\CV@delayed}
    \fi

    \CV@AppendItem{
        \end{minipage}
        \vspace{-\baselineskip}
        \bigskip
    }{\CV@delayed}

    \aftergroup\CV@delayed
}

\newenvironment{objective}{
    \CV@initLength

    \begin{longtable}{p{\colwidth}p{\scolwidth}}

    \ifthenelse{\equal{\@@language}{francais}}{
        \large\itshape Objectif~: & \large\itshape
    }{}\ignorespaces
    \ifthenelse{\equal{\@@language}{english}}{
        \large\itshape Objective: & \large\itshape
    }{}\ignorespaces
}{
    \\
    \end{longtable}
    \medskip
}

\renewenvironment{section}[1]{
    \CV@initLength

    \vspace{\cmedskip}
    \textbf{\large #1}\par
    \rule[3mm]{\textwidth}{0.1mm}\par
    \vspace{-4mm}
    \begin{longtable}{p{\colwidth}p{\scolwidth}}

    % \end{longtable}

    % \tabularx{\linewidth}{p{\colwidth}X}
}{
%   \endtabularx
    \end{longtable}
}

\def\@@date{}
\def\@@duration{}
\def\@@place{}
\def\@@locality{}
\def\@@country{}
\def\@@activities{}
\def\@@events{}

\newcommand{\CV@add@activity}[2][1]{
    \ifthenelse{\equal{\@@detailed}{1} \or \equal{#1}{1}}{
        \ifx\@@activities\empty\else
            \CV@AppendItem{\newline}{\@@activities}
        \fi

        \CV@AppendItem{#2.}{\@@activities}
    }{}
}

\newcommand{\CV@add@event}[2][1]{
    \ifthenelse{\equal{\@@detailed}{1} \or \equal{#1}{1}}{
        \ifx\@@events\empty\else
            \CV@AppendItem{\newline}{\@@events}
        \fi

        \CV@AppendItem{#2.}{\@@events}
    }{}
}

\newcommand{\CV@add@course}[1]{
    \ifthenelse{\equal{\@@detailed}{1}}{
        \CV@AppendItem{\ensuremath{\triangleright}~#1. }{\@@courses}
    }{}
}

\newcommand{\singleEntry}[2][1]{
    \ifthenelse{\equal{\@@detailed}{1} \or \equal{#1}{1}}{
        \\\kill
        \multicolumn{2}{p{\mcolwidth}}{#2.}\\
    }{}
%   \\[\ssmallskip]
}

\newcommand{\bigSkip}{
    \\[\sbigskip]
}

\newcommand{\medSkip}{
    \\[\smedskip]
}

\newcommand{\smallSkip}{
    \\[\ssmallskip]
}

\newenvironment{entry}[1][1]{
    \global\def\@@detail{#1}

    \CV@init{date}
    \CV@init{duration}
    \CV@init{skill}
    \CV@init{place}
    \CV@init{locality}
    \CV@init{country}
    \CV@init{activities}
    \CV@init{events}
    \CV@init{courses}
    \newcommand{\Date}[1]{\global\def\@@date{##1}}
    \newcommand{\Duration}[1]{\global\def\@@duration{##1}}
    \newcommand{\Skill}[1]{\global\def\@@skill{##1}}
    \newcommand{\Place}[1]{\global\def\@@place{##1}}
    \newcommand{\Locality}[1]{\global\def\@@locality{##1}}
    \newcommand{\Country}[1]{\global\def\@@country{##1}}
    \let\Activity\CV@add@activity
    \let\Event\CV@add@event
    \let\Course\CV@add@course
}{
    \global\def\CV@delayed{}    
    \CV@AppendItem{\\\kill}{\CV@delayed}

    \ifthenelse{\equal{\@@detailed}{1} \or \equal{\@@detail}{1}}{
        \ifx\@@date\empty\else
            \CV@AppendItem{\textbf{\@@date}}{\CV@delayed}
            \ifx\@@duration\empty\else
                \CV@AppendItem{\newline}{\CV@delayed}
            \fi
        \fi

        \ifx\@@duration\empty\else
            \CV@AppendItem{(\@@duration)}{\CV@delayed}
        \fi

        \ifx\@@skill\empty\else
            \CV@AppendItem{\@@skill}{\CV@delayed}
        \fi

        \CV@AppendItem{&}{\CV@delayed}

        \ifx\@@place\empty\else
            \CV@AppendItem{\textsc{\@@place}}{\CV@delayed}
            \ifx\@@locality\empty\else
                \CV@AppendItem{, \@@locality}{\CV@delayed}
            \fi
            \ifx\@@country\empty\else
                \CV@AppendItem{, \@@country}{\CV@delayed}
            \fi
            \CV@AppendItem{.}{\CV@delayed}

            \ifthenelse{\equal{\@@activities}{\empty} \and \equal{\@@events}{\empty} \and \equal{\@@courses}{\empty}}{}{
                \CV@AppendItem{\newline}{\CV@delayed}
            }   
        \fi

        \ifx\@@activities\empty\else
            \CV@AppendItem{\@@activities}{\CV@delayed}

            \ifthenelse{\equal{\@@events}{\empty} \and \equal{\@@courses}{\empty}}{}{
                \CV@AppendItem{\newline}{\CV@delayed}
            }   
        \fi

        \ifx\@@events\empty\else
            \CV@AppendItem{\@@events}{\CV@delayed}

            \ifthenelse{\equal{\@@courses}{\empty}}{}{
                \CV@AppendItem{\newline}{\CV@delayed}
            }   
        \fi

        \ifx\@@courses\empty\else
            \CV@AppendItem{\textit{\@@courses}}{\CV@delayed}
        \fi

        \CV@AppendItem{\\[\smallskipamount]}{\CV@delayed}
    }{}

    \aftergroup\CV@delayed
}

通用书目.bib

@book{Schroeder2006,
author = {Schroeder, Will and Martin, Ken and Lorensen, Bill},
editor = {Kitware},
title = {{The Visualization Toolkit}},
year = {2006}
}

答案1

书目环境用于\section*{\refname}标题,而您的课程重新定义\section但没有设置合适的书目环境,一切都会中断。您可以尝试此补丁:

\usepackage{xpatch}
\xpatchcmd{\thebibliography}{\section*{\refname}}{}{}{\fail}

它将从环境中删除标题thebibliography

相关内容