问题:

问题:

继我的论文成功之后,我现在要讨论一个更复杂的话题,即交叉引用。

我有一些大型法律书籍,法语中称为 commentaire,其中包含几个子部分,其中包含对某项立法的非常详细的分析,法语中称为“article”(但这与 article 条目类型无关)。它们之间的关系是,文本中引用了子部分(子部分),但没有引用主书(父部分)。但是,父条目和子条目都应该被引用。

我发现设置 mincrossrefs 已设置为 1 来触发父级和子级的显示。

因此我创建了一个名为“collectif”的新类型,它只包含父类信息。这是因为这类父类具有独特的格式(请参阅下文关于作者/编辑的内容)。

现在,我遇到了一些问题,因为这两个部分的格式必须遵循非常严格的规则。我将从父条目开始,其中我的代码(下面的 MWE)主要按预期工作:

  1. 所有编辑器都应采用标准格式(OK)
  2. 名称后面应显示一个字符串“(édit.)
  3. 编辑后,应该是一个分隔符(OK)
  4. 标题应为斜体(OK)
  5. 最后应该有一个区块位置+年份(OK)。

现在子条目应该与我在书中需要的类似。所以我从中获取了代码我问的另一个问题。但我在尝试使用它时遇到了一些问题。以下是我的要求:

  1. 作者采用小写字母(OK)
  2. 标题为斜体,不好,我不知道为什么样式被重置
  3. 插入交叉引用,格式应为“in :”。目前我得到的是“in : sous la dir. de”
  4. 再次强调,编辑的名字是小写字母。但这并不意味着如果一本书同时包含编辑和作者,作者的名字也应该使用小写字母。因此,我只需要在父级中不使用小写字母
  5. 地点和年份之间有一个“,”。

最后,我添加的新条目类型似乎与之前的版本冲突:11。引用为经纪人。它应该标识孩子的“作者”也可以与其他书目条目重复,因为在我的 MWE 中,作者“Bohnet”有 3 本书/部分评论。

到目前为止,我已经尝试过了,但有太多的移动部件,我无法尝试应用所提出的解决方案在其他一些问题中

问题:

  1. 我糟糕的代码该如何修复?

MWE 代码

主文本

% MweBiblatex Swiss Legal
\documentclass{article}

% Needed by Biblatex
\usepackage{polyglossia}
\setmainlanguage{french}
\usepackage{parskip}
\usepackage{csquotes}
\usepackage[style=biblatex-xawi, language=french, bibencoding=UTF8, backend=biber]{biblatex}

\addbibresource{main.bib}

\begin{document}
\section{Test de la bibliographie}
\printbibliography
\section{Tests de citation}

\subsection{Libre}
% Bohnet, livre Procédure : \cite{bohnetLivre} \\
Bohnet, livre Procédure en schéma : \cite{bohnetSchema} \\

\subsection{Commentaires}
Bohnet, commentaires : cite as \cite{cpc85} \\ and should be in bibliography as \\

\textsc{Bohnet} François, art. 85 CPC, in : Bohnet François et al. (édit.), Code de procédure civile commenté, Bâle 2011.

Bohnet François /Haldy Jacques /Jeandin Nicolas /Schweizer Philippe /Tappy Denis (edit.), Code de procédure civile commenté, Bâle 2011

\end{document}

主页

@book{bohnetLivre,
  author        = {Bohnet, François},
  title         = {Procédure civile},
  edition       = 2,
  date          = {2014},
  location      = {Bâle},
  label         = {Procédure}
}

@book{bohnetSchema,
  author      = {Bohnet, François},
  title       = {La procédure civile en schémas},
  date        = {2014},
  location    = {Bâle},
  label         = {Schéma}
}

@book{bohnetActions,
  author        = {Bohnet, François},
  title         = {Actions civiles},
  subtitle      = {Conditions et conclusions},
  date          = {2014},
  location      = {Bâle},
  label         = {Actions}
}

@collectif{coCPC,
  editor        = {Bohnet, François and Haldy, Jacques and Jeandin, Nicolas and Schweizer, Philippe and Tappy, Denis},
  title         = {Code de procédure civile commenté},
  date          = {2011},
  location      = {Bâle},
}

@inbook{cpc85,
  author        = {Bohnet, François},
  title         = {art. 85 CPC},
  date          = {2011},
  location      = {Bâle},
  label         = {Commentaire},
  crossref      = {coCPC},
}

biblatex-xawi.bbx

\ProvidesFile{biblatex-xawi.bbx}[2018/04/13 v1.1 alpha)]

% Depencances
\RequireBiber[2]
\RequireBibliographyStyle{authortitle}

% Localisation
\NewBibliographyString{thesis,habilthesis}

