Apacite - 在生成的参考书目条目中更改“ed。”/“edition”括号

Apacite - 在生成的参考书目条目中更改“ed。”/“edition”括号

我需要在我的 (德语) 规范书目中有明确的条目。经过大量工作之后,我选择了 apacite,因为听起来它可以做我需要的东西。到目前为止,我能够通过\renewcommand'ing 命令来更改:标题、年份、出版商、地址apacite.sty

作者丢失,而且我在文件中找不到与版本的任何关系。我试图更改几乎所有与 ed. 或版本有关的内容。
有人能告诉我哪些函数会更改作者和版本括号吗?
如果有人知道如何更改书目中结果的顺序,那就太好了。我还没有深入研究。

这里有 2 个正在发生的事情的例子。第一个是我得到的,第二个是我需要的。

Bocuse, P. 1977. Die neue Küche(第一版译本)。杜塞尔多夫:Econ。


Bocuse 1977
保罗·博古斯:新厨房。
1.译文版。杜塞尔多夫:Econ,1977 年。


编辑:
我希望代码不是必需的,因为据我所知,实际上与实现无关。我包括了所有使用包,也许它们也是需要的。

\documentclass[12pt]{scrbook}
\usepackage[a4paper]{geometry}

%~~~~~~~~~~~~~~~~~~~~~~~~~
% Norm von A4 Buchform
%~~~~~~~~~~~~~~~~~~~~~~~~~
\geometry{top=25mm,bottom=25mm,footskip=20mm,headsep=15mm}
\renewcommand{\baselinestretch}{1.0}

\usepackage{times}
\usepackage[ngerman]{babel}
\usepackage [utf8]{inputenc}
\usepackage [T1]{fontenc}
\usepackage [pdftex]{graphicx}

\usepackage{verbatim}
\usepackage{array}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{units}
\usepackage{rotating}
\usepackage[pdftex]{color}
\usepackage{listings}
\usepackage{tabularx}
\usepackage{longtable}

%~~~~~~~~~~~~~~~~~~~~~~~~~
% Citing and Bibliography
%~~~~~~~~~~~~~~~~~~~~~~~~~
\usepackage{apacite}

% Testing area
% This actually changes "something" with the author(s), 
% it makes the title go into a new line

\renewenvironment{APACrefauthors}{%
  \begingroup \APACrefauthstyle
}{\endgroup }


