mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 03:11:59 +00:00
Add support for biblatex-apa's \nptextcite
This commit is contained in:
parent
f7cc716861
commit
2dac89aca0
@ -29,7 +29,8 @@ MaxCiteNames 3
|
|||||||
# The syntax of the cite command definitions below is:
|
# The syntax of the cite command definitions below is:
|
||||||
# style@LyXName|alias*<!_stardesc!_stardesctooltip>[][]=latexcmd
|
# style@LyXName|alias*<!_stardesc!_stardesctooltip>[][]=latexcmd
|
||||||
#
|
#
|
||||||
# * style: (Optional) citestyle to which this command is specific.
|
# * style: A (comma-separated) list of citestyles to which
|
||||||
|
# this command is specific.
|
||||||
# * LyXName: The LyX name as output in the LyX file. For
|
# * LyXName: The LyX name as output in the LyX file. For
|
||||||
# portability reasons, we try to use the same
|
# portability reasons, we try to use the same
|
||||||
# name for same-formatted commands in the
|
# name for same-formatted commands in the
|
||||||
@ -40,7 +41,7 @@ MaxCiteNames 3
|
|||||||
# This is a bit like "ObsoletedBy" in the layouts.
|
# This is a bit like "ObsoletedBy" in the layouts.
|
||||||
# * latexcmd: The actual LaTeX command that is output.
|
# * latexcmd: The actual LaTeX command that is output.
|
||||||
#
|
#
|
||||||
# Alias and latexcmd are optional. If no latexcmd is given, the
|
# Style, alias and latexcmd are optional. If no latexcmd is given, the
|
||||||
# LyXName will be output to LaTeX.
|
# LyXName will be output to LaTeX.
|
||||||
#
|
#
|
||||||
# Note further:
|
# Note further:
|
||||||
|
@ -33,7 +33,8 @@ MaxCiteNames 3
|
|||||||
# The syntax of the cite command definitions below is:
|
# The syntax of the cite command definitions below is:
|
||||||
# style@LyXName|alias*<!_stardesc!_stardesctooltip>[][]=latexcmd
|
# style@LyXName|alias*<!_stardesc!_stardesctooltip>[][]=latexcmd
|
||||||
#
|
#
|
||||||
# * style: (Optional) citestyle to which this command is specific.
|
# * style: A (comma-separated) list of citestyles to which
|
||||||
|
# this command is specific.
|
||||||
# * LyXName: The LyX name as output in the LyX file. For
|
# * LyXName: The LyX name as output in the LyX file. For
|
||||||
# portability reasons, we try to use the same
|
# portability reasons, we try to use the same
|
||||||
# name for same-formatted commands in the
|
# name for same-formatted commands in the
|
||||||
@ -44,7 +45,7 @@ MaxCiteNames 3
|
|||||||
# This is a bit like "ObsoletedBy" in the layouts.
|
# This is a bit like "ObsoletedBy" in the layouts.
|
||||||
# * latexcmd: The actual LaTeX command that is output.
|
# * latexcmd: The actual LaTeX command that is output.
|
||||||
#
|
#
|
||||||
# Alias and latexcmd are optional. If no latexcmd is given, the
|
# Style, alias and latexcmd are optional. If no latexcmd is given, the
|
||||||
# LyXName will be output to LaTeX.
|
# LyXName will be output to LaTeX.
|
||||||
#
|
#
|
||||||
# Note further:
|
# Note further:
|
||||||
@ -81,6 +82,7 @@ MaxCiteNames 3
|
|||||||
CiteEngine authoryear
|
CiteEngine authoryear
|
||||||
Citet|textcite*[][]
|
Citet|textcite*[][]
|
||||||
Citep|parencite*[][]
|
Citep|parencite*[][]
|
||||||
|
apa,apa6@nptextcite$[][]
|
||||||
Citealt|cite*[][]
|
Citealt|cite*[][]
|
||||||
Citealp*[][]
|
Citealp*[][]
|
||||||
Citeauthor*[][]
|
Citeauthor*[][]
|
||||||
@ -299,6 +301,11 @@ CiteFormat authoryear
|
|||||||
|
|
||||||
# Fallback style: "Author A (cf. Year),[ and] Author B (Year, p. xx)"
|
# Fallback style: "Author A (cf. Year),[ and] Author B (Year, p. xx)"
|
||||||
cite %!makecitet%%!textafter%%!close%
|
cite %!makecitet%%!textafter%%!close%
|
||||||
|
|
||||||
|
# Style-specifics
|
||||||
|
# 1. APA
|
||||||
|
# "cf. Author A Year; Author B Year, p. xx"
|
||||||
|
nptextcite %!textbefore%%!makepcite%%!textafter%
|
||||||
End
|
End
|
||||||
|
|
||||||
CiteFormat numerical
|
CiteFormat numerical
|
||||||
|
@ -29,7 +29,8 @@ MaxCiteNames 3
|
|||||||
# The syntax of the cite command definitions below is:
|
# The syntax of the cite command definitions below is:
|
||||||
# style@LyXName|alias*<!_stardesc!_stardesctooltip>[][]=latexcmd
|
# style@LyXName|alias*<!_stardesc!_stardesctooltip>[][]=latexcmd
|
||||||
#
|
#
|
||||||
# * style: (Optional) citestyle to which this command is specific.
|
# * style: A (comma-separated) list of citestyles to which
|
||||||
|
# this command is specific.
|
||||||
# * LyXName: The LyX name as output in the LyX file. For
|
# * LyXName: The LyX name as output in the LyX file. For
|
||||||
# portability reasons, we try to use the same
|
# portability reasons, we try to use the same
|
||||||
# name for same-formatted commands in the
|
# name for same-formatted commands in the
|
||||||
@ -40,7 +41,7 @@ MaxCiteNames 3
|
|||||||
# This is a bit like "ObsoletedBy" in the layouts.
|
# This is a bit like "ObsoletedBy" in the layouts.
|
||||||
# * latexcmd: The actual LaTeX command that is output.
|
# * latexcmd: The actual LaTeX command that is output.
|
||||||
#
|
#
|
||||||
# Alias and latexcmd are optional. If no latexcmd is given, the
|
# Style, alias and latexcmd are optional. If no latexcmd is given, the
|
||||||
# LyXName will be output to LaTeX.
|
# LyXName will be output to LaTeX.
|
||||||
#
|
#
|
||||||
# Note further:
|
# Note further:
|
||||||
@ -75,6 +76,7 @@ CiteEngine authoryear
|
|||||||
Cite$|citealt,citealp[][]
|
Cite$|citealt,citealp[][]
|
||||||
Citet$[][]=textcite
|
Citet$[][]=textcite
|
||||||
Citep$[][]=parencite
|
Citep$[][]=parencite
|
||||||
|
apa,apa6@nptextcite$[][]
|
||||||
Citeauthor*<!_citeauthorstar!_citeauthorstartooltip>[][]
|
Citeauthor*<!_citeauthorstar!_citeauthorstartooltip>[][]
|
||||||
citeyearpar[][]=parencite*
|
citeyearpar[][]=parencite*
|
||||||
citeyear[][]=cite*
|
citeyear[][]=cite*
|
||||||
@ -285,6 +287,11 @@ CiteFormat authoryear
|
|||||||
footcite {%dialog%[[%_footnote%]][[%_foot%]]}: %!textbefore%%!makecite%%!textafter%.
|
footcite {%dialog%[[%_footnote%]][[%_foot%]]}: %!textbefore%%!makecite%%!textafter%.
|
||||||
# "Auto: (cf. Author A Year; Author B Year, p. xx)"
|
# "Auto: (cf. Author A Year; Author B Year, p. xx)"
|
||||||
autocite {%dialog%[[%_autocite%]][[%_auto%]]}: %!open%%!textbefore%%!makepcite%%!textafter%%!close%
|
autocite {%dialog%[[%_autocite%]][[%_auto%]]}: %!open%%!textbefore%%!makepcite%%!textafter%%!close%
|
||||||
|
|
||||||
|
# Style-specifics
|
||||||
|
# 1. APA
|
||||||
|
# "cf. Author A Year; Author B Year, p. xx"
|
||||||
|
nptextcite %!textbefore%%!makepcite%%!textafter%
|
||||||
End
|
End
|
||||||
|
|
||||||
CiteFormat numerical
|
CiteFormat numerical
|
||||||
|
@ -377,6 +377,64 @@ def revert_biblatex_chicago(document):
|
|||||||
document.body[i : j + 1] = put_cmd_in_ert([res])
|
document.body[i : j + 1] = put_cmd_in_ert([res])
|
||||||
i = j + 1
|
i = j + 1
|
||||||
|
|
||||||
|
|
||||||
|
def revert_nptextcite(document):
|
||||||
|
"""Revert \\nptextcite to ERT"""
|
||||||
|
|
||||||
|
# 1. Get cite engine
|
||||||
|
engine = "basic"
|
||||||
|
i = find_token(document.header, "\\cite_engine", 0)
|
||||||
|
if i == -1:
|
||||||
|
document.warning("Malformed document! Missing \\cite_engine")
|
||||||
|
else:
|
||||||
|
engine = get_value(document.header, "\\cite_engine", i)
|
||||||
|
|
||||||
|
# 2. Do we use biblatex?
|
||||||
|
if engine != "biblatex" and engine != "biblatex-natbib":
|
||||||
|
return
|
||||||
|
|
||||||
|
# 3. and APA?
|
||||||
|
cetype = "authoryear"
|
||||||
|
i = find_token(document.header, "\\biblatex_citestyle", 0)
|
||||||
|
if i == -1:
|
||||||
|
return
|
||||||
|
|
||||||
|
# 4. Convert \nptextcite to ERT
|
||||||
|
i = 0
|
||||||
|
while True:
|
||||||
|
i = find_token(document.body, "\\begin_inset CommandInset citation", i)
|
||||||
|
if i == -1:
|
||||||
|
break
|
||||||
|
j = find_end_of_inset(document.body, i)
|
||||||
|
if j == -1:
|
||||||
|
document.warning("Can't find end of citation inset at line %d!!" % (i))
|
||||||
|
i += 1
|
||||||
|
continue
|
||||||
|
k = find_token(document.body, "LatexCommand", i, j)
|
||||||
|
if k == -1:
|
||||||
|
document.warning("Can't find LatexCommand for citation inset at line %d!" % (i))
|
||||||
|
i = j + 1
|
||||||
|
continue
|
||||||
|
cmd = get_value(document.body, "LatexCommand", k)
|
||||||
|
if cmd == "nptextcite":
|
||||||
|
pre = get_quoted_value(document.body, "before", i, j)
|
||||||
|
post = get_quoted_value(document.body, "after", i, j)
|
||||||
|
key = get_quoted_value(document.body, "key", i, j)
|
||||||
|
if not key:
|
||||||
|
document.warning("Citation inset at line %d does not have a key!" % (i))
|
||||||
|
key = "???"
|
||||||
|
# Replace known new commands with ERT
|
||||||
|
res = "\\nptextcite"
|
||||||
|
if pre:
|
||||||
|
res += "[" + pre + "]"
|
||||||
|
if post:
|
||||||
|
res += "[" + post + "]"
|
||||||
|
elif pre:
|
||||||
|
res += "[]"
|
||||||
|
res += "{" + key + "}"
|
||||||
|
document.body[i : j + 1] = put_cmd_in_ert([res])
|
||||||
|
i = j + 1
|
||||||
|
|
||||||
##
|
##
|
||||||
# Conversion hub
|
# Conversion hub
|
||||||
#
|
#
|
||||||
@ -386,11 +444,13 @@ convert = [
|
|||||||
[621, [convert_url_escapes, convert_url_escapes2]],
|
[621, [convert_url_escapes, convert_url_escapes2]],
|
||||||
[622, []],
|
[622, []],
|
||||||
[623, [convert_he_letter]],
|
[623, [convert_he_letter]],
|
||||||
[624, [convert_biblatex_chicago]]
|
[624, [convert_biblatex_chicago]],
|
||||||
|
[625, []]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
revert = [
|
revert = [
|
||||||
|
[624, [revert_nptextcite]],
|
||||||
[623, [revert_biblatex_chicago]],
|
[623, [revert_biblatex_chicago]],
|
||||||
[622, []],
|
[622, []],
|
||||||
[621, [revert_glue_parskip]],
|
[621, [revert_glue_parskip]],
|
||||||
|
@ -215,7 +215,7 @@ char const * const known_biblatex_commands[] = { "cite", "Cite", "textcite", "Te
|
|||||||
"parencite", "Parencite", "citeauthor", "Citeauthor", "citeyear", "smartcite", "Smartcite",
|
"parencite", "Parencite", "citeauthor", "Citeauthor", "citeyear", "smartcite", "Smartcite",
|
||||||
"footcite", "Footcite", "autocite", "Autocite", "citetitle", "fullcite", "footfullcite",
|
"footcite", "Footcite", "autocite", "Autocite", "citetitle", "fullcite", "footfullcite",
|
||||||
"supercite", "cites", "Cites", "textcites", "Textcites", "parencites", "Parencites",
|
"supercite", "cites", "Cites", "textcites", "Textcites", "parencites", "Parencites",
|
||||||
"smartcites", "Smartcites", "autocites", "Autocites", 0 };
|
"smartcites", "Smartcites", "autocites", "Autocites", "nptextcite", 0 };
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* biblatex-chicago commands.
|
* biblatex-chicago commands.
|
||||||
|
@ -32,8 +32,8 @@ extern char const * const lyx_version_info;
|
|||||||
|
|
||||||
// Do not remove the comment below, so we get merge conflict in
|
// Do not remove the comment below, so we get merge conflict in
|
||||||
// independent branches. Instead add your own.
|
// independent branches. Instead add your own.
|
||||||
#define LYX_FORMAT_LYX 624 // spitz: support biblatex-chicago
|
#define LYX_FORMAT_LYX 625 // spitz: \nptextcite (APA)
|
||||||
#define LYX_FORMAT_TEX2LYX 624
|
#define LYX_FORMAT_TEX2LYX 625
|
||||||
|
|
||||||
#if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
|
#if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
|
Loading…
Reference in New Issue
Block a user