\DefineBibliographyStrings{french}{
  citedas     = {cit\'e},
  thesis      = {th\`ese},
  habilthesis = {th\`ese d'habilitation},
}

% --- --- Setting default options --- --- %    
\ExecuteBibliographyOptions{%
    maxbibnames=99, % nombre max. de noms pour les entrées
    maxcitenames=99, % nombre max. de noms pour les citations
    mincrossrefs=1, % nombre min pour les références croisées
    bibwarn=false, % avertissement uniques pour les entrés bibliographiques
    dashed=false, % Nom entier même si répétition
    singletitle=true, 
    uniquename=full,
    uniquelist=true
}

% --- --- Formatage général de la bibliographie --- --- %

% Formatage des paramètres de la bibliographie
\setlength{\bibhang}{0pt}
\setlength{\bibitemsep}{1.5\baselineskip}

% Formatage global :
\DeclareFieldFormat{title}{\mkbibemph{#1}}

% Dans les citations, pas d'espaces entre les slash (contrairement à la bibliographie)
\renewcommand*{\multinamedelim}{\ifcitation{\slash}{\addnbspace\slash\addspace}}
\renewcommand*{\finalnamedelim}{\multinamedelim}
% BibLatex v2.8+ : Format des séparateurs entre les noms: des slash
% \DeclareDelimFormat{multinamedelim}{\slash}
% \DeclareDelimFormat[bib,biblist]{multinamedelim}{\addnbspace\slash\addspace}
% \DeclareDelimAlias{finalnamedelim}{multinamedelim}%

\renewcommand*{\multilistdelim}{\slash}
%\renewcommand*{\multilistdelim}{\addnbspace\slash\addspace}
\renewcommand*{\finallistdelim}{\multilistdelim}

\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\revsdnamepunct}{}

\DeclareNameAlias{sortname}{family-given}

% Remove all possible shorthand
% https://tex.stackexchange.com/questions/244714/how-to-disable-the-use-of-shorthands-in-biblatex
\DeclareFieldInputHandler{shorthand}{\def\NewValue{}}

% --- --- Pilote de bibliographie pour les ouvrages collectifs --- --- %

\DeclareFieldFormat[collectif]{title}{#1}
\DeclareFieldFormat[collectif]{editor}{#1}

\DeclareBibliographyDriver{collectif}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{editor}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{location+date}%
  \setunit{\addspace}%
  \usebibmacro{citedas}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+title}%
  \newunit\newblock
  \printfield{edition}%
  \newunit\newblock
  \usebibmacro{location+date}%
  \setunit{\addspace}%
  \usebibmacro{citedas}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}
}

% --- Formatage de la citation spécifique dans la bibliographie --- %

\newbibmacro{citedas:cite}{%
  \begingroup
    \delimcontext{cite}%
    \DeclareFieldFormat{bibhyperref}{##1}%
    \csuse{blx@hook@cite}%
    \csuse{blx@hook@citekey}%
    \undef\cbx@lasthash
    \undef\cbx@lastyear
    \citetrackerfalse\pagetrackerfalse\backtrackerfalse
    \defcounter{maxnames}{\blx@maxcitenames}%
    \usebibmacro{cite}%
  \endgroup
}

\newbibmacro{citedas}{%
  \ifsingletitle
    {}{
        \printtext[parens] {%
            \bibstring{citedas}%
            \addcolon\space
            \usebibmacro{citedas:cite}
        }
    }
}

\renewbibmacro*{location+date}{%
  \printlist{location}%
  \setunit*{\addspace}%
  \usebibmacro{date}%
  \newunit
}

\newbibmacro{thesis:type+origlocation}{%
    \printfield{type}%
    \setunit*{\addspace}%
    \printlist{origlocation}%
    \newunit
}

\endinput % seulement à la fin

biblatex-xawi.cbx

\ProvidesFile{biblatex-xawi.cbx}[2018/04/13 v1.0 alpha]

\RequireCitationStyle{authortitle}

\DeclareFieldFormat*{citetitle}{#1}
\DeclareDelimFormat{nametitledelim}{\textendash}

% --- Formatage de la citation spécifique dans les citations --- %    
% Definition de la partie "Labeltitle"
\DeclareLabeltitle{%
  \field{label}
  \field{shorttitle}
  \field{title}
  \field{maintitle}
}

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifnameundef{labelname}
       {\usebibmacro{cite:title}}
       {\ifsingletitle
          {\printtext[bibhyperref]{\printnames{labelname}}}
          {\printnames{labelname}%
       \setunit{\nametitledelim}%
       \usebibmacro{cite:title}}}}%
    {\usebibmacro{cite:shorthand}}}

\renewbibmacro*{textcite}{%
  \ifnameundef{labelname}
    {\ifnumequal{\value{citecount}}{1}
       {\usebibmacro{prenote}}
       {}%
     \iffieldundef{shorthand}
       {\usebibmacro{cite:title}}%
       {\usebibmacro{cite:shorthand}}}
    {\ifthenelse{\ifsingletitle\AND
                 \(\iffieldundef{prenote}\OR\value{citecount}>1\)}
       {\printtext[bibhyperref]{\printnames{labelname}}}
       {\printnames{labelname}%
    \setunit{%
      \global\booltrue{cbx:parens}%
      \addspace\bibopenparen}%
    \ifnumequal{\value{citecount}}{1}
      {\usebibmacro{prenote}}
      {}%
    \iffieldundef{shorthand}
      {\usebibmacro{cite:title}}%
      {\usebibmacro{cite:shorthand}}}}}

\endinput

biblatex-xawi.dbx

\ProvidesFile{biblatex-xawi.dbx}[2018/04/18 v1.1]    
\DeclareDatamodelEntrytypes{collectif}    
\endinput

相关内容