我正在用 markdown 写博士论文,并使用 Bibtex 和 Zotero。在将文档转换为 PDF 时,我使用的引用样式(tapuscrit 的略微修改版本)出现了一些问题。首先,当我引用一篇文章时,引号和标题之间有一个空格,但前者和后者之间的这个空格的长度不相等。其次,当我连续引用相同的参考文献时,会出现 ibid. 提及,但作者的名字再次被引用,而事实并非如此。第三,再次引用参考文献时,只会出现作者名字的首字母,但作者的两个名字之间缺少一个空格(如果有的话)。最后,当需要将引号放在带有法语引号的文章标题中时,我对引号有问题。即使在引用文本的开头也会出现两个结束引号。我附上了四张屏幕截图来说明这些问题:
以下是 Markdown 中的 MWE:
---
csl: le-tapuscrit-note-modified.csl
bibliography:[bibtex file]
link-citations: yes
lang: fr-FR
output: pdf_document
geometry: "margin=2.5cm"
fontfamily: libertine
fontsize: 12pt
documentclass: report
header-includes:
- \usepackage[utf8]{inputenc}
- \usepackage{csquotes}
- \usepackage[bottom,hang,flushmargin]{footmisc}
- \setlength{\skip\footins}{1.2pc plus 5pt minus 2pt}
- \setlength{\footnotemargin}{0pt}
- \renewcommand\footnotelayout{\hskip5pt}
---
[^1] [^2] [^3] [^4]
[^1]: @tarrowStrategyPairedComparison2010
[^2]: @margalitNationalSelfDetermination1990
[^3]: @hobsbawmInventionTradition2010
[^4]: @bertrandHistoireGlobaleHistoires2013
参考书目条目:
@incollection{bertrandHistoireGlobaleHistoires2013,
title = {{Histoire globale, histoires connect\'ees : un "tournant" historiographique ?}},
booktitle = {{Le "tournant global" des sciences sociales}},
author = {Bertrand, Romain},
editor = {Caill{\'e}, Alain and Dufoix, St{\'e}phane},
year = {2013},
pages = {44--66},
publisher = {{La D\'ecouverte}},
address = {{Paris}},
langid = {french},
}
@book{hobsbawmInventionTradition2010,
title = {The {{Invention}} of {{Tradition}}},
editor = {Hobsbawm, Eric J. and Ranger, Terence O.},
year = {2010},
edition = {Second},
publisher = {{Cambridge University Press}},
address = {{Cambridge}},
}
@article{margalitNationalSelfDetermination1990,
title = {National {{Self}}-{{Determination}}},
author = {Margalit, Avishai and Raz, Joseph},
year = {1990},
journal = {Journal of Philosophy},
volume = {87},
number = {9},
pages = {439--461},
}
@article{tarrowStrategyPairedComparison2010,
title = {The Strategy of Paired Comparison: Toward a Theory of Practice},
shorttitle = {The Strategy of Paired Comparison},
author = {Tarrow, Sidney},
year = {2010},
month = feb,
journal = {Comparative Political Studies},
volume = {43},
number = {2},
pages = {230--259},
issn = {0010-4140, 1552-3829},
doi = {10.1177/0010414009350044},
langid = {english},
}
如果有用的话,还有 CSL 代码:
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="note" default-locale="fr-FR" version="1.0" page-range-format="expanded">
<!-- This style was edited with the Visual CSL Editor (https://editor.citationstyles.org/visualEditor/) -->
<info>
<title>Le tapuscrit (École des hautes études en sciences sociales) (note, Français)</title>
<title-short>Tapuscrit-EHESS</title-short>
<id>http://www.zotero.org/styles/le-tapuscrit-ecole-des-hautes-etudes-en-sciences-sociales</id>
<link href="http://www.zotero.org/styles/le-tapuscrit-ecole-des-hautes-etudes-en-sciences-sociales" rel="self"/>
<link href="http://www.editions.ehess.fr/ouvrages/ouvrage/le-tapuscrit/" rel="documentation"/>
<author>
<name>Franziska Heimburger</name>
<email>[email protected]</email>
</author>
<category citation-format="note"/>
<category field="social_science"/>
<category field="generic-base"/>
<updated>2021-09-08T15:34:46+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="fr">
<terms>
<term name="ordinal-01">ère</term>
<term name="ordinal-02">e</term>
<term name="ordinal-03">e</term>
<term name="ordinal-04">e</term>
<term name="cited">op. cit.</term>
<term name="page" form="short">p.</term>
<term name="editor" form="short">
<term name="issue" form="short">n°</term>
<single>ed.</single>
<multiple>eds.</multiple>
</term>
<term name="in">dans</term>
</terms>
</locale>
<macro name="author">
<names variable="author">
<name form="long" and="text" delimiter-precedes-last="never" sort-separator=" "/>
<label form="short" prefix=" (" suffix=".)"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<macro name="author-bib">
<names variable="author">
<name name-as-sort-order="all" form="long" and="text" delimiter-precedes-last="never" sort-separator=" ">
<name-part name="family" font-variant="small-caps"/>
</name>
<label form="short" prefix=" (" suffix=".)"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<macro name="author-ibid">
<names variable="author">
<name and="text" initialize="true" initialize-with="." delimiter-precedes-last="never" sort-separator=" " font-style="normal"/>
<label form="short" prefix=" (" suffix=".)"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<macro name="editor">
<names variable="editor">
<name form="long" and="text" delimiter-precedes-last="never" sort-separator=" "/>
<label form="short" prefix=" (" suffix=".)"/>
</names>
</macro>
<macro name="translator">
<names variable="translator">
<name form="long" and="text" delimiter-precedes-last="never" sort-separator=" " prefix=" traduit par "/>
</names>
</macro>
<macro name="title">
<choose>
<if type="bill book graphic legal_case motion_picture report song" match="any">
<text variable="title" text-case="capitalize-first" font-style="italic"/>
</if>
<else-if type="article-journal article-newspaper article-magazine" match="any">
<group delimiter=", ">
<text variable="title" text-case="capitalize-first" strip-periods="true" quotes="true"/>
<text variable="container-title" font-style="italic"/>
</group>
</else-if>
<else-if type="thesis" match="any">
<group delimiter="">
<text variable="title" text-case="capitalize-first" font-style="italic" suffix=","/>
<text variable="genre" suffix=", " prefix=" "/>
<text variable="publisher"/>
</group>
</else-if>
<else-if type="manuscript" match="any">
<group delimiter=",">
<text variable="title" text-case="capitalize-first" font-style="italic"/>
<text variable="genre" prefix=" [" suffix="]"/>
</group>
</else-if>
<else-if type="chapter entry-dictionary entry-encyclopedia" match="any">
<group delimiter="">
<text variable="title" text-case="capitalize-first" strip-periods="false" quotes="true"/>
<text value="dans" suffix=" " prefix=" "/>
<text macro="editor" suffix=", "/>
<text variable="container-title" text-case="capitalize-first" font-style="italic"/>
</group>
</else-if>
<else-if type="webpage post-weblog" match="any">
<group delimiter="">
<text variable="title" text-case="capitalize-first" font-style="italic" suffix=", "/>
<text variable="URL"/>
<group prefix=", ">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
</group>
</group>
</else-if>
<else>
<text variable="title" quotes="true"/>
</else>
</choose>
</macro>
<macro name="pub-place">
<choose>
<if type="bill book chapter entry-dictionary entry-encyclopedia thesis graphic legal_case manuscript motion_picture paper-conference report song" match="any">
<choose>
<if variable="publisher-place" match="any">
<text variable="publisher-place"/>
</if>
<else>
<text value="s.l."/>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="publisher">
<choose>
<if type="bill book chapter entry-dictionary entry-encyclopedia graphic legal_case motion_picture paper-conference report song" match="any">
<text variable="publisher"/>
</if>
</choose>
</macro>
<macro name="yearpage">
<choose>
<if type="bill book graphic legal_case motion_picture paper-conference manuscript report song thesis" match="any">
<group delimiter=", ">
<group delimiter=" ">
<date variable="issued" form="numeric" date-parts="year"/>
<date variable="original-date" form="numeric" date-parts="year" prefix="[" suffix="]"/>
</group>
<group>
<text term="volume" form="short" suffix="."/>
<text variable="number-of-volumes" prefix=". " suffix="/"/>
<text variable="volume"/>
</group>
<choose>
<if variable="locator" match="any">
<group delimiter=" ">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</if>
<else-if variable="locator" match="none"/>
</choose>
</group>
</if>
<else-if type="chapter entry-dictionary entry-encyclopedia" match="any">
<group delimiter=" ">
<group delimiter=" ">
<date variable="issued" form="numeric" date-parts="year"/>
<date variable="original-date" form="numeric" date-parts="year" prefix="[" suffix="]"/>
</group>
<group>
<text term="volume" form="short" suffix="."/>
<text variable="number-of-volumes" prefix=". " suffix="/"/>
<text variable="volume" suffix=","/>
</group>
<choose>
<if variable="locator" match="any">
<group delimiter=" ">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</if>
</choose>
</group>
</else-if>
<else-if type="article-journal" match="any"/>
<else-if type="article-newspaper article-magazine" match="any">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" "/>
<date-part name="year"/>
</date>
<group delimiter=" " font-style="normal">
<label variable="page" form="short"/>
<text variable="page"/>
</group>
<group delimiter=" " font-style="normal">
<choose>
<if variable="locator" match="any">
<group delimiter=" ">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</if>
<else-if variable="locator" match="none">
<label variable="page" form="short"/>
</else-if>
</choose>
</group>
</else-if>
<else-if type="webpage post-weblog" match="any">
<group delimiter=" " prefix="(" suffix=")">
<text value="consulté le"/>
<date variable="accessed" form="text">
<date-part name="day"/>
<date-part name="month"/>
<date-part name="year"/>
</date>
</group>
</else-if>
</choose>
</macro>
<macro name="yearpage-bib">
<choose>
<if type="bill book graphic legal_case motion_picture paper-conference report song thesis" match="any">
<group delimiter=", ">
<group delimiter=", ">
<group delimiter=" ">
<date variable="issued" form="numeric" date-parts="year"/>
<date variable="original-date" form="numeric" date-parts="year" prefix="[" suffix="]"/>
</group>
<group>
<text term="volume" form="short" suffix="."/>
<text variable="number-of-volumes" prefix=". " suffix="/"/>
<text variable="volume"/>
</group>
</group>
<group>
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</group>
</if>
<else-if type="chapter entry-dictionary entry-encyclopedia" match="any">
<group delimiter=", ">
<group delimiter=" ">
<date variable="issued" form="numeric" date-parts="year"/>
<date variable="original-date" form="numeric" date-parts="year" prefix="[" suffix="]"/>
</group>
<group>
<text term="volume" form="short" suffix="."/>
<text variable="number-of-volumes" prefix=". " suffix="/"/>
<text variable="volume"/>
</group>
<group>
<label variable="page" form="short"/>
<text variable="page" prefix=" "/>
</group>
</group>
</else-if>
<else-if type="article-journal" match="any">
<group delimiter=" ">
<label variable="page" form="short"/>
<text variable="page"/>
</group>
</else-if>
<else-if type="article-newspaper article-magazine" match="any">
<group delimiter=" ">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" "/>
<date-part name="year"/>
</date>
<label variable="page" form="short"/>
<text variable="page"/>
</group>
</else-if>
<else-if type="manuscript">
<group delimiter="" font-style="normal">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
</if>
<else>
<text value="s. d."/>
</else>
</choose>
</group>
</else-if>
<else-if type="webpage post-weblog" match="any">
<group delimiter=" ">
<text value="consulté le" suffix=" " prefix=" "/>
<date variable="accessed" form="text">
<date-part name="day"/>
<date-part name="month"/>
<date-part name="year"/>
</date>
</group>
</else-if>
</choose>
</macro>
<macro name="edition">
<choose>
<if type="bill book graphic legal_case motion_picture report song chapter paper-conference" match="any">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition" text-case="capitalize-first" suffix="."/>
</else>
</choose>
</if>
<else-if type="article-journal article-magazine" match="any">
<group delimiter="">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
<text macro="volume" prefix=", "/>
</if>
<else>
<text macro="volume" text-case="capitalize-first"/>
</else>
</choose>
</group>
</else-if>
</choose>
<text macro="issue" prefix=", "/>
</macro>
<macro name="volume">
<choose>
<if is-numeric="volume">
<text term="volume" form="short" suffix=". "/>
<text variable="volume"/>
</if>
<else>
<text variable="volume"/>
</else>
</choose>
</macro>
<macro name="issue">
<choose>
<if is-numeric="issue">
<text term="issue" form="short" suffix=" "/>
<text variable="issue"/>
</if>
<else>
<text variable="issue"/>
</else>
</choose>
</macro>
<macro name="collection">
<text variable="collection-title" quotes="true" prefix=" (coll. " suffix=")"/>
</macro>
<citation et-al-min="4" et-al-use-first="1">
<layout suffix="." delimiter=" ; ">
<choose>
<if position="ibid-with-locator">
<group delimiter=", ">
<text term="ibid" text-case="capitalize-first" font-style="italic" suffix="."/>
<text variable="locator" prefix="p. "/>
</group>
</if>
<else-if position="ibid">
<text term="ibid" text-case="capitalize-first" font-style="italic"/>
</else-if>
<else-if position="subsequent">
<group delimiter=", ">
<text macro="author-ibid"/>
<choose>
<if type="bill book graphic legal_case motion_picture report song thesis manuscript" match="any">
<text variable="title" form="short" font-style="italic"/>
<text term="cited" font-style="italic" suffix="."/>
</if>
<else>
<text variable="title" text-case="capitalize-first" form="short" quotes="true"/>
<text value="art cit"/>
</else>
</choose>
<text variable="locator" prefix="p. "/>
</group>
</else-if>
<else>
<choose>
<if type="manuscript">
<group delimiter=", ">
<text variable="archive"/>
<text variable="archive_location"/>
<text variable="call-number"/>
<text macro="title"/>
<text macro="yearpage-bib"/>
</group>
</if>
<else>
<group delimiter=", ">
<text macro="author"/>
<text macro="title"/>
<text macro="translator"/>
<text macro="edition"/>
<text macro="pub-place"/>
<text macro="publisher"/>
<text macro="yearpage"/>
</group>
</else>
</choose>
</else>
</choose>
</layout>
</citation>
<bibliography>
<sort>
<key macro="author" names-min="3" names-use-first="3"/>
<key variable="issued" sort="descending"/>
</sort>
<layout suffix=".">
<choose>
<if type="manuscript">
<group delimiter=", ">
<text variable="archive"/>
<text variable="archive_location"/>
<text variable="call-number"/>
<text macro="title"/>
<text macro="yearpage-bib"/>
</group>
</if>
<else>
<group delimiter=", ">
<text macro="author-bib"/>
<text macro="title"/>
<text macro="translator"/>
<text macro="edition"/>
<text macro="pub-place"/>
<group delimiter=" ">
<text macro="publisher"/>
<text macro="collection"/>
</group>
<text macro="yearpage-bib"/>
</group>
</else>
</choose>
</layout>
</bibliography>
</style>