% Title
\renewcommand{\APACrefbtitle}[2]{\Bem{#2}}

% Year
\renewcommand{\APACrefYear}[1]{%
  {#1}%
}

% Adress and Publisher
\renewcommand{\APACaddressPublisher}[2]{%
  \ifx\@empty#1\@empty
    \ifx\@empty#2\@empty
    \else
      {#2}%                 publisher
    \fi
  \else
    {#1}%                   address
    \ifx\@empty#2\@empty
    \else
      \unskip: {#2}%        publisher
    \fi
  \fi
}


% Doesn't do anything with my citing
\renewcommand{\BVOL}{Vol.\hbox{}}       % volume (of a multi-volume book)
\renewcommand{\BVOLS}{Vols.\hbox{}}     % volumes
\renewcommand{\BEd}{ed.\hbox{}}         % edition
\renewcommand{\APACrefatitle}[2]{#2}
\renewcommand{\APACrefaetitle}[2]{[#2]}
\renewcommand{\APACrefbetitle}[2]{[#2]}
\renewcommand{\BVOLS}{Vols.\hbox{}}     % volumes
\renewcommand{\APACjournalVolNumPages}[4]{%
  \Bem{#1}%             journal
  \ifx\@empty#2\@empty
  \else
    \unskip, \Bem{#2}%  volume
  \fi
  \ifx\@empty#3\@empty
  \else
    \unskip({#3})%      issue number
  \fi
  \ifx\@empty#4\@empty
  \else
    \unskip, {#4}%      pages
  \fi
}
\renewcommand{\APACaddressPublisher}[2]{%
  \ifx\@empty#1\@empty
    \ifx\@empty#2\@empty
    \else
      {#2}%                 publisher
    \fi
  \else
    {#1}%                   address
    \ifx\@empty#2\@empty
    \else
      \unskip: {#2}%        publisher
    \fi
  \fi
}



\begin{document}

\citeauthor{bocuse} \citeyear{bocuse}

\bibliographystyle{apacite}
\bibliography{Literaturverzeichnis}


\listoffigures
\newpage
\listoftables
\newpage

\end{document}

Literaturverzeichnis.bib 包含:

@book{bocuse, 
    address ={Düsseldorf},  
    author   ={Bocuse, Paul},  
    edition ={1. übersetzte},  
    title    ={Die Neue Küche},  
    publisher={Econ,},  
    year     ={1977}   
}

我认为就是这样。

答案1

好吧,在无法用 apacite 解决它之后,我决定从头开始,用 Biblatex 解决它。我现在将描述我所做的事情。

我需要做的第一件事是更新 Miktex 中的所有内容。
之后,我开始创建自己的 .bbx 和 .cbx 文件。我将它们命名为科技独创。所以我有 techdoku.bbx 和 techdoku.cbx;cbx 表示引用,bbx 表示参考书目。

地点:

C:\Program 文件(x86)\MiKTeX 2.9\tex\latex\biblatex\bbx
C:\Program 文件(x86)\MiKTeX 2.9\tex\latex\biblatex\cbx

这就是它们需要放置的地方,也是我获得原始样式的地方。
我的 bbx 文件包含来自作者标题.bbx标准.bbx,我的 cbx 的风格作者年份.cbx

\usepackage将我的 techdoku 风格(bbx 和 cbx 插入文件夹)后,我做的第一件事就是在我的 tex 文件中 进行设置。

\usepackage[
   style=techdoku, 
   backend=bibtex
   ]{biblatex}  

\setlength{\bibitemsep}{10pt} 
\setlength{\bibhang}{0pt} 


\bibliography{Literaturverzeichnis}  

之后,必须对 bbx 条目进行如下修改(位于页面顶部,不知道是否重要):

\newbibmacro*{begentry}{
\usebibmacro{cite}}

\newbibmacro*{finentry}{\finentry}

% Doppelpunkt nach dem Autor
\renewcommand *{\labelnamepunct }{\addcolon \space }

\newcommand*{\bibmultinamedelim}{\addsemicolon\space}% 
\newcommand*{\bibfinalnamedelim}{\addsemicolon\space}% 
\AtBeginBibliography{% 
  \let\multinamedelim\bibmultinamedelim 
  \let\finalnamedelim\bibfinalnamedelim 
} 

\renewcommand*{\labelnamepunct}{\addcolon\space} 

\DeclareNameFormat{last-first}{% 
\iffirstinits 
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} 
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}% 
\usebibmacro{name:andothers}} 

\DeclareNameAlias{default}{last-first}% 

我的新书类条目:

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{authortechdoku}% Autor ohne Jahreszahl
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
{\printfield{volume}%
 \printfield{part}}
{}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{location+publisher+year}%
  %\newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \usebibmacro{related}%
  \usebibmacro{finentry}}

我的年份、地址和出版商的新宏:

\newbibmacro*{location+publisher+year}{%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \usebibmacro{yeartechdoku}%
}

无括号年份的新定义

% Jahr ohne Klammern
\newbibmacro*{yeartechdoku}{% 
  \iffieldundef{year} 
{} 
{ 
   \printfield{year}% 
}}  

作者也改变了:

\renewbibmacro*{authortechdoku}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\usebibmacro{bbx:savehash}%
        \printnames{author}%
    \iffieldundef{authortype}
      {\setunit{\addspace}}
      {\setunit{\addcomma\space}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
    \setunit{\addspace}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
}

据我所知这就是 bbx 文件的全部内容。cbx

% Ändern des "and/und" in der Auflistung der Autoren
\renewcommand*{\finalnamedelim}{%
   \ifnumgreater{\value{liststop}}{3}{\finalandcomma}{}%
   \addspace\addcomma\space}

我认为就是这样,这会将 cite 命令中的“and”更改为逗号。
参考书目可以从问题中获取,我现在用 MWE 对此进行了测试。

\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\begin{document}

\cite{bocuse}


\nocite{*}

\printbibliography

\end{document}

我终于得到了:引用:

博古斯 1977

参考书目

Bocuse 1977
Bocuse,Paul:新厨房。
1.译文版。杜塞尔多夫:Econ,1977 年。

编辑:我忘记了一件事:不幸的是,我在某些时候无法获得“换行命令”,所以我不得不在 bib 文件中即兴发挥。想知道我能做些什么来做得更好,请在评论中说明,因为这不是最佳选择。

@book{bocuse,
地址 ={杜塞尔多夫},
作者 ={\Bocuse,Paul},
版本 ={\1.翻译 Auflage},
标题 ={Die Neue Küche},
出版商 ={Econ,},
年份 ={1977}
}

相关内容