我需要在我的 (德语) 规范书目中有明确的条目。经过大量工作之后,我选择了 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}
}