Add built-in citation support using new citeproc library.

This deprecates the use of the external pandoc-citeproc
filter; citation processing is now built in to pandoc.

* Add dependency on citeproc library.
* Add Text.Pandoc.Citeproc module (and some associated unexported
  modules under Text.Pandoc.Citeproc).  Exports `processCitations`.
  [API change]
* Add data files needed for Text.Pandoc.Citeproc:  default.csl
  in the data directory, and a citeproc directory that is just
  used at compile-time.  Note that we've added file-embed as a mandatory
  rather than a conditional depedency, because of the biblatex
  localization files. We might eventually want to use readDataFile
  for this, but it would take some code reorganization.
* Text.Pandoc.Loging: Add `CiteprocWarning` to `LogMessage` and use it
  in `processCitations`. [API change]
* Add tests from the pandoc-citeproc package as command tests (including
  some tests pandoc-citeproc did not pass).
* Remove instructions for building pandoc-citeproc from CI and
  release binary build instructions.  We will no longer distribute
  pandoc-citeproc.
* Markdown reader: tweak abbreviation support.  Don't insert a
  nonbreaking space after a potential abbreviation if it comes right before
  a note or citation.  This messes up several things, including citeproc's
  moving of note citations.
* Add `csljson` as and input and output format. This allows pandoc
  to convert between `csljson` and other bibliography formats,
  and to generate formatted versions of CSL JSON bibliographies.
* Add module Text.Pandoc.Writers.CslJson, exporting `writeCslJson`. [API
  change]
* Add module Text.Pandoc.Readers.CslJson, exporting `readCslJson`. [API
  change]
* Added `bibtex`, `biblatex` as input formats.  This allows pandoc
  to convert between BibLaTeX and BibTeX and other bibliography formats,
  and to generated formatted versions of BibTeX/BibLaTeX bibliographies.
* Add module Text.Pandoc.Readers.BibTeX, exporting `readBibTeX` and
  `readBibLaTeX`. [API change]
* Make "standalone" implicit if output format is a bibliography format.
  This is needed because pandoc readers for bibliography formats put
  the bibliographic information in the `references` field of metadata;
  and unless standalone is specified, metadata gets ignored.
  (TODO: This needs improvement. We should trigger standalone for the
  reader when the input format is bibliographic, and for the writer
  when the output format is markdown.)
* Carry over `citationNoteNum` to `citationNoteNumber`.  This was just
  ignored in pandoc-citeproc.
* Text.Pandoc.Filter: Add `CiteprocFilter` constructor to Filter.
  [API change] This runs the processCitations transformation.
  We need to treat it like a filter so it can be placed
  in the sequence of filter runs (after some, before others).
  In FromYAML, this is parsed from `citeproc` or `{type: citeproc}`,
  so this special filter may be specified either way in a defaults file
  (or by `citeproc: true`, though this gives no control of positioning
  relative to other filters).  TODO: we need to add something to the
  manual section on defaults files for this.
* Add deprecation warning if `upandoc-citeproc` filter is used.
* Add `--citeproc/-C` option to trigger citation processing.
  This behaves like a filter and will be positioned
  relative to filters as they appear on the command line.
* Rewrote the manual on citatations, adding a dedicated Citations
  section which also includes some information formerly found in
  the pandoc-citeproc man page.
* Look for CSL styles in the `csl` subdirectory of the pandoc user data
  directory.  This changes the old pandoc-citeproc behavior, which looked
  in `~/.csl`.  Users can simply symlink `~/.csl` to the `csl`
  subdirectory of their pandoc user data directory if they want
  the old behavior.
* Add support for CSL bibliography entry formatting to LaTeX, HTML,
  Ms writers.  Added CSL-related CSS to styles.html.
This commit is contained in:
John MacFarlane 2020-09-06 16:25:16 -07:00
parent 89c577befb
commit e0984a43a9
312 changed files with 31826 additions and 303 deletions

View file

@ -18,19 +18,17 @@ jobs:
ghc --version
cabal --version
cabal v2-update
cabal v2-build --dependencies-only . pandoc-citeproc
cabal v2-build --dependencies-only all
- name: Build
run: |
export PATH=/opt/cabal/3.2/bin:/opt/ghc/8.8.3/bin:$PATH
cabal v2-install . pandoc-citeproc
cabal v2-install all
strip $HOME/.cabal/bin/pandoc
strip $HOME/.cabal/bin/pandoc-citeproc
- name: Install artifact
run: |
export ARTIFACTS=nightly-linux/pandoc-nightly-linux-$(date +%Y-%m-%d)
mkdir -p ${ARTIFACTS}
cp $HOME/.cabal/bin/pandoc ${ARTIFACTS}/
cp $HOME/.cabal/bin/pandoc-citeproc ${ARTIFACTS}/
cp COPYRIGHT ${ARTIFACTS}/
echo "Built from ${GITHUB_SHA}" > ${ARTIFACTS}/README.nightly.txt
- uses: actions/upload-artifact@master
@ -51,14 +49,14 @@ jobs:
- name: Install dependencies
run: |
stack update
stack build --dependencies-only pandoc pandoc-citeproc
stack build --dependencies-only pandoc
- name: Build artifacts
shell: cmd
run: |
for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a
set ARTIFACTS=%CD%\nightly-windows\pandoc-nightly-windows-%THEDATE%
mkdir %ARTIFACTS%
stack build pandoc pandoc-citeproc
stack build pandoc
forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C copy @path %%ARTIFACTS%%"
copy COPYRIGHT %ARTIFACTS%
ren %ARTIFACTS%\COPYRIGHT COPYRIGHT.txt
@ -81,15 +79,14 @@ jobs:
- name: Install dependencies
run: |
./stack update
./stack build --dependencies-only pandoc pandoc-citeproc
./stack build --dependencies-only pandoc
- name: Build artifacts
run: |
export ARTIFACTS=nightly-macos/pandoc-nightly-macos-$(date +%Y-%m-%d)
mkdir -p ${ARTIFACTS}
./stack build pandoc pandoc-citeproc
./stack build pandoc
for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${ARTIFACTS}/; done
mv ${ARTIFACTS}/pandoc ${ARTIFACTS}/pandoc
mv ${ARTIFACTS}/pandoc-citeproc ${ARTIFACTS}/pandoc-citeproc
cp COPYRIGHT ${ARTIFACTS}/
echo "Built from ${GITHUB_SHA}" > ${ARTIFACTS}/README.nightly.txt
- uses: actions/upload-artifact@master

View file

@ -48,12 +48,12 @@ jobs:
- name: Install dependencies
run: |
stack update
stack build ${{ matrix.versions.stack_opts }} --dependencies-only pandoc pandoc-citeproc
stack build ${{ matrix.versions.stack_opts }} --dependencies-only pandoc
- name: Create windows package
shell: cmd
run: |
for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a
stack build ${{ matrix.versions.stack_opts }} pandoc pandoc-citeproc
stack build ${{ matrix.versions.stack_opts }} pandoc
for /f "tokens=1-2 delims= " %%a in ('stack exec pandoc -- --version') do (
@set VERSION=%%b
goto :next
@ -67,7 +67,7 @@ jobs:
@set WINDOWS=%CD%\windows
@set RELEASE=%WINDOWS%\pandoc-%VERSION%
mkdir %RELEASE%
forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C echo @path && echo %%WINDOWS%% && copy @path %%RELEASE%%"
forfiles /P .\.stack-work\install /M pandoc.exe /S /C "cmd /C echo @path && echo %%WINDOWS%% && copy @path %%RELEASE%%"
stack exec pandoc -- -s --toc MANUAL.txt -o %RELEASE%\MANUAL.html
stack exec pandoc -- -s COPYING.md -t rtf -o %RELEASE%\COPYING.rtf
copy %RELEASE%\COPYING.rtf %WINDOWS%

View file

@ -29,14 +29,11 @@ install:
mkdir -p ${RESOURCES}
mkdir -p ${DEST}/bin
mkdir -p ${DEST}/share/man/man1
stack build --dependencies-only pandoc pandoc-citeproc
stack build pandoc pandoc-citeproc
stack build --dependencies-only pandoc
stack build pandoc
for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${DEST}/bin/; done
strip ${DEST}/bin/pandoc
strip ${DEST}/bin/pandoc-citeproc
cp man/pandoc.1 ${DEST}/share/man/man1/pandoc.1
${DEST}/bin/pandoc-citeproc --man > \
$DEST/share/man/man1/pandoc-citeproc.1
${DEST}/bin/pandoc -t html5 -s COPYING.md -Vpagetitle=License \
-o ${RESOURCES}/license.html
chown -R $ME:staff ${ROOT}

View file

@ -225,9 +225,12 @@ header when requesting a document from a URL:
: Specify input format. *FORMAT* can be:
::: {#input-formats}
- `bibtex` ([BibTeX] bibliography)
- `biblatex` ([BibLaTeX] bibliography)
- `commonmark` ([CommonMark] Markdown)
- `commonmark_x` ([CommonMark] Markdown with extensions)
- `creole` ([Creole 1.0])
- `csljson` ([CSL JSON] bibliography)
- `csv` ([CSV] table)
- `docbook` ([DocBook])
- `docx` ([Word docx])
@ -280,6 +283,7 @@ header when requesting a document from a URL:
- `commonmark` ([CommonMark] Markdown)
- `commonmark_x` ([CommonMark] Markdown with extensions)
- `context` ([ConTeXt])
- `csljson` ([CSL JSON] bibliography)
- `docbook` or `docbook4` ([DocBook] 4)
- `docbook5` (DocBook 5)
- `docx` ([Word docx])
@ -491,6 +495,9 @@ header when requesting a document from a URL:
[Muse]: https://amusewiki.org/library/manual
[PowerPoint]: https://en.wikipedia.org/wiki/Microsoft_PowerPoint
[Vimwiki]: https://vimwiki.github.io
[CSL JSON]: https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html
[BibTeX]: https://ctan.org/pkg/bibtex
[BibLaTeX]: https://ctan.org/pkg/biblatex
## Reader options {.options}
@ -1292,41 +1299,62 @@ header when requesting a document from a URL:
## Citation rendering {.options}
`-C`, `--citeproc`
: Process the citations in the file, replacing them with
rendered citations and adding a bibliography.
Citation processing will not take place unless bibliographic
data is supplied, either through an external file specified
using the `--bibliography` option or the `bibliography`
field in metadata, or via a `references` section in metadata
containing a list of citations in CSL YAML format with
Markdown formatting. The style is controlled by a [CSL]
stylesheet specified using the `--csl` option or the `csl`
field in metadata. (If no stylesheet is specified,
the `chicago-author-date` style will be used by default.)
The citation processing transformation may be applied before
or after filters or Lua filters (see `--filter`,
`--lua-filter`): these transformations are applied in the
order they appear on the command line. For more
information, see the section on [Citations].
`--bibliography=`*FILE*
: Set the `bibliography` field in the document's metadata to *FILE*,
overriding any value set in the metadata, and process citations
using `pandoc-citeproc`. (This is equivalent to
`--metadata bibliography=FILE --filter pandoc-citeproc`.)
If `--natbib` or `--biblatex` is also supplied, `pandoc-citeproc` is not
used, making this equivalent to `--metadata bibliography=FILE`.
If you supply this argument multiple times, each *FILE* will be added
to bibliography.
overriding any value set in the metadata. If you supply
this argument multiple times, each *FILE* will be added to
bibliography.
`--csl=`*FILE*
: Set the `csl` field in the document's metadata to *FILE*,
overriding any value set in the metadata. (This is equivalent to
`--metadata csl=FILE`.)
This option is only relevant with `pandoc-citeproc`.
`--metadata csl=FILE`.) If *FILE* is a URL, it will be
fetched via HTTP. If *FILE* is not found relative to the
working directory, it will be sought in the resource path
and finally in the `csl` subdirectory of the
pandoc user data directory.
`--citation-abbreviations=`*FILE*
: Set the `citation-abbreviations` field in the document's metadata to
*FILE*, overriding any value set in the metadata. (This is equivalent to
`--metadata citation-abbreviations=FILE`.)
This option is only relevant with `pandoc-citeproc`.
If *FILE* is a URL, it will be fetched via HTTP. If *FILE* is not
found relative to the working directory, it will be sought
in the resource path and finally in the `csl` subdirectory
of the pandoc user data directory.
`--natbib`
: Use [`natbib`] for citations in LaTeX output. This option is not for use
with the `pandoc-citeproc` filter or with PDF output. It is intended for
with the `--citeproc` option or with PDF output. It is intended for
use in producing a LaTeX file that can be processed with [`bibtex`].
`--biblatex`
: Use [`biblatex`] for citations in LaTeX output. This option is not for use
with the `pandoc-citeproc` filter or with PDF output. It is intended for
with the `--citeproc` option or with PDF output. It is intended for
use in producing a LaTeX file that can be processed with [`bibtex`] or [`biber`].
## Math rendering in HTML {.options}
@ -1427,6 +1455,7 @@ Nonzero exit codes have the following meanings:
21 PandocUnknownReaderError
22 PandocUnknownWriterError
23 PandocUnsupportedExtensionError
24 PandocCiteprocError
31 PandocEpubSubdirectoryError
43 PandocPDFError
47 PandocPDFProgramNotFoundError
@ -1496,7 +1525,6 @@ resource-path: ["."]
# the .lua extension, and json filters otherwise. But
# the filter type can also be specified explicitly, as shown:
filters:
- pandoc-citeproc
- wordcount.lua
- type: json
path: foo.lua
@ -4738,118 +4766,17 @@ they cannot contain multiple paragraphs). The syntax is as follows:
Inline and regular footnotes may be mixed freely.
## Citations
## Citation syntax
#### Extension: `citations` ####
Using an external filter, `pandoc-citeproc`, pandoc can automatically generate
citations and a bibliography in a number of styles. Basic usage is
pandoc --filter pandoc-citeproc myinput.txt
In order to use this feature, you will need to specify a bibliography file
using the `bibliography` metadata field in a YAML metadata section, or
`--bibliography` command line argument. You can supply multiple `--bibliography`
arguments or set `bibliography` metadata field to YAML array, if you want to
use multiple bibliography files. The bibliography may have any of these
formats:
Format File extension
------------ --------------
BibLaTeX .bib
BibTeX .bibtex
Copac .copac
CSL JSON .json
CSL YAML .yaml
EndNote .enl
EndNote XML .xml
ISI .wos
MEDLINE .medline
MODS .mods
RIS .ris
Note that `.bib` can be used with both BibTeX and BibLaTeX files;
use `.bibtex` to force BibTeX.
Note that `pandoc-citeproc --bib2json` and `pandoc-citeproc --bib2yaml`
can produce `.json` and `.yaml` files from any of the supported formats.
In-field markup: In BibTeX and BibLaTeX databases,
pandoc-citeproc parses a subset of LaTeX markup; in CSL YAML
databases, pandoc Markdown; and in CSL JSON databases, an
[HTML-like markup][CSL markup specs]:
`<i>...</i>`
: italics
`<b>...</b>`
: bold
`<span style="font-variant:small-caps;">...</span>` or `<sc>...</sc>`
: small capitals
`<sub>...</sub>`
: subscript
`<sup>...</sup>`
: superscript
`<span class="nocase">...</span>`
: prevent a phrase from being capitalized as title case
`pandoc-citeproc -j` and `-y` interconvert the CSL JSON
and CSL YAML formats as far as possible.
As an alternative to specifying a bibliography file using `--bibliography`
or the YAML metadata field `bibliography`, you can include
the citation data directly in the `references` field of the
document's YAML metadata. The field should contain an array of
YAML-encoded references, for example:
---
references:
- type: article-journal
id: WatsonCrick1953
author:
- family: Watson
given: J. D.
- family: Crick
given: F. H. C.
issued:
date-parts:
- - 1953
- 4
- 25
title: 'Molecular structure of nucleic acids: a structure for deoxyribose
nucleic acid'
title-short: Molecular structure of nucleic acids
container-title: Nature
volume: 171
issue: 4356
page: 737-738
DOI: 10.1038/171737a0
URL: https://www.nature.com/articles/171737a0
language: en-GB
...
(`pandoc-citeproc --bib2yaml` can produce these from a bibliography file in one
of the supported formats.)
Citations and references can be formatted using any style supported by the
[Citation Style Language], listed in the [Zotero Style Repository].
These files are specified using the `--csl` option or the `csl` metadata field.
By default, `pandoc-citeproc` will use the [Chicago Manual of Style] author-date
format. The CSL project provides further information on [finding and editing styles].
To make your citations hyperlinks to the corresponding bibliography
entries, add `link-citations: true` to your YAML metadata.
Citations go inside square brackets and are separated by semicolons.
Each citation must have a key, composed of '@' + the citation
identifier from the database, and may optionally have a prefix,
a locator, and a suffix. The citation key must begin with a letter, digit,
or `_`, and may contain alphanumerics, `_`, and internal punctuation
characters (`:.#$%&-+?<>~/`). Here are some examples:
Markdown citations go inside square brackets and are separated
by semicolons. Each citation must have a key, composed of '@' +
the citation identifier from the database, and may optionally
have a prefix, a locator, and a suffix. The citation key must
begin with a letter, digit, or `_`, and may contain
alphanumerics, `_`, and internal punctuation characters
(`:.#$%&-+?<>~/`). Here are some examples:
Blah blah [see @doe99, pp. 33-35; also @smith04, chap. 1].
@ -4857,7 +4784,7 @@ characters (`:.#$%&-+?<>~/`). Here are some examples:
Blah blah [@smith04; @doe99].
`pandoc-citeproc` detects locator terms in the [CSL locale files].
`pandoc` detects locator terms in the [CSL locale files].
Either abbreviated or unabbreviated forms are accepted. In the `en-US`
locale, locator terms can be written in either singular or plural forms,
as `book`, `bk.`/`bks.`; `chapter`, `chap.`/`chaps.`; `column`,
@ -4868,9 +4795,9 @@ as `book`, `bk.`/`bks.`; `chapter`, `chap.`/`chaps.`; `column`,
`verse`, `v.`/`vv.`; `volume`, `vol.`/`vols.`; `¶`/`¶¶`; `§`/`§§`. If no
locator term is used, "page" is assumed.
`pandoc-citeproc` will use heuristics to distinguish the locator
`pandoc` will use heuristics to distinguish the locator
from the suffix. In complex cases, the locator can be enclosed
in curly braces (using `pandoc-citeproc` 0.15 and higher only):
in curly braces:
[@smith{ii, A, D-Z}, with a suffix]
[@smith, {pp. iv, vi-xi, (xv)-(xvii)} with suffix here]
@ -4887,68 +4814,14 @@ You can also write an in-text citation, as follows:
@smith04 [p. 33] says blah.
If the style calls for a list of works cited, it will be placed
in a div with id `refs`, if one exists:
::: {#refs}
:::
Otherwise, it will be placed at the end of the document.
Generation of the bibliography can be suppressed by setting
`suppress-bibliography: true` in the YAML metadata.
If you wish the bibliography to have a section heading, you can
set `reference-section-title` in the metadata, or put the heading
at the beginning of the div with id `refs` (if you are using it)
or at the end of your document:
last paragraph...
# References
The bibliography will be inserted after this heading. Note that
the `unnumbered` class will be added to this heading, so that the
section will not be numbered.
If you want to include items in the bibliography without actually
citing them in the body text, you can define a dummy `nocite` metadata
field and put the citations there:
---
nocite: |
@item1, @item2
...
@item3
In this example, the document will contain a citation for `item3`
only, but the bibliography will contain entries for `item1`, `item2`, and
`item3`.
It is possible to create a bibliography with all the citations,
whether or not they appear in the document, by using a wildcard:
---
nocite: |
@*
...
For LaTeX output, you can also use [`natbib`] or [`biblatex`] to
render the bibliography. In order to do so, specify bibliography
files as outlined above, and add `--natbib` or `--biblatex`
argument to `pandoc` invocation. Bear in mind that bibliography
files have to be in respective format (either BibTeX or
BibLaTeX).
For more information, see the [pandoc-citeproc man page].
[CSL]: https://docs.citationstyles.org/en/stable/specification.html
[CSL markup specs]: https://docs.citationstyles.org/en/1.0/release-notes.html#rich-text-markup-within-fields
[Chicago Manual of Style]: https://chicagomanualofstyle.org
[Citation Style Language]: https://citationstyles.org
[Zotero Style Repository]: https://www.zotero.org/styles
[finding and editing styles]: https://citationstyles.org/authors/
[CSL locale files]: https://github.com/citation-style-language/locales
[pandoc-citeproc man page]: https://github.com/jgm/pandoc-citeproc/blob/master/man/pandoc-citeproc.1.md
## Non-pandoc extensions
@ -5169,7 +5042,298 @@ commonmark. So, for example, `backtick_code_blocks`
does not appear as an extension, since it is enabled by
default and cannot be disabled.
# Producing slide shows with pandoc
# Citations
When the `--citeproc` option is used, pandoc can automatically generate
citations and a bibliography in a number of styles. Basic usage is
pandoc --citeproc myinput.txt
To use this feature, you will need to have
- a document containing citations (see [Extension: `citations`]);
- a source of bibliographic data: either an external bibliography
file or a list of `references` in the document's YAML metadata
- optionally, a [CSL] citation style.
## Specifying bibliographic data
You can specify an external bibliography using the
`bibliography` metadata field in a YAML metadata section or the
`--bibliography` command line argument. If you want to use
multiple bibliography files, you can supply multiple
`--bibliography` arguments or set `bibliography` metadata field
to YAML array. A bibliography may have any of these formats:
Format File extension
------------ --------------
BibLaTeX .bib
BibTeX .bibtex
CSL JSON .json
CSL YAML .yaml
Note that `.bib` can be used with both BibTeX and BibLaTeX files;
use the extension `.bibtex` to force interpretation as BibTeX.
In BibTeX and BibLaTeX databases, pandoc parses LaTeX markup
inside fields such as `title`; in CSL YAML databases, pandoc
Markdown; and in CSL JSON databases, an [HTML-like markup][CSL
markup specs]:
`<i>...</i>`
: italics
`<b>...</b>`
: bold
`<span style="font-variant:small-caps;">...</span>` or `<sc>...</sc>`
: small capitals
`<sub>...</sub>`
: subscript
`<sup>...</sup>`
: superscript
`<span class="nocase">...</span>`
: prevent a phrase from being capitalized as title case
As an alternative to specifying a bibliography file using
`--bibliography` or the YAML metadata field `bibliography`, you
can include the citation data directly in the `references` field
of the document's YAML metadata. The field should contain an
array of YAML-encoded references, for example:
---
references:
- type: article-journal
id: WatsonCrick1953
author:
- family: Watson
given: J. D.
- family: Crick
given: F. H. C.
issued:
date-parts:
- - 1953
- 4
- 25
title: 'Molecular structure of nucleic acids: a structure for
deoxyribose nucleic acid'
title-short: Molecular structure of nucleic acids
container-title: Nature
volume: 171
issue: 4356
page: 737-738
DOI: 10.1038/171737a0
URL: https://www.nature.com/articles/171737a0
language: en-GB
...
Note that `pandoc` can be used to produce such a YAML metadata
section from a BibTeX, BibLaTeX, or CSL JSON bibliography:
pandoc chem.bib -s -t markdown
pandoc chem.json -s -t markdown
### Capitalization in titles
If you are using a bibtex or biblatex bibliography, then observe
the following rules:
- English titles should be in title case. Non-English titles should
be in sentence case, and the `langid` field in biblatex should be
set to the relevant language. (The following values are treated
as English: `american`, `british`, `canadian`, `english`,
`australian`, `newzealand`, `USenglish`, or `UKenglish`.)
- As is standard with bibtex/biblatex, proper names should be
protected with curly braces so that they won't be lowercased
in styles that call for sentence case. For example:
title = {My Dinner with {Andre}}
- In addition, words that should remain lowercase (or camelCase)
should be protected:
title = {Spin Wave Dispersion on the {nm} Scale}
Though this is not necessary in bibtex/biblatex, it is necessary
with citeproc, which stores titles internally in sentence case,
and converts to title case in styles that require it. Here we
protect "nm" so that it doesn't get converted to "Nm" at this stage.
If you are using a CSL bibliography (either JSON or YAML), then observe
the following rules:
- All titles should be in sentence case.
- Use the `language` field for non-English titles to prevent their
conversion to title case in styles that call for this. (Conversion
happens only if `language` begins with `en` or is left empty.)
- Protect words that should not be converted to title case using
this syntax:
Spin wave dispersion on the <span class="nocase">nm</span> scale
### Conference Papers, Published vs. Unpublished
For a formally published conference paper, use the biblatex entry type
`inproceedings` (which will be mapped to CSL `paper-conference`).
For an unpublished manuscript, use the biblatex entry type
`unpublished` without an `eventtitle` field (this entry type
will be mapped to CSL `manuscript`).
For a talk, an unpublished conference paper, or a poster
presentation, use the biblatex entry type `unpublished` with an
`eventtitle` field (this entry type will be mapped to CSL
`speech`). Use the biblatex `type` field to indicate the type,
e.g. "Paper", or "Poster". `venue` and `eventdate` may be useful
too, though `eventdate` will not be rendered by most CSL styles.
Note that `venue` is for the event's venue, unlike `location`
which describes the publisher's location; do not use the latter
for an unpublished conference paper.
## Specifying a citation style
Citations and references can be formatted using any style supported by the
[Citation Style Language], listed in the [Zotero Style Repository].
These files are specified using the `--csl` option or the `csl`
(or `citation-style`) metadata field. By default, pandoc will
use the [Chicago Manual of Style] author-date format. (You can
override this default by copying a CSL style of your choice
to `default.csl` in your user data directory.)
The CSL project provides further information on [finding and
editing styles].
The `--citation-abbreviations` option (or the
`citation-abbreviations` metadata field) may be used to
specify a JSON file containing abbreviations of journals
that should be used in formatted bibliographies when
`form="short"` is specified. The format of the file
can be illustrated with an example:
{ "default": {
"container-title": {
"Lloyd's Law Reports": "Lloyd's Rep",
"Estates Gazette": "EG",
"Scots Law Times": "SLT"
}
}
}
## Raw content in a style
To include raw content in a prefix, suffix, delimiter, or term,
surround it with these tags indicating the format:
{{jats}}&lt;ref&gt;{{/jats}}
Without the tags, the string will be interpreted as a string
and escaped in the output, rather than being passed through raw.
This feature allows stylesheets to be customized to give
different output for different output formats. However,
stylesheets customized in this way will not be useable
by other CSL implementations.
## Placement of the bibliography
If the style calls for a list of works cited, it will be placed
in a div with id `refs`, if one exists:
::: {#refs}
:::
Otherwise, it will be placed at the end of the document.
Generation of the bibliography can be suppressed by setting
`suppress-bibliography: true` in the YAML metadata.
If you wish the bibliography to have a section heading, you can
set `reference-section-title` in the metadata, or put the heading
at the beginning of the div with id `refs` (if you are using it)
or at the end of your document:
last paragraph...
# References
The bibliography will be inserted after this heading. Note that
the `unnumbered` class will be added to this heading, so that the
section will not be numbered.
## Including uncited items in the bibliography
If you want to include items in the bibliography without actually
citing them in the body text, you can define a dummy `nocite` metadata
field and put the citations there:
---
nocite: |
@item1, @item2
...
@item3
In this example, the document will contain a citation for `item3`
only, but the bibliography will contain entries for `item1`, `item2`, and
`item3`.
It is possible to create a bibliography with all the citations,
whether or not they appear in the document, by using a wildcard:
---
nocite: |
@*
...
For LaTeX output, you can also use [`natbib`] or [`biblatex`] to
render the bibliography. In order to do so, specify bibliography
files as outlined above, and add `--natbib` or `--biblatex`
argument to `pandoc` invocation. Bear in mind that bibliography
files have to be in either BibTeX (for `--natbib`)
or BibLaTeX (for `--biblatex`) format.
## Other relevant metadata fields
A few other metadata fields affect bibliography formatting:
`link-citation`
: If true, citations will be
hyperlinked to the corresponding bibliography entries
(for author-date and numerical styles only).
`lang`
: The `lang` field will affect how the style is localized,
for example in the translation of labels and the use
of quotation marks. (For backwards compatibility,
`locale` may be used instead of `lang`, but this use
is deprecated.)
`notes-after-punctuation`
: If true (the default), pandoc will put footnote citations
after following punctuation. For example, if the source
contains `blah blah [@jones99].`, the result will look like
`blah blah.[^1]`, with the note moved after the period and
the space collapsed. If false, the space will still be
collapsed, but the footnote will not be moved after the
punctuation.
# Slide shows
You can use pandoc to produce an HTML + JavaScript slide presentation
that can be viewed via a web browser. There are five ways to do this,
@ -5511,7 +5675,7 @@ Slide 1 has background_image.png as its background.
Slide 2 has a special image for its background, even though the heading has no content.
```
# Creating EPUBs with pandoc
# EPUBs
## EPUB Metadata
@ -5674,7 +5838,7 @@ with the `src` attribute. For example:
</source>
</audio>
# Creating Jupyter notebooks with pandoc
# Jupyter notebooks
When creating a [Jupyter notebook], pandoc will try to infer the
notebook structure. Code blocks with the class `code` will be

View file

@ -4,13 +4,9 @@ package pandoc
flags: +embed_data_files -trypandoc
ghc-options: -j +RTS -A64m -RTS
package pandoc-citeproc
flags: +embed_data_files +bibutils -unicode_collation -test_citeproc -debug
ghc-options: -j +RTS -A64m -RTS
source-repository-package
type: git
location: https://github.com/jgm/pandoc-citeproc
tag: 159bbb566858c0bc522e6404eb989671cd7236fd
location: https://github.com/jgm/citeproc
tag: e3695de4f34f33e32c6d3c33e8cdcf3fa96f6a5b
constraints: base16-bytestring < 1

View file

View file

@ -0,0 +1 @@
january|J\"anner|J\"an\adddot

View file

@ -0,0 +1,233 @@
bibliography|Bibliografia|Bibliografia
references|Refer\^encias|Refer\^encias
shorthands|Lista de abreviaturas|Abreviaturas
editor|editor|ed\adddot
editors|editores|ed\adddot
compiler|compilador|comp\adddot
compilers|compiladores|comp\adddot
redactor|redator|red\adddot
redactors|redatores|red\adddot
reviser|revisor|rev\adddot
revisers|revisores|rev\adddot
founder|fundador|fund\adddot
founders|fundadores|fund\adddot
continuator|continuador|cont\adddot
continuators|continuadores|cont\adddot
collaborator|colaborador|colab\adddot
collaborators|colaboradores|colab\adddot
translator|tradutor|trad\adddot
translators|tradutores|trad\adddot
commentator|coment\'ario|coment\adddot
commentators|coment\'ario|coment\adddot
annotator|notas|notas
annotators|notas|notas
commentary|coment\'ario|coment\adddot
annotations|notas|notas
foreword|pref\'acio|pref\adddot
afterword|posf\'acio|posf\adddot
organizer|organizador|org\adddot
organizers|organizadores|org\adddot
byauthor|por|por
byeditor|editado por|ed\adddotspace por
bycompiler|compilado por|comp\adddotspace por
byredactor|redigido por|red\adddotspace por
byreviser|revisado por|rev\adddotspace por
byreviewer|resenhado por|res\adddotspace por
byfounder|fundado por|fund\adddotspace por
bycontinuator|continuado por|cont\adddotspace por
bytranslator|traduzido \lbx@lfromlang\ por|trad\adddot\ \lbx@sfromlang\ por
bycommentator|comentado por|coment\adddot\ por
byannotator|anotado por|anot\adddot\ por
byorganizer|organizado por|org\adddotspace por
withcommentator|com coment\'ario de|com coment\adddot\ de
withannotator|com notas de|com notas de
withforeword|com pref\'acio de|com pref\adddot\ de
withafterword|com posf\'acio de|com posf\adddot\ de
and|e|e
andothers|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
andmore|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
volume|volume|vol\adddot
volumes|volumes|vol\adddot
involumes|em|em
jourvol|volume|v\adddot
jourser|s\'erie|s\'er\adddot
book|livro|livro
part|parte|parte
issue|n\'umero|n\'um\adddot
newseries|nova s\'erie|nova s\'er\adddot
oldseries|s\'erie antiga|s\'er\adddot\ antiga
reprint|reimpress\~ao|reimpr\adddot
reprintof|reimpress\~ao de|reimpr\adddotspace de
reprintas|reimpresso como|reimpr\adddotspace como
reprintfrom|reimpresso de|reimpr\adddotspace de
translationas|traduzido como|trad\adddotspace como
translationfrom|traduzido do|trad\adddotspace do
reviewof|resenha de|res\adddotspace de
origpubas|originalmente publicado como|orig\adddotspace pub\adddotspace como
origpubin|originalmente publicado em|orig\adddotspace pub\adddotspace em
astitle|como|como
bypublisher|por|por
nodate|sem\space data|s\adddot d\adddot
page|p\'agina|p\adddot
pages|p\'aginas|pp\adddot
column|coluna|col\adddot
columns|colunas|col\adddot
line|linha|l\adddot
lines|linhas|ll\adddot
verse|verso|v\adddot
verses|versos|vv\adddot
paragraph|par\'agrafo|par\adddot
paragraphs|par\'agrafos|par\adddot
pagetotal|p\'agina|p\adddot
pagetotals|p\'aginas|pp\adddot
columntotal|coluna|col\adddot
columntotals|colunas|col\adddot
linetotal|linha|l\adddot
linetotals|linhas|ll\adddot
versetotal|verso|v\adddot
versetotals|versos|vv\adddot
paragraphtotal|par\'agrafo|par\adddot
paragraphtotals|par\'agrafos|par\adddot
in|em|em
inseries|em|em
ofseries|de|de
number|n\'umero|n\adddot
chapter|cap\'\i tulo|cap\adddot
bathesis|trabalho de conclus\~ao|trab\adddotspace de conc\adddot
phdthesis|tese de doutorado|tese de dout\adddot
candthesis||
resreport|relat\'orio de pesquisa|rel\adddotspace de pesq\adddot
techreport|relat\'orio t\'ecnico|rel\adddotspace t\'ecn\adddot
software|software|software
datacd|CD-ROM|CD-ROM
audiocd|CD de \'audio|CD de \'audio
version|vers\~ao|vers\~ao
urlfrom|dispon\'ivel em|disp\adddotspace em
urlseen|acesso em|acesso em
submitted|submetido|submetido
inpress|no prelo|no prelo
prepublished|pr\'e-publicado|pr\'e-publicado
citedas|doravante citado como|doravante citado como
thiscite|especialmente|esp\adddot
seenote|ver nota|ver nota
quotedin|apud|apud
idem|idem|idem
idemsm|idem|idem
idemsf|eadem|eadem
idemsn|idem|idem
idempm|eidem|eidem
idempf|eaedem|eaedem
idempn|eadem|eadem
idempp|eidem|eidem
ibidem|ibidem|ibid\adddot
opcit|op\adddotspace cit\adddot|op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|cf\adddot|cf\adddot
sequens|sq\adddot|sq\adddot
sequentes|sqq\adddot|sqq\adddot
passim|passim|passim
see|ver|ver
seealso|ver tamb\'em|ver tamb\'em
backrefpage|ver p\'agina|ver p\adddot
backrefpages|ver p\'aginas|ver pp\adddot
january|janeiro|jan\adddot
february|fevereiro|fev\adddot
april|abril|abr\adddot
may|maio|mai\adddot
june|junho|jun\adddot
july|julho|jul\adddot
august|agosto|ago\adddot
september|setembro|set\adddot
october|outubro|out\adddot
november|novembro|nov\adddot
december|dezembro|dez\adddot
langamerican|ingl\^es|ingl\^es
langbulgarian|b\'ulgaro|b\'ulgaro
langcatalan|catal\~ao|catal\~ao
langcroatian|croata|croata
langczech|tcheco|tcheco
langdanish|dinamarqu\^es|dinamarqu\^es
langenglish|ingl\^es|ingl\^es
langfinnish|finland\^es|finland\^es
langestonian|estoniano|estoniano
langfrench|franc\^es|franc\^es
langgalician|galego|galego
langgerman|alem\~ao|alem\~ao
langgreek|grego|grego
langhungarian|h\'ungaro|h\'ungaro
langitalian|italiano|italiano
langjapanese|japon\^es|japon\^es
langlatin|latim|latim
langlatvian|let\~ao|let\~ao
langlithuanian|lituano|lituano
langnorwegian|noruegu\^es|noruegu\^es
langpolish|polon\^es|polon\^es
langrussian|russo|russo
langserbian|s\'ervio|s\'ervio
langslovak|eslovaco|eslovaco
langslovene|esloveno|esloveno
langspanish|espanhol|espanhol
langswedish|sueco|sueco
langturkish|turco|turco
langukrainian|ucraniano|ucraniano
fromamerican|do ingl\^es|do ingl\^es
frombulgarian|do b\'ulgaro|do b\'ulgaro
fromcatalan|do catal\~ao|do catal\~ao
fromcroatian|do croata|do croata
fromczech|do tcheco|do tcheco
fromdanish|do dinamarqu\^es|do dinamarqu\^es
fromenglish|do ingl\^es|do ingl\^es
fromestonian|do estoniano|do estoniano
fromfinnish|do finland\^es|do finland\^es
fromfrench|do franc\^es|do franc\^es
fromgalician|do galego|do galego
fromgerman|do alem\~ao|do alem\~ao
fromgreek|do grego|do grego
fromhungarian|do h\'ungaro|do h\'ungaro
fromitalian|do italiano|do italiano
fromjapanese|do japon\^es|do japon\^es
fromlatin|do latim|do latim
fromlatvian|do let\~ao|do let\~ao
fromlithuanian|do lituano|do lituano
fromnorwegian|do noruegu\^es|do noruegu\^es
frompolish|do polon\^es|do polon\^es
fromrussian|do russo|do russo
fromserbian|do s\'ervio|do s\'ervio
fromslovak|do eslovaco|do eslovaco
fromslovene|do esloveno|do esloveno
fromspanish|do espanhol|do espanhol
fromswedish|do sueco|do sueco
fromturkish|do turco|do turco
fromukrainian|do ucraniano|do ucraniano
countryde|Alemanha|DE
countryeu|Uni\~ao Europeia|EU
countryep|Uni\~ao Europeia|EP
countryuk|Reino Unido|GB
countryus|Estados Unidos|US
patent|patente|pat\adddot
patentde|patente alem\~a|pat\adddot\ alem\~a
patenteu|patente europeia|pat\adddot\ europeia
patentfr|patente francesa|pat\adddot\ francesa
patentuk|patente brit\^anica|pat\adddot\ brit\^anica
patentus|patente americana|pat\adddot\ americana
patreq|pedido de patente|ped\adddot\ de pat\adddot
patreqde|pedido de patente alem\~a|ped\adddot\ de pat\adddot\ alem\~a
patreqeu|pedido de patente europeia|ped\adddot\ de pat\adddot\ europeia
patreqfr|pedido de patente francesa|ped\adddot\ de pat\adddot\ francesa
patrequk|pedido de patente brit\^anica|ped\adddot\ de pat\adddot\ brit\^anica
patrequs|pedido de patente americana|ped\adddot\ de pat\adddot\ americana
file|arquivo|arquivo
library|biblioteca|biblioteca
abstract|resumo|resumo
annotation|notas|notas
commonera|Era Comum|EC
beforecommonera|antes da Era Comum|AEC
annodomini|depois de Cristo|d\adddot C\adddot
beforechrist|antes de Cristo|a\adddot C\adddot
circa|circa|ca\adddot
spring|primavera|primavera
summer|ver\~ao|ver\~ao
autumn|outono|outono
winter|inverno|inverno
am|AM|AM
pm|PM|PM

View file

@ -0,0 +1,3 @@
organizer|organiser|org\adddot
organizers|organisers|orgs\adddot
byorganizer|organised by|org\adddotspace by

View file

@ -0,0 +1,28 @@
bibliography|Библиография|Библиография
references|Литература|Литература
shorthands|Списък на съкращенията|Съкращения
editor|редактор|ред\adddot
editors|редактори|ред\adddot
compiler|съставител|съст\adddot
compilers|съставители|съст\adddot
redactor|редактор|ред\adddot
redactors|редактори|ред\adddot
reviser|коректор|кор\adddotspace кор\adddot
revisers|коректор|кор\adddotspace кор\adddot
founder|основател|осн\adddot
founders|основатели|осн\adddot
continuator|продължител|прод\adddot
continuators|продължител|прод\adddot
collaborator|участник|участ\adddot
collaborators|участници|участ\adddot
translator|преводач|прев\adddot
translators|преводачи|прев\adddot
commentator|коментатор|комент\adddot
commentators|коментатори|комент\adddot
annotator|бележки|бел\adddot
annotators|бележки|бел\adddot
commentary|комментар|комент\adddot
annotations|бележки|бел\adddot
introduction|уводна статия|ув\adddotspace ст\adddot
foreword|предговор|предг\adddot
afterword|послеслов|послесл\adddot

View file

@ -0,0 +1,158 @@
bibliography|Bibliografia|Bibliografia
references|Refer\`encies|Refer\`encies
shorthands|Llista d'abreviatures|Abreviatures
editor|editor|ed\adddot
editors|editors|ed\adddot
compiler|compilador|comp\adddot
compilers|compiladors|comp\adddot
redactor|redactor|red\adddot
redactors|redactors|red\adddot
reviser|revisor|rev\adddot
revisers|revisors|rev\adddot
founder|fundador|fund\adddot
founders|fundadors|fund\adddot
continuator|continuador|cont\adddot
continuators|continuadors|cont\adddot
collaborator|co\l.laborador|co\l.l\adddot
collaborators|co\l.laboradors|co\l.l\adddot
translator|traductor|trad\adddot
translators|traductors|trad\adddot
commentator|comentarista|com\adddot
commentators|comentaristes|com\adddot
annotator|anotador|anot\adddot
annotators|anotadors|anot\adddot
commentary|comentari|com\adddot
annotations|notes|n\adddot
introduction|introducci\'o|intr\adddot
foreword|pr\`oleg|pr\`ol\adddot
editortr|editor i traductor|ed\adddotspace i trad\adddot
editorstr|editors i traductors|ed\adddotspace i trad\adddot
editorco|editor i comentarista|ed\adddotspace i com\adddot
editorsco|editors i comentaristes|ed\adddotspace i com\adddot
editoran|editor i anotador|ed\adddotspace i anot\adddot
editorsan|editors i anotadors|ed\adddotspace i anot\adddot
organizer|organitzador|org\adddot
organizers|organitzadors|org\adddot
byorganizer|organitzat per|org\adddotspace per
byauthor|per|per
byeditor|edici\'o a cura \smartof|ed\adddotspace\smartof
bycompiler|compilaci\'o a cura \smartof|comp\adddotspace\smartof
byredactor|redacci\'o a cura \smartof|red\adddotspace\smartof
byreviser|revisi\'o a cura \smartof|rev\adddotspace\smartof
byreviewer|ressenya a cura \smartof|ress\adddotspace\smartof
byfounder|fundat per|fund\adddotspace per
bycontinuator|continuat per|cont\adddotspace per
bycollaborator|amb la co\l.laboraci\'o \smartof|amb la co\l.l\adddotspace\smartof
bytranslator|traducci\'o \lbx@fromlang\ a cura \smartof|trad\adddotspace\lbx@fromlang\ \smartof
bycommentator|comentari a cura \smartof|com\adddotspace\smartof
byannotator|notes a cura \smartof|n\adddotspace\smartof
withcommentator|amb un comentari a cura \smartof|amb un com\adddotspace\smartof
withannotator|amb notes a cura \smartof|amb n\adddotspace\smartof
withintroduction|amb una introducci\'o a cura \smartof|amb una intr\adddotspace\smartof
withforeword|amb un pr\`oleg a cura \smartof|amb un pr\`ol\adddotspace\smartof
and|i|i
andothers|et al\adddot|et al\adddot
andmore|i m\'es|i m\'es
volume|volum|vol\adddot
volumes|volums|vol\adddot
involumes|en|en
jourvol|volum|vol\adddot
jourser|s\`erie|s\`er\adddot
book|llibre|llib\adddot
part|part|part
issue|n\'umero|n\'um\adddot
newseries|s\`erie nova|s\`erie nova
oldseries|s\`erie antiga|s\`erie ant\adddot
edition|edici\'o|ed\adddot
reprint|reimpressi\'o|reimpr\adddot
reprintof|reimpressi\'o \smartof|reimpr\adddotspace\smartof
reprintas|reimpr\`es com|reimpr\adddotspace com
reprintfrom|reimpr\`es \smartof|reimpr\adddotspace\smartof
reviewof|ressenya \smartof|ress\adddotspace\smartof
translationof|traducci\'o \smartof|trad\adddotspace\smartof
origpubas|publicat origin\`ariament com|pub\adddotspace orig\adddotspace com
origpubin|publicat origin\`ariament el|pub\adddotspace orig\adddotspace el
astitle|com|com
bypublisher|per|per
page|p\`agina|p\`ag\adddot
pages|p\`agines|p\`ag\adddot
column|columna|col\adddot
columns|columnes|cols\adddot
nodate|sine data|s\adddotspace d\adddot
verse|vers|v\adddot
verses|versos|v\adddot
section|apartat|\S
sections|apartats|\S
paragraph|par\`agraf|\P
paragraphs|par\`agrafs|\P
pagetotal|p\`agina|p\`ag\adddot
pagetotals|p\`agines|p\`ag\adddot
columntotal|columna|col\adddot
columntotals|columnes|col\adddot
versetotal|vers|v\adddot
versetotals|versos|v\adddot
sectiontotal|secci\'o|\S
sectiontotals|seccions|\S
paragraphtotal|par\`agrafs|\P
paragraphtotals|par\`agrafs|\P
in|a|a
inseries|a|a
ofseries|\smartof|\smartof
number|n\'umero|n\'um\adddot
bathesis|treball final de grau|treb\adddotspace fin\adddotspace de gr\adddot
mathesis|treball final de m\`aster|treb\adddotspace fin\adddotspace de m\`ast\adddot
phdthesis|tesi doctoral|tesi doct\adddot
candthesis|tesi de candidatura|tesi de cand\adddot
resreport|informe de recerca|inf\adddotspace de rec\adddot
techreport|informe t\`ecnic|inf\adddotspace t\`ec\adddot
software|programari|prog\adddot
datacd|CD de dades|CD de dades
audiocd|CD d'\`audio|CD d'\`audio
version|versi\'o|vers\adddot
urlfrom|disponible a|disp\adddotspace a
urlseen|consultat|cons\adddot
inpreparation|en preparaci\'o|en prep\adddot
inpress|a impremta|a impr\adddot
prepublished|pre-publicat|pre-publicat
submitted|enviat a publicar|env\adddotspace a pub\adddot
forthcoming|properament|prop\adddot
citedas|d'ara endavant citat com|d'ara end\adddotspace cit\adddotspace com
thiscite|concretament|concr\adddot
seenote|vegeu la nota|v\adddotspace la n\adddot
quotedin|citat a|cit\adddotspace a
opcit|\`op\adddotspace cit\adddot|\`op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|cf\adddot|cf\adddot
sequens|seq\adddot|seq\adddot
sequentes|et seq\adddot|et seq\adddot
passim|p\`assim|p\`assim
see|vegeu|v\adddot
seealso|vegeu tamb\'e|v\adddotspace tamb\'e
backrefpage|vegeu la p\`agina|v\adddotspace la p\`ag\adddot
backrefpages|vegeu les p\`agines|v\adddotspace les p\`ag\adddot
january|gener|gen\adddot
february|febrer|febr\adddot
april|abril|abr\adddot
may|maig|maig
june|juny|juny
july|juliol|jul\adddot
august|agost|ag\adddot
september|setembre|set\adddot
october|octubre|oct\adddot
november|novembre|nov\adddot
december|desembre|des\adddot
langamerican|angl\`es americ\`a|ang\adddotspace amer\adddot
langbrazilian|portugu\`es brasiler|port\adddotspace bras\adddot
langbulgarian|b\'ulgar|b\'ulg\adddot
langcatalan|catal\`a|cat\adddot
langczech|txec|txec
langcroatian|croat|croat
langdanish|dan\`es|dan\adddot
langdutch|neerland\`es|neerl\adddot
langenglish|angl\`es|ang\adddot
langestonian|estoni\`a|eston\adddot
langfinnish|fin\`es|fin\adddot
langfrench|franc\`es|fr\adddot
langgalician|gallec|gal\adddot
langgerman|alemany|al\adddot
langgreek|grec|grec

View file

@ -0,0 +1,214 @@
bibliography|Bibliografija|Bibliografija
references|Literatura|Literatura
shorthands|Popis kratica|Kratice
editor|urednik|ur\adddot
editors|urednici|ur\adddot
redactor|redaktor|redaktor
redactors|redaktori|redaktori
reviser|korektor|korektor
revisers|korektori|korektori
collaborator|suradnik|sur\adddot
collaborators|suradnici|sur\adddot
translator|prijevod|prev\adddot
translators|prijevod|prev\adddot
commentator|komentator|komentator
commentators|komentatori|komentatori
commentary|komentar|komentar
introduction|uvod|uvod
foreword|predgovor|predgovor
afterword|pogovor|pogovor
editortr|prijevod i obrada|ur\adddotspace i prev\adddot
editorstr|prijevod i obrada|ur\adddotspace i prev\adddot
organizer|organizacija|organizacija
organizers|organizacija|organizacija
byorganizer|organizacija|organizacija
byauthor|autor|autor
byeditor|obrada|ur\adddot
byredactor|redaktura|red\adddot
byreviser|korektura|kor\adddot
byreviewer|recenzija|recenzija
bycontinuator|nastavio|nastavio
bycollaborator|u suradnji s|u sur\adddotspace s
bycommentator|komentari|komentari
withcommentator|komentari|komentari
withintroduction|uvod|uvod
withforeword|predgovor|predgovor
withafterword|pogovor|pogovor
and|i|i
andothers|i drugi|i dr\adddot
andmore|i drugi|i dr\adddot
volume|sv\adddot|sv\adddot
volumes|sv\adddot|sv\adddot
involumes|u|u
jourvol|sv\adddot|sv\adddot
jourser|serija|serija
book|knjiga|knj\adddot
part|dio|dio
issue|izd\adddot|izd\adddot
newseries|nova serija|nova serija
oldseries|stara serija|stara serija
edition|izdanje|izdanje
reprint|pretisak|pretisak
reprintof|pretisak|pretisak
reprintas|iznova otisnuto kao|iznova otisnuto kao
reprintfrom|iznova otisnut|iznova otisnut
translationof|prijevod|prijevod
translationas|prev\adddotspace kao|prev\adddotspace kao
translationfrom|prijevod|prijevod
reviewof|osvrt na|osvrt na
origpubas|izvorno obj\adddotspace kao|izv\adddotspace obj\adddotspace kao
origpubin|izvorno obj\adddot|izv\adddotspace obj\adddot
astitle|kao|kao
bypublisher||
nodate|bez datuma|bez datuma
page|stranica|str\adddot
pages|stranice|str\adddot
column|stupac|stupac
columns|stupci|stupci
line|linija|l\adddot
lines|linije|ll\adddot
verse|stih|stih
verses|stihovi|stihovi
section|odjeljak|\S
sections|odjeljci|\S\S
paragraph|stavak|st\adddot
paragraphs|stavci|st\adddot
pagetotal|str\adddot|str\adddot
pagetotals|str\adddot|str\adddot
columntotal|stupac|stupac
columntotals|stupaca|stupaca
linetotal|linija|lin\adddot
linetotals|linija|lin\adddot
versetotal|stih|st\adddot
versetotals|stihova|st\adddot
sectiontotal|odjeljak|odj\adddot
sectiontotals|odjeljaka|odj\adddot
paragraphtotal|stavak|st\adddot
paragraphtotals|stavaka|st\adddot
in||
inseries|u seriji|u seriji
ofseries|iz serije|iz serije
number|broj|br\adddot
chapter|poglavlje|pogl\adddot
bathesis|diplomski rad|dipl\adddotspace rad
mathesis|magistarski rad|mag\adddotspace rad
phdthesis|doktorska disertacija|disertacija
software|softver|softver
datacd|CD-ROM|CD-ROM
audiocd|audio CD|audio CD
version|verzija|verzija
url|adresa|adresa
urlfrom|dostupno na|dost\adddotspace na
urlseen|pogledano|pogledano
inpreparation|u pripremi|u pripremi
submitted|predan|predan
inpress|u tisku|u tisku
prepublished|pred objavom|pred obj\adddot
citedas|dalje citirano kao|dalje citirano kao
thiscite|napose|napose
quotedin|citirano u|citirano u
idem|idem|idem
idemsm|idem|idem
idemsf|eadem|eadem
idemsn|idem|idem
idempm|eidem|eidem
idempf|eaedem|eaedem
idempn|eadem|eadem
idempp|eidem|eidem
ibidem|ibidem|ibid\adddot
opcit|op\adddotspace cit\adddot|op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|usporedi|usp\adddot
sequens|sq\adddot|sq\adddot
sequentes|sqq\adddot|sqq\adddot
passim|passim|pass\adddot
see|vidi|v\adddot
seealso|pogledaj i|pogl\adddotspace i
backrefpage|citirano na stranci|cit\adddotspace na str\adddot
backrefpages|cited on pages|cit\adddotspace na str\adddot
april|travanj|travanj
may|svibanj|svibanj
june|lipanj|lipanj
july|srpanj|srpanj
august|kolovoz|kolovoz
september|rujan|rujan
october|listopad|listopad
november|studeni|studeni
december|prosinac|prosinac
dateapril|travnja|travnja
datemay|svibnja|svibnja
datejune|lipnja|lipnja
datejuly|srpnja|srpnja
dateaugust|kolovoza|kolovoza
dateseptember|rujna|rujna
dateoctober|listopada|listopada
datenovember|studenoga|studenoga
datedecember|prosinca|prosinca
langamerican|engleski|engleski
langbrazilian|portugalski|portugalski
langbulgarian|bugarski|bugarski
langcatalan|katalonski|katalonski
langcroatian|hrvatski|hrvatski
langdanish|danski|danski
langdutch|nizozemski|nizozemski
langenglish|engleski|engleski
langestonian|estonski|estonski
langfinnish|finski|finski
langfrench|francuski|francuski
langgalician|galicijski|galicijski
langhungarian|ma\dj arski|ma\dj arski
langitalian|talijanski|talijanski
langjapanese|japanski|japanski
langlatin|latinski|latinski
langlatvian|letonski|letonski
langpolish|poljski|poljski
langportuguese|portugalski|portugalski
langrussian|ruski|ruski
langslovene|slovenski|slovenski
langukrainian|ukrajinski|ukrajinski
fromamerican|s engleskog|s engleskog
frombrazilian|s portugalskog|s portugalskog
frombulgarian|s bugarskog|s bugarskog
fromcatalan|s katalonskog|s katalonskog
fromcroatian|s hrvatskog|s hrvatskog
fromdanish|s danskog|s danskog
fromdutch|s nizozemskog|s nizozemskog
fromenglish|s engleskog|s engleskog
fromestonian|s estonskog|s estonskog
fromfinnish|s finskog|s finskog
fromfrench|s francuskog|s francuskog
fromgalician|s galicijskog|s galicijskog
fromhungarian|s ma\dj arskog|s ma\dj arskog
fromitalian|s talijanskog|s talijanskog
fromjapanese|s japanskog|s japanskog
fromlatin|s latinskog|s latinskog
fromlatvian|s letonskog|s letonskog
frompolish|s poljskog|s poljskog
fromportuguese|s portugalskog|s portugalskog
fromrussian|s ruskog|s ruskog
fromslovene|sa slovenskog|sa slovenskog
fromukrainian|s ukrajinskog|s ukrajinskog
countryeu|Europska unija|EU
countryep|Europska unija|EP
countryfr|Francuska|FR
countryuk|Velika Britanija|GB
patent|patent|pat\adddot
patenteu|europski patent|europski pat\adddot
patentfr|francuski patent|francuski pat\adddot
patentuk|britanski patent|britanski pat\adddot
patentus|US patent|US pat\adddot
patreq|patentni zahtjev|pat\adddot\ zahtjev
patreqeu|europski patentni zahtjev|EU pat\adddotspace zahtjev
patrequs|US patentni zahtjev|US pat\adddot\ zahtjev
file|datoteka|datoteka
library|biblioteka|biblioteka
commonera|n\adddotspace e\adddot|n\adddotspace e\adddot
beforecommonera|pr\adddotspace n\adddotspace e\adddot|pr\adddotspace n\adddotspace e\adddot
annodomini|poslije Krista|p\adddotspace Kr\adddot
beforechrist|prije Krista|pr\adddotspace Kr\adddot
circa|oko|cca\adddot
summer|ljeto|ljeto
autumn|jesen|jesen
winter|zima|zima
am|prije podne|AM
pm|poslije podne|PM

View file

@ -0,0 +1,91 @@
bibliography|Bibliografie|Bibliografie
references|Odkazy|Odkazy
shorthands|Seznam zkratek|Zkratky
editor|editor|ed\adddot
compiler|sestavil|sest\adddot
compilers|sestavili|sest\adddot
redactor|redaktor|red\adddot
reviser|korektor|kor\adddot
founder|zakladatel|zakl\adddot
annotations|anotace|anot\adddot
afterword|doslov|dosl\adddot
byauthor||
bycompiler|sestaveno|sest\adddot
withannotator|s\addnbspace anotacemi od|s\addnbspace anot\adddot\ od
withafterword|s\addnbspace doslovem od|s\addnbspace dosl\adddot\ od
and|a|a
andothers|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
andmore|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
volume|svazek|sv\adddot
volumes|svazky|sv\adddot
involumes|in|in
book|kniha|kniha
reprint|dotisk|dotisk
reprintof|dotisk|dotisk
reprintas|dotisknuto jako|dotisknuto jako
reprintfrom|dotisknuto z\addnbspace|dotisknuto z\addnbspace
reviewof|recenze|recenz\adddot
astitle|jako|jako
bypublisher||
page|strana|s\adddot
pages|strany|s\adddot
column|sloupec|sl\adddot
columns|sloupce|sl\adddot
section|sekce|\S
sections|sekce|\S\S
paragraph|odstavec|ods\adddot
paragraphs|odstavce|ods\adddot
pagetotal|strana|s\adddot
pagetotals|strany|s\adddot
columntotal|sloupec|sl\adddot
columntotals|sloupce|sl\adddot
sectiontotal|sekce|\S
sectiontotals|sekce|\S\S
paragraphtotal|odstavec|ods\adddot
paragraphtotals|odstavce|ods\adddot
in|in|in
inseries|in|in
ofseries|z|z
chapter|kapitola|kap\adddot
datacd|CD-ROM|CD-ROM
audiocd|audio CD|audio CD
version|verze|ver\adddot
url|URL|URL
inpress|v\addnbspace tisku|v\addnbspace tisku
idem|idem|idem
idemsm|idem|idem
idemsf|eadem|eadem
idemsn|idem|idem
idempm|eidem|eidem
idempf|eaedem|eaedem
idempn|eadem|eadem
idempp|eidem|eidem
ibidem|ibidem|ibid\adddot
opcit|op\adddotspace cit\adddot|op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|cf\adddot|cf\adddot
sequens|sq\adddot|sq\adddot
sequentes|sqq\adddot|sqq\adddot
passim|passim|pass\adddot
see|viz|viz
january|leden|led\adddot
april|duben|dub\adddot
august|srpen|srp\adddot
november|listopad|lis\adddot
december|prosinec|pros\adddot
langlatin|latina|lat\adddot
fromlatin|z\addnbspace latiny|z\addnbspace lat\adddot
countryfr|Francie|FR
patent|patent|pat\adddot
patentus|US patent|US pat\adddot
file|soubor|soub\adddot
library|knihovna|knih\adddot
abstract|abstrakt|abst\adddot
annotation|anotace|anot\adddot
annodomini|po Kristu|po Kr\adddot
circa|cirka|ca\adddot
spring|jaro|jaro
autumn|podzim|podzim
winter|zima|zima
am|AM|AM
pm|PM|PM

View file

@ -0,0 +1,106 @@
bibliography|Bibliografi|Bibliografi
references|Litteraturhenvisninger|Litteratur
shorthands|Forkortelser|Forkortelser
editor|redakt\o r|red\adddot
editors|redakt\o rer|red\adddot
compiler|kompilator|kompilator
compilers|kompilatorer|kompilatorer
redactor|medredakt\o r|medred\adddot
redactors|medredakt\o rer|medred\adddot
reviser|revision|rev\adddot
revisers|revision|rev\adddot
founder|stifter|stifter
founders|stiftere|stiftere
continuator|videref\o rer|videref\adddot
continuators|videref\o rere|videref\adddot
collaborator|medarbejder|medarb\adddot
collaborators|medarbejdere|medarb\adddot
translator|overs\ae tter|overs\adddot
translators|overs\ae ttere|overs\adddot
commentator|kommentator|komm\adddot
commentators|kommentatorer|komm\adddot
annotator|kommentator|komm\adddot
annotators|kommentatorer|komm\adddot
commentary|kommentar|komm\adddot
annotations|annoteringer|ann\adddot
introduction|indledning|indl\adddot
foreword|forord|forord
afterword|efterord|efterord
organizer|organisator|org\adddot
organizers|organisatorer|org\adddot
byorganizer|organiseret af|org\adddotspace av
byauthor|af|af
byeditor|redigeret af|red\adddotspace af
bycompiler|kompileret af|komp\adddotspace af
byredactor|bearbejdet af|bearb\adddotspace af
byreviser|revideret af|rev\adddotspace af
byreviewer|bed\o mt af|bed\adddotspace af
byfounder|stiftet af|stiftet af
bycontinuator|videref\o rt af|videref\adddotspace af
bycollaborator|i samarbejde med|i samarb\adddotspace m\adddot
bycommentator|kommenteret af|komm\adddot\ af
byannotator|annoteret af|ann\adddot\ af
withcommentator|med kommentarer af|m\adddotspace komm\adddot\ af
withannotator|med annoteringer af|m\adddotspace ann\adddot\ af
withintroduction|med indledning af|m\adddotspace indl\adddot\ af
withforeword|med forord af|m\adddotspace forord af
withafterword|med efterord af|m\adddotspace efterord af
and|og|og
andothers|med flere|m.fl\adddot
andmore|med mere|m.m\adddot
volume|bind|bd\adddot
volumes|bind|bd\adddot
involumes|i|i
jourvol|\aa rgang|\aa rg\adddot
jourser|r\ae kke|rk\adddot
book|bog|bog
part|del|del
issue|nummer|nr\adddot
newseries|ny r\ae kke|ny rk\adddot
oldseries|gammel r\ae kke|gl. rk\adddot
edition|udgave|udg\adddot
reprint|genoptryk|genoptr\adddot
reprintof|genoptryk af|genoptr\adddot\ af
reprintas|genoptryk under titlen|genoptr\adddot\ under titlen
reprintfrom|genoptryk fra|genoptr\adddot\ fra
translationof|overs\ae ttelse af|overs\adddot\ af
translationas|oversat under titlen|overs\adddotspace\ under titlen
translationfrom|oversat fra|overs\adddotspace\ fra
reviewof|bed\o mmelse af|bed\adddotspace af
origpubas|oprindeligt udgivet som|opr\adddot\ udg\adddot\ som
origpubin|oprindeligt udgivet i|opr\adddot\ udg\adddot\ i
astitle|under titlen|under titlen
bypublisher|af|af
nodate|uden \aa rstal|u.\aa\adddot
page|side|s\adddot
pages|sider|s\adddot
column|spalte|sp\adddot
columns|spalter|sp\adddot
line|linje|l\adddot
lines|linjer|l\adddot
verse|vers|v\adddot
verses|vers|v\adddot
section|paragraf|par\adddot
sections|paragraffer|par\adddot
paragraph|afsnit|afsn\adddot
paragraphs|afsnit|afsn\adddot
pagetotal|side|s\adddot
pagetotals|sider|s\adddot
columntotal|spalte|sp\adddot
columntotals|spalter|sp\adddot
line|linje|l\adddot
lines|linjer|l\adddot
verse|vers|v\adddot
verses|vers|v\adddot
linetotal|linje|l\adddot
linetotals|linje|l\adddot
versetotal|vers|v\adddot
versetotals|vers|v\adddot
sectiontotal|paragraf|par\adddot
sectiontotals|paragraffer|par\adddot
paragraphtotal|afsnit|afsn\adddot
paragraphtotals|afsnit|afsn\adddot
in|i|i
inseries|i r\ae kken|i rk\adddot
ofseries|fra r\ae kken|fra rk\adddot
number|nummer|nr\adddot

View file

@ -0,0 +1,23 @@
bibliography|Bibliografie|Bibliografie
references|Referenties|Referenties
shorthands|Lijst van afkortingen|Afkortingen
editor|redacteur|red\adddot
editors|redacteurs|red\adddot
compiler|samensteller|samenst\adddot
compilers|samenstellers|samenst\adddot
founder|oprichter|opr\adddot
founders|oprichters|opr\adddot
continuator|opvolger|opv\adddot
continuators|opvolgers|opv\adddot
redactor|redacteur|red\adddot
redactors|redacteuren|red\adddot
reviser|revisor|rev\adddot
revisers|revisors|rev\adddot
collaborator|medewerker|med\adddot
collaborators|medewerkers|med\adddot
translator|vertaler|vert\adddot
translators|vertalers|vert\adddot
commentator|commentator|comm\adddot
commentators|commentatoren|comm\adddot
annotator|annotator|annot\adddot
annotators|annotatoren|annot\adddot

View file

@ -0,0 +1,254 @@
bibliography|Bibliography|Bibliography
references|References|References
shorthands|List of Abbreviations|Abbreviations
editor|editor|ed\adddot
editors|editors|eds\adddot
compiler|compiler|comp\adddot
compilers|compilers|comp\adddot
redactor|redactor|red\adddot
redactors|redactors|red\adddot
reviser|reviser|rev\adddot
revisers|revisers|rev\adddot
founder|founder|found\adddot
founders|founders|found\adddot
continuator|continued|cont\adddot
continuators|continued|cont\adddot
collaborator|collaborator|collab\adddot
collaborators|collaborators|collab\adddot
translator|translator|trans\adddot
translators|translators|trans\adddot
commentator|commentator|comm\adddot
commentators|commentators|comm\adddot
annotator|annotator|annot\adddot
annotators|annotators|annot\adddot
commentary|commentary|comm\adddot
annotations|annotations|annot\adddot
introduction|introduction|intro\adddot
foreword|foreword|forew\adddot
afterword|afterword|afterw\adddot
organizer|organizer|org\adddot
organizers|organizers|orgs\adddot
byorganizer|organized by|org\adddotspace by
byauthor|by|by
byeditor|edited by|ed\adddotspace by
bycompiler|compiled by|comp\adddotspace by
byredactor|redacted by|red\adddotspace by
byreviser|revised by|rev\adddotspace by
byreviewer|reviewed by|rev\adddotspace by
byfounder|founded by|found\adddotspace by
bycontinuator|continued by|cont\adddotspace by
bycollaborator|in collaboration with|in collab\adddotspace with
bytranslator|translated \lbx@lfromlang\ by|trans\adddot\ \lbx@sfromlang\ by
bycommentator|commented by|comm\adddot\ by
byannotator|annotated by|annot\adddot\ by
withcommentator|with a commentary by|with a comment\adddot\ by
withannotator|with annotations by|with annots\adddot\ by
withintroduction|with an introduction by|with an intro\adddot\ by
withforeword|with a foreword by|with a forew\adddot\ by
withafterword|with an afterword by|with an afterw\adddot\ by
and|and|and
andothers|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
andmore|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
volume|volume|vol\adddot
volumes|volumes|vols\adddot
involumes|in|in
jourvol|volume|vol\adddot
jourser|series|ser\adddot
book|book|book
part|part|part
issue|issue|issue
newseries|new series|new ser\adddot
oldseries|old series|old ser\adddot
edition|edition|ed\adddot
reprint|reprint|repr\adddot
reprintof|reprint of|repr\adddotspace of
reprintas|reprinted as|rpt\adddotspace as
reprintfrom|reprinted from|repr\adddotspace from
reviewof|review of|rev\adddotspace of
translationof|translation of|trans\adddotspace of
translationas|translated as|trans\adddotspace as
translationfrom|translated from|trans\adddotspace from
origpubas|originally published as|orig\adddotspace pub\adddotspace as
origpubin|originally published in|orig\adddotspace pub\adddotspace in
astitle|as|as
bypublisher|by|by
nodate|no date|n\adddot d\adddot
page|page|p\adddot
pages|pages|pp\adddot
column|column|col\adddot
columns|columns|cols\adddot
line|line|l\adddot
lines|lines|ll\adddot
verse|verse|v\adddot
verses|verses|vv\adddot
section|section|\S
sections|sections|\S\S
paragraph|paragraph|par\adddot
paragraphs|paragraphs|par\adddot
pagetotal|page|p\adddot
pagetotals|pages|pp\adddot
columntotal|column|col\adddot
columntotals|columns|cols\adddot
linetotal|line|l\adddot
linetotals|lines|ll\adddot
versetotal|verse|v\adddot
versetotals|verses|vv\adddot
sectiontotal|section|\S
sectiontotals|sections|\S\S
paragraphtotal|paragraph|par\adddot
paragraphtotals|paragraphs|par\adddot
in|in|in
inseries|in|in
ofseries|of|of
number|number|no\adddot
chapter|chapter|chap\adddot
bathesis|Bachelor's thesis|BA\addabbrvspace thesis
mathesis|Master's thesis|MA\addabbrvspace thesis
phdthesis|PhD\addabbrvspace thesis|PhD\addabbrvspace thesis
candthesis|Candidate thesis|Cand\adddotspace thesis
resreport|research report|research rep\adddot
techreport|technical report|tech\adddotspace rep\adddot
software|computer software|comp\adddotspace software
datacd|CD-ROM|CD-ROM
audiocd|audio CD|audio CD
version|version|version
url|address|address
urlfrom|available from|available from
urlseen|visited on|visited on
inpreparation|in preparation|in preparation
submitted|submitted|submitted
forthcoming|forthcoming|forthcoming
inpress|in press|in press
prepublished|pre-published|pre-published
citedas|henceforth cited as|henceforth cited as
thiscite|especially|esp\adddot
seenote|see note|see n\adddot
quotedin|quoted in|qtd\adddotspace in
idem|idem|idem
idemsm|idem|idem
idemsf|eadem|eadem
idemsn|idem|idem
idempm|eidem|eidem
idempf|eaedem|eaedem
idempn|eadem|eadem
idempp|eidem|eidem
ibidem|ibidem|ibid\adddot
opcit|op\adddotspace cit\adddot|op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|cf\adddot|cf\adddot
sequens|sq\adddot|sq\adddot
sequentes|sqq\adddot|sqq\adddot
passim|passim|pass\adddot
see|see|see
seealso|see also|see also
backrefpage|cited on page|cit\adddotspace on p\adddot
backrefpages|cited on pages|cit\adddotspace on pp\adddot
january|January|Jan\adddot
february|February|Feb\adddot
march|March|Mar\adddot
april|April|Apr\adddot
may|May|May
june|June|June
july|July|July
august|August|Aug\adddot
september|September|Sept\adddot
october|October|Oct\adddot
november|November|Nov\adddot
december|December|Dec\adddot
langamerican|American|American
langbrazilian|Brazilian|Brazilian
langbulgarian|Bulgarian|Bulgarian
langcatalan|Catalan|Catalan
langcroatian|Croatian|Croatian
langczech|Czech|Czech
langdanish|Danish|Danish
langdutch|Dutch|Dutch
langenglish|English|English
langestonian|Estonian|Estonian
langfinnish|Finnish|Finnish
langfrench|French|French
langgalician|Galician|Galician
langgerman|German|German
langgreek|Greek|Greek
langhungarian|Hungarian|Hungarian
langitalian|Italian|Italian
langjapanese|Japanese|Japanese
langlatin|Latin|Latin
langlatvian|Latvian|Latvian
langlithuanian|Lithuanian|Lithuanian
langnorwegian|Norwegian|Norwegian
langpolish|Polish|Polish
langportuguese|Portuguese|Portuguese
langrussian|Russian|Russian
langserbian|Serbian|Serbian
langslovak|Slovak|Slovak
langslovene|Slovene|Slovene
langspanish|Spanish|Spanish
langswedish|Swedish|Swedish
langturkish|Turkish|Turkish
langukrainian|Ukrainian|Ukrainian
fromamerican|from the American|from the American
frombrazilian|from the Brazilian|from the Brazilian
frombulgarian|from the Bulgarian|from the Bulgarian
fromcatalan|from the Catalan|from the Catalan
fromcroatian|from the Croatian|from the Croatian
fromczech|from the Czech|from the Czech
fromdanish|from the Danish|from the Danish
fromdutch|from the Dutch|from the Dutch
fromenglish|from the English|from the English
fromestonian|from the Estonian|from the Estonian
fromfinnish|from the Finnish|from the Finnish
fromfrench|from the French|from the French
fromgalician|from the Galician|from the Galician
fromgerman|from the German|from the German
fromgreek|from the Greek|from the Greek
fromhungarian|from the Hungarian|from the Hungarian
fromitalian|from the Italian|from the Italian
fromjapanese|from the Japanese|from the Japanese
fromlatin|from the Latin|from the Latin
fromlatvian|from the Latvian|from the Latvian
fromlithuanian|from the Lithuanian|from the Lithuanian
fromnorwegian|from the Norwegian|from the Norwegian
frompolish|from the Polish|from the Polish
fromportuguese|from the Portuguese|from the Portuguese
fromrussian|from the Russian|from the Russian
fromserbian|from the Serbian|from the Serbian
fromslovak|from the Slovak|from the Slovak
fromslovene|from the Slovene|from the Slovene
fromspanish|from the Spanish|from the Spanish
fromswedish|from the Swedish|from the Swedish
fromturkish|from the Turkish|from the Turkish
fromukrainian|from the Ukrainian|from the Ukrainian
countryde|Germany|DE
countryeu|European Union|EU
countryep|European Union|EP
countryfr|France|FR
countryuk|United Kingdom|GB
countryus|United States of America|US
patent|patent|pat\adddot
patentde|German patent|German pat\adddot
patenteu|European patent|European pat\adddot
patentfr|French patent|French pat\adddot
patentuk|British patent|British pat\adddot
patentus|U.S\adddotspace patent|U.S\adddotspace pat\adddot
patreq|patent request|pat\adddot\ req\adddot
patreqde|German patent request|German pat\adddot\ req\adddot
patreqeu|European patent request|European pat\adddot\ req\adddot
patreqfr|French patent request|French pat\adddot\ req\adddot
patrequk|British patent request|British pat\adddot\ req\adddot
patrequs|U.S\adddotspace patent request|U.S\adddotspace pat\adddot\ req\adddot
file|file|file
library|library|library
abstract|abstract|abstract
annotation|annotations|annotations
commonera|Common Era|CE
beforecommonera|Before Common Era|BCE
annodomini|Anno Domini|AD
beforechrist|Before Christ|BC
circa|circa|ca\adddot
spring|Spring|Spr\adddot
summer|Summer|Sum\adddot
autumn|Autumn|Aut\adddot
winter|Winter|Win\adddot
am|AM|AM
pm|PM|PM

View file

@ -0,0 +1,178 @@
bibliography|bibliograafia|bibliograafia
references|viited|viited
editor|toimetaja|toim\adddot
editors|toimetajad|toim\adddot
compiler|koostaja|koost\adddot
compilers|koostajad|koost\adddot
redactor|toimetaja|toim\adddot
redactors|toimetajad|toim\adddot
reviser|toimetaja|toim\adddot
revisers|toimetajad|toim\adddot
founder|asutaja|asutaja
founders|asutajad|asutajad
commentator|kommenteerija|kommenteerija
commentators|kommenteerijad|kommenteerijad
annotator|kommenteerija|kommenteerija
annotators|kommenteerijad|kommenteerijad
commentary|kommentaarid|kommentaarid
annotations|kommentaarid|kommentaarid
introduction|sissejuhatus|sissejuhatus
organizer|korraldaja|korraldaja
organizers|korraldajad|korraldajad
byorganizer|korraldanud|korraldanud
byauthor|kirjutanud|kirj\adddot
byeditor|toimetanud|toim\adddot
bycompiler|koostanud|koost\adddot
byredactor|toimetanud|toim\adddot
byreviewer|vaadanud|vaadanud
byfounder|asutanud|asutanud
bycommentator|kommenteerinud|kommenteerinud
byannotator|kommenteerinud|kommenteerinud
withcommentator|koos kommentaaridega|koos kommentaaridega
withannotator|koos kommentaaridega|koos kommentaaridega
withintroduction|koos tutvustusega|koos tutvustusega
and|ja|ja
involumes|osas|osas
jourser|seeria|seeria
book|raamat|raamat
part|osa|osa
issue|number|nr\adddot
newseries|uus seerias|uus seer\adddot
oldseries|vana seeria|vana seer\adddot
reviewof|arvustus teosest|arvustus teosest
origpubas|algselt avaldatud kui|algselt avaldatud kui
origpubin|algselt avaldatud aastal|algselt avaldatud aastal
astitle|pealkirjaga|pealkirjaga
column|veerg|veerg
columns|veerud|veerud
line|rida|rida
lines|read|read
verse|salm|salm
verses|salmid|salmid
section|jagu|jagu
sections|jaod|jaod
columntotal|veerge kokku|veerge kokku
columntotals|veergusid kokku|veergusid kokku
linetotal|ridu kokku|ridu kokku
linetotals|ridasid kokku|ridasid kokku
versetotal|salmi kokku|salmi kokku
versetotals|salmesid kokku|salmesid kokku
sectiontotal|jagusid kokku|jagusid kokku
sectiontotals|jagusid kokku|jagusid kokku
in|teoses|teoses
inseries|sarjas|sarjas
ofseries|sarjast|sarjast
number|number|nr
resreport|uuringuraport|uuringuraport
techreport|tehniline raport|tehniline raport
software|tarkvara|tarkvara
datacd|CD-ROM|CD-ROM
audiocd|audioplaat|audioplaat
version|versioon|versioon
url|aadress|aadress
urlfrom|saadaval|saadaval
urlseen|vaadatud|vaadatud
inpreparation|koostamisel|koostamisel
submitted|esitatud|esitatud
forthcoming|tulevases|tulevases
citedas|edaspidi viidatud kui|edaspidi viidatud kui
thiscite|eriti|eriti
quotedin|noteeritud|noteeritud
see|vaata|vt
seealso|vaata ka|vt ka
backrefpage|viidatud lehel|viidatud lehel
january|jaanuar|jaanuar
february|veebruar|veebruar
april|aprill|aprill
may|mai|mai
june|juuni|juuni
july|juuli|juuli
august|august|august
september|september|september
october|oktoober|oktoober
november|november|november
december|detsember|detsember
langamerican|Ameerika inglise keel|Ameerika inglise keel
langbrazilian|brasiilia keel|brasiilia keel
langbulgarian|bulgaaria keel|bulgaaria keel
langcatalan|katalaani keel|katalaani keel
langcroatian|horvaadi keel|horvaadi keel
langdanish|taani keel|taani keel
langdutch|hollandi keel|hollandi keel
langenglish|inglise keel|inglise keel
langestonian|eesti keel|eesti keel
langfinnish|soome keel|soome keel
langfrench|prantsuse keel|prantsuse keel
langgalician|galeegi keel|galeegi keel
langgerman|saksa keel|saksa keel
langgreek|kreeka keel|kreeka keel
langhungarian|ungari keel|ungari keel
langitalian|itaalia keel|itaalia keel
langjapanese|jaapani keel|jaapani keel
langlatin|ladina keel|ladina keel
langnorwegian|norra keel|norra keel
langpolish|poola keel|poola keel
langportuguese|portugali keel|portugali keel
langrussian|vene keel|vene keel
langslovak|slovakia keel|slovakia keel
langslovene|sloveeni keel|sloveeni keel
langspanish|hispaania keel|hispaania keel
langswedish|rootsi keel|rootsi keel
langukrainian|ukraina keel|ukraina keel
fromamerican|Ameerika inglise keelest|Ameerika inglise keelest
frombrazilian|brasiilia keelest|brasiilia keelest
frombulgarian|bulgaaria keelest|bulgaaria keelest
fromcatalan|katalani keelest|kalatalani keelest
fromcroatian|horvaadi keelest|horvaadi keelest
fromdanish|taani keelest|taani keelest
fromdutch|hollandi keelest|hollandi keelest
fromenglish|inglise keelest|inglise keelest
fromestonian|eesti keelest|eesti keelest
fromfinnish|soome keelest|soome keelest
fromfrench|prantsuse keelest|prantsuse keelest
fromgalician|galeegi keelest|galeegi keelest
fromgerman|saksa keelest|saksa keelest
fromgreek|kreeka keelest|kreeka keelest
fromhungarian|ungari keelest|ungari keelest
fromitalian|itaalia keelest|itaalia keelest
fromjapanese|jaapani keelest|jaapani keelest
fromlatin|ladina keelest|ladina keelest
fromnorwegian|norra keelest|norra keelest
fromportuguese|portugali keelest|portugali keelest
fromrussian|vene keelest|vene keelest
fromslovak|slovakia keelest|slovakia keelest
fromslovene|sloveenia keelest|sloveenia keelest
fromspanish|hispaania keelest|hispaania keelest
fromswedish|rootsi keelest|rootsi keelest
fromukrainian|ukraina keelest|ukraina keelest
countryde|Saksamaa|DE
countryeu|Euroopa Liit|EL
countryep|Euroopa Parlament|EP
countryfr|Prantsusmaa|FR
countryuk|Suurbritannia|GB
countryus|Ameerika|US
patent|patent|pat\adddot
patentde|Saksa patent|Saksa pat\adddot
patenteu|Euroopa patent|Euroopa pat\adddot
patentfr|Prantsuse patent|Prantsuse pat\adddot
patentuk|Briti patent|Briti pat\adddot
patentus|U.S\adddotspace patent|U.S\adddotspace pat\adddot
patreq|patendi taotlus|pat\adddotspace taotl\adddot
patreqde|Saksa patendi taotlus|Saksa pat\adddotspace taotl\adddot
patreqeu|Euroopa patendi taotlus|Euroopa pat\adddotspace taotl\adddot
patreqfr|Prantsuse patendi taotlus|Prantsuse pat\adddotspace taotl\adddot
patrequk|Briti patendi taotlus|Briti pat\adddotspace taotl\adddot
patrequs|U.S\adddotspace patendi taotlus.|U.S\adddotspace pat\adddotspace taotl\adddot
file|fail|fail
library|raamatukogu|raamatukogu
abstract|teesid|teesid
annotation|kommentaarid|kommentaarid
commonera|meie ajaarvamise j\"argi|m\adddot a\adddot j
beforecommonera|enne meie ajaarvamist|e\adddot m\adddot a
annodomini|p\"arast Kristust|pKr
beforechrist|enne Kristust|eKr
spring|kevadel|kevadel
summer|suvel|suvel
winter|talvel|talvel
am|AM|AM
pm|PM|PM

View file

@ -0,0 +1,254 @@
bibliography|Kirjallisuusluettelo|Kirjallisuus
references|Viitteet|Viitteet
shorthands|Lyhenteet|Lyhenteet
editor|toimittanut|toim\adddot
editors|toimittaneet|toim\adddot
compiler|koontanut|koontanut
compilers|koontaneet|koontaneet
redactor|toimittanut|toim\adddot
redactors|toimittaneet|toim\adddot
reviser|toimittanut|toim\adddot
revisers|toimittaneet|toim\adddot
founder|perustaja|perustaja
founders|perustajat|perustajat
continuator|jatkaja|jatkaja
continuators|jatkajat|jatkajat
collaborator|avustaja|avustaja
collaborators|avustajat|avustajat
translator|k\"a\"ant\"anyt|k\"a\"ant\adddot
translators|k\"a\"ant\"anyt|k\"a\"ant\adddot
commentator|kommentaarin kirjoittanut|kommentaarin kirjoittanut
commentators|kommentaarin kirjoittaneet|kommentaarin kirjoittaneet
annotator|selityksin varustanut|selityksin varustanut
annotators|selityksin varustaneet|selityksin varustaneet
commentary|kommentaari|kommentaari
annotations|selitykset|selitykset
introduction|johdanto|johdanto
foreword|esipuhe|esipuhe
afterword|j\"alkisanat|j\"alkisanat
organizer|toimittanut|toim\adddot
organizers|toimittaneet|toim\adddot
byorganizer|toimittanut|toim\adddot
byauthor|kirjoittanut|kirj\adddot
byeditor|toimittanut|toim\adddot
bycompiler|koontanut|koontanut
byredactor|toimittanut|toim\adddot
byreviser|toimittanut|toim\adddot
byreviewer|toimittanut|toim\adddot
byfounder|perustanut|perustanut
bycontinuator|jatkanut|jatkanut
bycollaborator|yhteisty\"oss\"a|yhteisty\"oss\"a
bytranslator|\lbx@lfromlang k\"a\"ant\"anyt|\lbx@sfromlang k\"a\"ant\adddot
bycommentator|kommentaarin kirjoittanut|kommentaarin kirjoittanut
byannotator|selityksin varustanut|selityksin varustanut
withcommentator|kommentaarin kirjoittanut|kommentaarin kirjoittanut
withannotator|selityksin varustanut|selityksin varustanut
withintroduction|johdannon kirjottanut|johdannon kirjottanut
withforeword|esipuheen kirjoittanut|esipuheen kirjoittanut
withafterword|j\"alkisanat kirjoittanut|j\"alkisanat kirjoittanut
and|ja|ja
andothers|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
andmore|jne\adddot|jne\adddot
volume|volyymi|vol\adddot
volumes|volyymit|vol\adddot
involumes||
jourvol|volyymi|vol\adddot
jourser|sarja|sarja
book|kirja|kirja
part|osa|osa
issue|numero|numero
newseries|uusi sarja|uusi sarja
oldseries|vanha sarja|vanha sarja
edition|painos|painos
reprint|j\"alkipainos|j\"alkipainos
reprintof|julkaistu aiemmin nimell\"a|julkaistu aiemmin nimell\"a
reprintas|julkaistu uudelleen nimell\"a|julkaistu uudelleen nimell\"a
reprintfrom|julkaistu aiemmin nimell\"a|julkaistu aiemmin nimell\"a
translationof|k\"a\"ann\"os teoksesta|k\"a\"ann\"os teoksesta
translationas|k\"a\"annetty nimell\"a|k\"a\"annetty nimell\"a
translationfrom|k\"a\"annetty kielest\"a|k\"a\"annetty kielest\"a
reviewof|arvostelu teoksesta|arvostelu teoksesta
origpubas|julkaistu ensi kerran nimell\"a|julkaistu ensi kerran nimell\"a
origpubin|julkaistu ensi kerran vuonna|julkaistu ensi kerran vuonna
astitle|nimell\"a|nimell\"a
bypublisher|julkaissut|julkaissut
page|sivu|s\adddot
pages|sivut|s\adddot
column|palsta|palsta
columns|palstat|palstat
line|rivi|rivi
lines|rivit|rivit
nodate|ei julkaisup\"aiv\"a\"a|ei julkaisup\"aiv\"a\"a
verse|s\"ae|s\"ae
verses|s\"akeet|s\"akeet
section|kohta|kohta
sections|kohdat|kohdat
paragraph|kappale|kappale
paragraphs|kappaleet|kappaleet
pagetotal|sivu|s\adddot
pagetotals|sivut|s\adddot
columntotal|palsta|palsta
columntotals|palstat|palstat
linetotal|rivi|rivi
linetotals|rivit|rivit
versetotal|s\"ae|s\"ae
versetotals|s\"akeet|s\"akeet
sectiontotal|kohta|kohta
sectiontotals|kohdat|kohdat
paragraphtotal|kappale|kappale
paragraphtotals|kappaleet|kappaleet
in|teoksessa|teoksessa
inseries|sarjassa|sarjassa
ofseries|sarjassa|sarjassa
number|numero|nro
chapter|luku|luku
bathesis|tutkielma|tutkielma
mathesis|tutkielma|tutkielma
phdthesis|tohtorinv\"ait\"oskirja|tohtorinv\"ait\"oskirja
candthesis|kanditaatintutkielma|kanditaatintutkielma
resreport|tutkimusraportti|tutkimusraportti
techreport|tekninen raportti|tekninen raportti
software|ohjelmisto|ohjelmisto
datacd|data-CD|data-CD
audiocd|\"a\"ani-CD|\"a\"ani-CD
version|versio|versio
url|url|url
urlfrom|saatavilla osoitteesta|saatavilla osoitteesta
urlseen|viitattu|viitattu
inpreparation|valmisteilla|valmisteilla
submitted|l\"ahetetty|l\"ahetetty
forthcoming|hyv\"aksytty julkaistavaksi|hyv\"aksytty julkaistavaksi
inpress|painossa|painossa
prepublished|esijulkaistu|esijulkaistu
citedas|jatkossa|jatkossa
thiscite|sama|sama
seenote|katso viite|katso viite
quotedin|lainattu teoksessa|lainattu teoksessa
idem|idem|id\adddot
idemsf|idem|id\adddot
idemsm|idem|id\adddot
idemsn|idem|id\adddot
idempf|idem|id\adddot
idempm|idem|id\adddot
idempn|idem|id\adddot
idempp|idem|id\adddot
ibidem|ibidem|ibid\adddot
opcit|op\adddotspace cit\adddot|op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|cf\adddot|cf\adddot
sequens|sq\adddot|sq\adddot
sequentes|sqq\adddot|sqq\adddot
passim|passim|pass\adddot
see|katso|ks\adddot
seealso|katso my\"os|katso my\"os
backrefpage|katso sivu|ks\adddotspace s\adddot
backrefpages|katso sivut|ks\adddotspace s\adddot
january|tammikuuta|tammikuuta
february|helmikuuta|helmikuuta
march|maaliskuuta|maaliskuuta
april|huhtikuuta|huhtikuuta
may|toukokuuta|toukokuuta
june|kes\"akuuta|kes\"akuuta
july|hein\"akuuta|hein\"akuuta
august|elokuuta|elokuuta
september|syyskuuta|syyskuuta
october|lokakuuta|lokakuuta
november|marraskuuta|marraskuuta
december|joulukuuta|joulukuuta
basicjanuary|tammikuu|tammikuu
basicfebruary|helmikuu|helmikuu
basicmarch|maaliskuu|maaliskuu
basicapril|huhtikuu|huhtikuu
basicmay|toukokuu|toukokuu
basicjune|kes\"akuu|kes\"akuu
basicjuly|hein\"akuu|hein\"akuu
basicaugust|elokuu|elokuu
basicseptember|syyskuu|syyskuu
basicoctober|lokakuu|lokakuu
basicnovember|marraskuu|marraskuu
basicdecember|joulukuu|joulukuu
langamerican|amerikanenglanti|amerikanenglanti
langbrazilian|brasilianportugali|brasilianportugali
langbulgarian|bulgaria|bulgaria
langcatalan|katalonia|katalonia
langcroatian|kroatia|kroatia
langdanish|tanska|tanska
langdutch|hollanti|hollanti
langenglish|englanti|englanti
langestonian|viro|viro
langfinnish|suomi|suomi
langfrench|ranska|ranska
langgalician|galicia|galicia
langgerman|saksa|saksa
langgreek|kreikka|kreikka
langhungarian|unkari|unkari
langitalian|italia|italia
langlatin|latina|latina
langlatvian|latvia|latvia
langnorwegian|norja|norja
langpolish|puola|puola
langportuguese|portugali|portugali
langrussian|ven\"aj\"a|ven\"aj\"a
langslovak|slovakia|slovakia
langslovene|slovenia|slovenia
langspanish|espanja|espanja
langswedish|ruotsi|ruotsi
fromamerican|englannin kielest\"a|englannin kielest\"a
frombrazilian|portugalin kielest\"a|portugalin kielest\"a
frombulgarian|bulgarian kielest\"a|bulgarian kielest\"a
fromcatalan|katalonian kielest\"a|katalonian kielest\"a
fromcroatian|kroatian kielest\"a|kroatian kielest\"a
fromdanish|tanskan kielest\"a|tanskan kielest\"a
fromdutch|hollannin kielest\"a|hollannin kielest\"a
fromenglish|englannin kielest\"a|englannin kielest\"a
fromestonian|viron kielest\"a|viron kielest\"a
fromfinnish|suomen kielest\"a|suomen kielest\"a
fromfrench|ranskan kielest\"a|ranskan kielest\"a
fromgalician|galician kielest\"a|galician kielest\"a
fromgerman|saksan kielest\"a|saksan kielest\"a
fromgreek|kreikan kielest\"a|kreikan kielest\"a
fromhungarian|unkarin kielest\"a|unkarin kielest\"a
fromitalian|italian kielest\"a|italian kielest\"a
fromlatin|latinan kielest\"a|latinan kielest\"a
fromlatvian|latvian kielest\"a|latvian kielest\"a
fromnorwegian|norjan kielest\"a|norjan kielest\"a
frompolish|puolan kielest\"a|puolan kielest\"a
fromportuguese|portugalin kielest\"a|portugalin kielest\"a
fromrussian|ven\"aj\"an kielest\"a|ven\"aj\"an kielest\"a
fromslovak|slovakian kielest\"a|slovakian kielest\"a
fromslovene|slovenian kielest\"a|slovenian kielest\"a
fromspanish|espanjan kielest\"a|espanjan kielest\"a
fromswedish|ruotsin kielest\"a|ruotsin kielest\"a
countryde|Saksa|DE
countryeu|Euroopan Unioni|EU
countryep|Euroopan Unioni|EP
countryfr|Ranska|FR
countryuk|Iso-Britannia|GB
countryus|Yhdysvallat|US
patent|patentti|pat\adddot
patentde|saksalainen patentti|saksalainen pat\adddot
patenteu|Euroopan Unionin patentti|Euroopan Unionin pat\adddot
patentfr|ranskalainen patentti|ranskalainen pat\adddot
patentuk|isobritannialainen patentti|isobritannialainen pat\adddot
patentus|yhdysvaltalainen patentti|yhdysvaltalainen pat\adddot
patreq|patenttihakemus|pat\adddot\ hak\adddot
patreqde|saksalainen patenttihakemus|saksalainen pat\adddot\ hak\adddot
patreqeu|Euroopan Unionin patenttihakemus|Euroopan Unionin pat\adddot\ hak\adddot
patreqfr|ranskalainen patenttihakemus|ranskalainen pat\adddot\ hak\adddot
patrequk|isobritannialainen patenttihakemus|isobritannialainen pat\adddot\ hak\adddot
patrequs|yhdysvaltalainen patenttihakemus|yhdysvaltalainen pat\adddot\ hak\adddot
file|tiedosto|tiedosto
library|kirjasto|kirjasto
abstract|tiivistelm\"a|tiivistelm\"a
annotation|selitykset|selitykset
commonera|j\"alkeen ajanlaskun alun|jaa\adddot
beforecommonera|ennen ajanlaskun alkua|eaa\adddot
annodomini|j\"alkeen Kristuksen syntym\"an|jKr\adddot
beforechrist|ennen Kristuksen syntym\"a\"a|eKr\adddot
circa|noin|n\adddot
spring|kev\"at|kev\"at
summer|kes\"a|kes\"a
autumn|syksy|syksy
winter|talvi|talvi
am|ap\adddot|ip\adddot
pm|ip\adddot|ip\adddot

View file

@ -0,0 +1,245 @@
bibliography|Bibliographie|Bibliographie
references|R\'ef\'erences|R\'ef\'erences
shorthands|Liste des abr\'eviations|Abr\'eviations
editor|\'editeur|\'ed\adddot
editors|\'editeurs|\'ed\adddot
compiler|compilateur|comp\adddot
compilers|compilateurs|comp\adddot
redactor|r\'edacteur|r\'ed\adddot
redactors|r\'edacteurs|r\'ed\adddot
reviser|r\'eviseur|r\'ev\adddot
revisers|r\'eviseurs|r\'ev\adddot
founder|fondateur|fond\adddot
founders|fondateurs|fond\adddot
continuator|continuateur|cont\adddot
continuators|continuateurs|cont\adddot
collaborator|collaborateur|coll\adddot
collaborators|collaborateurs|coll\adddot
translator|traducteur|trad\adddot
translators|traducteurs|trad\adddot
commentator|commentateur|comm\adddot
commentators|commentateurs|comm\adddot
annotator|annotateur|annot\adddot
annotators|annotateurs|annot\adddot
commentary|commentaires|comment\adddot
annotations|annotations|annot\adddot
introduction|introduction|introd\adddot
foreword|pr\'eface|pr\'ef\adddot
afterword|postface|postf\adddot
editortr|\'editeur et traducteur|\'ed\adddotspace et trad\adddot
editorstr|\'editeurs et traducteurs|\'ed\adddotspace et trad\adddot
organizer|organisateur|org\adddot
organizers|organisateurs|org\adddot
byorganizer|organis\'e par|org\adddotspace par
byauthor|par|par
byeditor|sous la direction \smartof|sous la dir\adddotspace\smartof
bycompiler|compil\'e par|comp\adddotspace par
byredactor|r\'edig\'e par|r\'ed\adddotspace par
byreviser|r\'evis\'e par|r\'ev\adddotspace par
byreviewer|examin\'e par|ex\adddotspace par
byfounder|d\'ecouvert par|d\'ecouv\adddotspace par
bycontinuator|continu\'e par|cont\adddotspace par
bytranslator|traduit \lbx@lfromlang\ par|trad\adddotspace \lbx@sfromlang\ par
bycommentator|comment\'e par|comm\adddotspace par
byannotator|annot\'e par|annot\adddotspace par
withcommentator|avec des commentaires \smartof|avec des comment\adddotspace\smartof
withannotator|avec des annotations \smartof|avec des annot\adddotspace\smartof
withintroduction|avec une introduction \smartof|avec une introd\adddotspace\smartof
withforeword|avec une pr\'eface \smartof|avec une pr\'ef\adddotspace\smartof
withafterword|avec une postface \smartof|avec une postf\adddotspace\smartof
and|et|et
andothers|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
andmore|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
volume|tome|t\adddot
volumes|tomes|t\adddot
involumes|en|en
jourvol|tome|t\adddot
jourser|s\'erie|s\'er\adddot
book|livre|livre
part|partie|partie
issue|\'edition|\'ed\adddot
newseries|nouvelle s\'erie|nouv\adddotspace s\'er\adddot
oldseries|ancienne s\'erie|anc\adddotspace s\'er\adddot
edition|\'edition|\'ed\adddot
reprint|r\'eimpression|r\'eimpr\adddot
reprintof|r\'eimpression de|r\'eimpr\adddotspace de
reprintas|r\'eimpression sous le titre|r\'eimpr\adddotspace sous le titre
reprintfrom|r\'eimpression \`a partir \smartof|r\'eimpr\adddotspace \`a part\adddotspace\smartof
translationof|traduction de|trad\adddotspace de
translationas|traduit sous le titre|trad\adddotspace sous le titre
translationfrom|traduit de|trad\adddotspace de
reviewof|critique de|crit.\adddotspace de
origpubas|publi\'e \`a l'origine sous le titre|pub\adddotspace \`a l'orig\adddotspace sous le titre
origpubin|publi\'e \`a l'origine en|pub\adddotspace \`a l'orig\adddotspace en
astitle|sous le titre|sous le titre
bypublisher|par|par
page|page|p\adddot
pages|pages|p\adddot
column|colonne|col\adddot
columns|colonnes|col\adddot
line|ligne|l\adddot
lines|lignes|l\adddot
verse|vers|v\adddot
verses|vers|v\adddot
section|section|sect\adddot
sections|sections|sect\adddot
paragraph|paragraphe|\S
paragraphs|paragraphes|\S
pagetotal|page|p\adddot
pagetotals|pages|p\adddot
columntotal|colonne|col\adddot
columntotals|colonnes|col\adddot
linetotal|ligne|l\adddot
linetotals|lignes|l\adddot
versetotal|vers|v\adddot
versetotals|vers|v\adddot
sectiontotal|section|sect\adddot
sectiontotals|sections|sect\adddot
paragraphtotal|paragraphe|\S
paragraphtotals|paragraphes|\S
in|in|in
inseries|in|in
ofseries|de|de
number|num\'ero|n\textsuperscript{o
chapter|chapitre|chap\adddot
bathesis|m\'emoire de bachelor|m\'em\adddotspace de bach\adddot
mathesis|m\'emoire de master|m\'em\adddotspace de mast\adddot
phdthesis|th\`ese de doctorat|th\`ese de doct\adddot
candthesis|th\`ese de candidature|th\`ese de cand\adddot
resreport|rapport scientifique|rapp\adddotspace scient\adddot
techreport|rapport technique|rapp\adddotspace tech\adddot
software|logiciel|logiciel
datacd|c\'ed\'erom|c\'ed\'erom
audiocd|disque compact audio|CD
version|version|version
url|adresse|adresse
urlfrom|disponible \`a l'adresse|disp\adddotspace \`a l'adr\adddot
urlseen|visit\'e le|visit\'e le
inpreparation|en pr\'eparation|en pr\'ep\adddot
submitted|soumis|soumis
inpress|sous presse|sous presse
prepublished|pr\'epubli\'e|pr\'epubl\adddot
citedas|d\'esign\'e ci-apr\`es par|ci-apr\`es
thiscite|sp\'ecialement|sp\'ec\adddot
seenote|voir note|cf\adddotspace note
quotedin|cit\'e dans|cit\'e dans
idem|idem|idem
idemsm|idem|idem
idemsf|eadem|eadem
idemsn|idem|idem
idempm|eidem|eidem
idempf|eaedem|eaedem
idempn|eadem|eadem
idempp|eidem|eidem
ibidem|ibidem|ibid\adddot
opcit|op\adddotspace cit\adddot|op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|cf\adddot|cf\adddot
sequens|sq\adddot|sq\adddot
sequentes|sqq\adddot|sqq\adddot
passim|passim|pass\adddot
see|cf\adddot|cf\adddot
seealso|cf\adddotspace aussi|cf\adddotspace aussi
backrefpage|cf\adddotspace page|cf\adddotspace p\adddot
backrefpages|cf\adddotspace pages|cf\adddotspace p\adddot
january|janvier|jan\adddot
february|f\'evrier|f\'ev\adddot
march|mars|mars
april|avril|avr\adddot
may|mai|mai
june|juin|juin
july|juillet|juill\adddot
august|ao\^ut|ao\^ut
september|septembre|sept\adddot
october|octobre|oct\adddot
november|novembre|nov\adddot
december|d\'ecembre|d\'ec\adddot
langamerican|am\'ericain|am\'ericain
langbrazilian|br\'esilien|br\'esilien
langbulgarian|bulgare|bulgare
langcatalan|catalan|catalan
langcroatian|croate|croate
langczech|tch\`eque|tch\`eque
langdanish|danois|danois
langdutch|n\'eerlandais|n\'eerlandais
langenglish|anglais|anglais
langestonian|estonien|estonien
langfinnish|finnois|finnois
langgalician|galicien|galicien
langgerman|allemand|allemand
langgreek|grec|grec
langhungarian|hongrois|hongrois
langitalian|italien|italien
langjapanese|japonais|japonais
langlatin|latin|latin
langlatvian|letton|letton
langnorwegian|norv\'egien|norv\'egien
langpolish|polonais|polonais
langportuguese|portugais|portugais
langrussian|russe|russe
langserbian|serbe|serbe
langslovak|slovaque|slovaque
langslovene|slov\`ene|slov\`ene
langspanish|espagnol|espagnol
langswedish|su\'edois|su\'edois
langukrainian|ukrainien|ukrainien
fromamerican|de l'am\'ericain|de l'am\'ericain
frombrazilian|du br\'esilien|du br\'esilien
frombulgarian|du bulgare|du bulgare
fromcatalan|du catalan|du catalan
fromcroatian|du croate|du croate
fromczech|du tch\`eque|du tch\`eque
fromdanish|du danois|du danois
fromdutch|du n\'eerlandais|du n\'eerlandais
fromenglish|de l'anglais|de l'anglais
fromestonian|de l'estonien|de l'estonien
fromfinnish|du finnois|du finnois
fromgalician|du galicien|du galicien
fromgerman|de l'allemand|de l'allemand
fromgreek|du grec|du grec
fromhungarian|du hongrois|du hongrois
fromitalian|de l'italien|de l'italien
fromjapanese|du japonais|du japonais
fromlatin|du latin|du latin
fromlatvian|du letton|du letton
fromnorwegian|du norv\'egien|du norv\'egien
frompolish|du polonais|du polonais
fromportuguese|du portugais|du portugais
fromrussian|du russe|du russe
fromserbian|du serbe|du serbe
fromslovak|du slovaque|du slovaque
fromslovene|du slov\`ene|du slov\`ene
fromspanish|de l'espagnol|de l'espagnol
fromswedish|du su\'edois|du su\'edois
fromukrainian|de l'ukrainien|de l'ukrainien
countryde|Allemagne|DE
countryeu|Union europ\'eenne|EU
countryep|Union europ\'eenne|EP
countryfr|France|FR
countryuk|Royaume-Uni|GB
countryus|\'Etats-Unis|US
patent|brevet|brev\adddot
patentde|brevet allemand|brev\adddotspace allem\adddot
patenteu|brevet europ\'een|brev\adddotspace europ\adddot
patentuk|brevet britannique|brev\adddotspace brit\adddot
patentus|brevet am\'ericain|brev\adddotspace am\'er\adddot
patreq|demande de brevet|demande de brev\adddot
patreqde|demande de brevet allemand|demande de brev\adddotspace allem\adddot
patreqeu|demande de brevet europ\'een|demande de brev\adddotspace europ\adddot
patrequk|demande de brevet britannique|demande de brev\adddotspace brit\adddot
patrequs|demande de brevet am\'ericain|demande de brev\adddotspace am\'er\adddot
file|fichier|fichier
library|biblioth\`eque|biblioth\adddot
abstract|r\'esum\'e|r\'es\adddot
annotation|annotations|annotations
commonera|de l'\`ere commune|EC
beforecommonera|avant l'\`ere commune|AEC
annodomini|apr\`es J\'esus-Christ|apr\adddotspace J\adddot-C\adddot
beforechrist|avant J\'esus-Christ|av\adddotspace J\adddot-C\adddot
circa|vers|vers
spring|printemps|printemps
summer|\'et\'e|\'et\'e
autumn|automne|automne
winter|hiver|hiver
am|AM|AM
pm|PM|PM

View file

@ -0,0 +1,28 @@
bibliography|Bibliograf\'ia|Bibliograf\'ia
references|Referencias|Referencias
shorthands|Lista de abreviaturas|Abreviaturas
editor|editor|ed\adddot
editors|editores|eds\adddot
compiler|compilador|comp\adddot
compilers|compiladores|comp\adddot
redactor|redactor|red\adddot
redactors|redactores|red\adddot
reviser|revisor|rev\adddot
revisers|revisores|revs\adddot
founder|fundador|fund\adddot
founders|fundadores|fund\adddot
continuator|continuador|cont\adddot
continuators|continuadores|cont\adddot
collaborator|colaborador|col\adddot
collaborators|colaboradores|cols\adddot
translator|tradutor|trad\adddot
translators|tradutores|trads\adddot
commentator|comentador|coment\adddot
commentators|comentadores|coments\adddot
annotator|anotador|anot\adddot
annotators|anotadores|anots\adddot
commentary|comentario|coment\adddot
annotations|notas|notas
introduction|introduci\'on|introd\adddot
foreword|prefacio|pref\adddot
afterword|posfacio|posf\adddot

View file

@ -0,0 +1,28 @@
bibliography|Literaturverzeichnis|Literatur
references|Literaturverzeichnis|Literatur
shorthands|Sigelverzeichnis|Sigel
editor|Herausgeber|Hrsg\adddot
editors|Herausgeber|Hrsg\adddot
compiler|Kompilator|Komp\adddot
compilers|Kompilatoren|Komp\adddot
redactor|Bearbeiter|Bearb\adddot
redactors|Bearbeiter|Bearb\adddot
reviser|\"Uberarbeiter|\"Uberarb\adddot
revisers|\"Uberarbeiter|\"Uberarb\adddot
founder|Begr\"under|Begr\adddot
founders|Begr\"under|Begr\adddot
continuator|Fortf\"uhrer|Fortf\adddot
continuators|Fortf\"uhrer|Fortf\adddot
collaborator|Mitarbeiter|Mitarb\adddot
collaborators|Mitarbeiter|Mitarb\adddot
translator|\"Ubersetzer|\"Ubers\adddot
translators|\"Ubersetzer|\"Ubers\adddot
commentator|Kommentator|Komm\adddot
commentators|Kommentatoren|Komm\adddot
annotator|Kommentator|Komm\adddot
annotators|Kommentatoren|Komm\adddot
commentary|Kommentar|Komm\adddot
annotations|Erl\"auterungen|Erl\"aut\adddot
introduction|Einleitung|Einl\adddot
foreword|Vorwort|Vorw\adddot
afterword|Nachwort|Nachw\adddot

View file

@ -0,0 +1,9 @@
bibliography|Βιβλιογραφία|Βιβλιογραφία
references|Αναφορές|Αναφορές
shorthands|Κατάλογος συντμήσεων|Συντμήσεις
editor|επιμελητής|επιμελητής
editors|επιμελητές|επιμελητές
compiler|συντάκτης|συντάκτης
compilers|συντάκτες|συντάκτες
redactor|συντάκτης|συντάκτης
redactors|συντάκτες|συντάκτες

View file

@ -0,0 +1,7 @@
bibliography|Heimildaskr\'a|Heimildaskr\'a
references|Heimildir|Heimildir
shorthands|Listi yfir skammstafanir|Skammstafanir
editor|ristj\'ori|ritstj\adddot
editors|ritstj\'orar|ritstj\adddot
compiler|samantekt|samantekt
compilers|samantekt|samantekt

View file

@ -0,0 +1,9 @@
bibliography|Bibliografia|Bibliografia
references|Riferimenti bibliografici|Riferimenti bibliografici
shorthands|Elenco delle sigle|Sigle
editor|curatore|cur\adddot
editors|curatori|cur\adddot
compiler|compilatore|comp\adddot
compilers|compilatori|comp\adddot
redactor|redattore|red\adddot
redactors|redattori|red\adddot

View file

@ -0,0 +1,75 @@
redactor|redaktors|redakt\adddot
redactors|redaktori|radakt\adddot
reviser|revidents|revid\adddot
revisers|revidenti|revid\adddot
introduction|ievads|ievads
byeditor|izdevis|izdevis
bytranslator|tulkojis|tulk\adddot
withintroduction|ar ievadu no|ar ievadu no
byeditortr|izdevis un tulkojis|izdev\adddotspace un tulk\adddot
and|un|un
andothers|un citi|u\adddotspace c\adddot
jourvol|izdevums|izdev\adddot
issue|izdevums|izdev\adddot
edition|izdevums|izdev\adddot
translationof|tulkojums no|tulk\adddotspace no
translationfrom|tulkots no|tulk\adddotspace no
reviewof|recenzija|recenz\adddot
bypublisher|no|no
nodate|bez datuma|bez dat\adddot
page|lappuse|lpp\adddot
pages|lappuses|lpp\adddot
column|sleja|sleja
columns|slejas|slejas
line|rinda|rinda
lines|rindas|rindas
verse|pants|pants
verses|panti|panti
paragraph|rindkopa|rindk\adddot
paragraphs|rindkopas|rindk\adddot
pagetotal|lappuse|lpp\adddot
pagetotals|lappuses|lpp\adddot
columntotal|sleja|sleja
columntotals|slejas|slejas
linetotal|rinda|rinda
linetotals|rindas|rindas
versetotal|pants|pants
versetotals|panti|panti
paragraphtotal|rindkopa|rindk\adddot
paragraphtotals|rindkopas|rindk\adddot
in||
number|numurs|nr\adddot
datacd|datu CD|datu CD
audiocd|audio CD|audio CD
version|versija|versija
url|pieejams|pieejams
urlfrom|pieejams no|pieejams no
inpreparation|tiek gatavots|tiek gatavots
submitted|iesniegts|iesniegts
march|marts|marts
may|maijs|maijs
august|augusts|aug\adddot
september|septembris|sept\adddot
october|oktobris|okt\adddot
november|novembris|nov\adddot
december|decembris|dec\adddot
langfinnish|somu|somu
langrussian|krievu|krievu
langswedish|zviedru|zviedru
fromfinnish|no somu|no somu
fromrussian|no krievu|no krievu
fromswedish|no zviedru|no zviedru
countryep|Eiropas Parlaments|EP
countryfr|Francija|FR
patent|patents|patents
patenteu|Eiropas patents|Eiropas pat\adddot
patentus|ASV patents|ASV pat\adddot
file|fails|fails
circa|ap|ap
spring|pavasaris|pav\adddot
summer|vasara|vas\adddot
autumn|rudens|rud\adddot
winter|ziema|ziema
am|AM|AM
pm|PM|PM
dateyear|gada|g\adddot

View file

@ -0,0 +1,31 @@
bibliography|Bibliografija|Bibliografija
references|Literatūros sąrašas|Literatūra
shorthands|Santrumpų sąrašas|Santrumpos
editor|sudarytojas|sud\adddot
editors|sudarytojai|sud\adddot
compiler|parengėjas|pareng\adddot
compilers|parengėjai|pareng\adddot
redactor|redaktorius|red\adddot
redactors|redaktoriai|red\adddot
reviser|korektorius|kor\adddot
revisers|korektoriai|kor\adddot
founder|pradininkas|prad\adddot
founders|pradininkai|prad\adddot
continuator|tęsėjas|tęs\adddot
continuators|tęsėjai|tęs\adddot
collaborator|bendradarbis|bendr\adddot
collaborators|bendradarbiai|bendr\adddot
translator|vertėjas|vert\adddot
translators|vertėjai|vert\adddot
commentator|komentarų autorius|koment\adddotspace aut\adddot
commentators|komentarų autoriai|koment\adddotspace aut\adddot
annotator|paaiškinimų autorius|paaišk\adddotspace aut\adddot
annotators|paaiškinimų autoriai|paaišk\adddotspace aut\adddot
commentary|komentarai|koment\adddot
annotations|paaiškinimai|paaišk\adddot
introduction|įvadas|įv\adddot
foreword|pratarmė|prat\adddot
afterword|pabaigos žodis|pab\adddotspace žodis
organizer|organizatorius|org\adddot
organizers|organizatoriai|org\adddot
byorganizer|organizavo|org\adddot

View file

@ -0,0 +1,29 @@
bibliography|Irodalomjegyz\'ek|Irodalom
references|Hivatkoz\'asok|Hivatkoz\'asok
shorthands|R\"ovid\'it\'esek jegyz\'eke|R\"ovid\'it\'esek
compiler|\"ossze\'all\'it\'o|\"ossze\'all\adddot
compilers|\"ossze\'all\'it\'ok|\"ossze\'all\adddot
reviser|korrektor|korr\adddot
revisers|korrektorok|korr\adddot
founder|alap\'it\'o|alap\adddot
founders|alap\'it\'ok|alap\adddot
%continuator||
%continuators||
translator|ford\'it\'o|ford\adddot
translators|ford\'it\'ok|ford\adddot
commentator|komment\'ator|komm\adddot
commentators|komment\'atorok|komm\adddot
annotator|jegyzetek \'ir\'oja|jegyz\adddot
annotators|jegyzetek \'ir\'oi|jegyz\adddot
commentary|komment\'ar|komm\adddot
annotations|jegyzetek|jegyz\adddot
introduction|bevezet\'es|bev\adddot
afterword|ut\'osz\'o|ut\'osz\'o
byorganizer|szervezte|szerv\adddot
byauthor|\'irta|\'irta
byeditor|szerkesztette|szerk\adddot
bycompiler|\"ossze\'all\'itotta|\"ossze\'all\adddot
byredactor|sajt\'o al\'a rendezte|kiad\adddot
byreviser|jav\'itotta|jav\adddot
byreviewer|b\'ir\'alta|b\'ir\adddot
byfounder|alap\'itotta|alap\adddot

View file

@ -0,0 +1,2 @@
citedas|im Folgenden zitiert als|im Folgenden zit\adddotspace als
january|J\"anner|J\"an\adddot

View file

@ -0,0 +1 @@
citedas|im Folgenden zitiert als|im Folgenden zit\adddotspace als

View file

@ -0,0 +1,98 @@
bibliography|Bibliografi|Bibliografi
references|Referanser|Referanser
shorthands|Forkortelser|Forkortelser
compiler|kompilator|komp\adddot
compilers|kompilatorer|komp\adddot
redactor|bearbeidelse|bearb\adddot
redactors|bearbeidelse|bearb\adddot
reviser|revisjon|rev\adddot
revisers|revisjon|rev\adddot
founder|grunnlegger|grunnl\adddot
founders|grunnleggere|grunnl\adddot
collaborator|samarbeid|samarb\adddot
collaborators|samarbeid|samarb\adddot
translator|oversetter|overs\adddot
translators|oversettere|overs\adddot
commentator|kommentarer|komm\adddot
commentators|kommentarer|komm\adddot
annotator|forklaringer|forkl\adddot
annotators|forklaringer|forkl\adddot
commentary|kommentarer|komm\adddot
annotations|forklaringer|forkl\adddot
introduction|innledning|innl\adddot
foreword|forord|forord
afterword|etterord|etterord
organizer|organisator|org\adddot
organizers|organisatorer|org\adddot
byorganizer|organisert av|org\adddotspace av
byauthor|av|av
byeditor|redigert av|red\adddotspace av
bycompiler|kompilert av|komp\adddotspace av
byredactor|bearbeidet av|bearb\adddotspace av
byreviser|revidert av|rev\adddotspace av
byreviewer|kritikk ved|krit\adddotspace ved
byfounder|grunnlagt av|grunnl\adddotspace av
bycollaborator|i samarbeid med|i samarb\adddotspace med
bytranslator|oversatt \lbx@lfromlang\ av|overs\adddot\ \lbx@sfromlang\ av
bycommentator|kommentert av|komm\adddot\ av
byannotator|forklart av|forkl\adddot\ av
withcommentator|med kommentarer av|med komm\adddot\ av
withannotator|med forklaringer av|med forkl\adddot\ av
withintroduction|med innledning av|med innl\adddot\ av
withforeword|med forord av|med forord av
withafterword|med etterord av|med etterord av
and|og|og
andothers|med flere|mfl\adddot
andmore|med mer|m.m\adddot
volume|bind|bd\adddot
volumes|bind|bd\adddot
involumes|i|i
jourser|serie|ser\adddot
book|bok|bok
part|del|del
issue|nummer|nr\adddot
newseries|ny serie|ny ser\adddot
oldseries|gammel serie|gl\adddotspace ser\adddot
edition|utgave|utg\adddot
reprint|opptrykk|opptr\adddot
reprintof|opptrykk av|opptr\adddotspace av
reprintas|trykt om som|tr\adddotspace om som
reprintfrom|opptrykk fra|opptr\adddotspace fra
translationof|oversettelse av|overs\adddotspace av
translationas|oversatt som|overs\adddotspace som
translationfrom|oversatt fra|overs\adddotspace fra
reviewof|kritikk av|krit\adddotspace av
origpubas|opprinnelig utgitt som|oppr\adddot\ utg\adddot\ som
origpubin|opprinnelig utgitt i|oppr\adddot\ utg\adddot\ i
astitle|som|som
bypublisher|av|av
nodate|udatert|udatert
page|side|s\adddot
pages|sider|s\adddot
column|spalte|sp\adddot
columns|spalter|sp\adddot
line|linje|l\adddot
lines|linjer|l\adddot
verse|vers|v\adddot
verses|vers|v\adddot
section|avsnitt|avsn\adddot
sections|avsnitt|avsn\adddot
paragraph|avsnitt|avsn\adddot
paragraphs|avsnitt|avsn\adddot
pagetotal|side|s\adddot
pagetotals|sider|s\adddot
columntotal|spalte|sp\adddot
columntotals|spalter|sp\adddot
linetotal|linje|l\adddot
linetotals|linjer|l\adddot
versetotal|vers|v\adddot
versetotals|vers|v\adddot
sectiontotal|avsnitt|avsn\adddot
sectiontotals|avsnitt|avsn\adddot
paragraphtotal|avsnitt|avsn\adddot
paragraphtotals|avsnitt|avsn\adddot
in|i|i
inseries|i|i
ofseries|av|av
number|nummer|nr\adddot
chapter|kapittel|kap\adddot

View file

@ -0,0 +1,2 @@
citedas|im Folgenden zitiert als|im Folgenden zit\adddotspace als
countryuk|Grossbritannien|GB

View file

@ -0,0 +1,28 @@
references|Referansar|Referansar
shorthands|Forkortingar|Forkortingar
compilers|kompilatorar|komp\adddot
redactor|omarbeiding|omarb\adddot
redactors|omarbeiding|omarb\adddot
founder|grunnleggjar|grunnl\adddot
founders|grunnleggjarar|grunnl\adddot
translator|omsetjar|oms\adddot
translators|omsetjarar|oms\adddot
commentator|kommentarar|komm\adddot
commentators|kommentarar|komm\adddot
annotator|forklaringar|forkl\adddot
annotators|forklaringar|forkl\adddot
commentary|kommentarar|komm\adddot
annotations|forklaringar|forkl\adddot
introduction|innleiing|innl\adddot
organizers|organisatorar|org\adddot
byredactor|omarbeidd av|omarb\adddotspace av
withcommentator|med kommentarar av|med komm\adddot\ av
withannotator|med forklaringar av|med forkl\adddot\ av
withintroduction|med innleiing av|med innl\adddot\ av
andothers|med fleire|mfl\adddot
andmore|med meir|m.m\adddot
oldseries|gamal serie|gl\adddotspace ser\adddot
translationof|omsetjing av|oms\adddotspace av
translationas|omsett som|oms\adddotspace som
origpubas|opphavleg utgitt som|opph\adddot\ utg\adddot\ som
origpubin|opphavleg utgitt i|opph\adddot\ utg\adddot\ i

View file

@ -0,0 +1,100 @@
bibliography|Bibliografia|Bibliografia
references|Bibliografia|Bibliografia
editor|redaktor|red\adddot
editors|redaktorzy|red\adddot
compiler|redaktor|red\adddot
compilers|redaktorzy|red\adddot
redactor|redaktor|red\adddot
redactors|redaktorzy|red\adddot
reviser|korektor|kor\adddot
revisers|korektorzy|kor\adddot
collaborator|uczestnik|ucz\adddot
collaborators|uczestnicy|ucz\adddot
translator|t\l umacz|t\l um\adddot
translators|t\l umacze|t\l um\adddot
commentator|komentator|kom\adddot
commentators|komentatorzy|kom\adddot
annotator|uwaga|uw\adddot
annotators|uwagi|uw\adddot
commentary|komentarz|kom\adddot
annotations|komentarze|kom\adddot
foreword|przedmowa|przedm\adddot
afterword|pos\l owie|pos\l \adddot
editortr|redaktor i t\l umacz|red\adddotspace i per\adddot
editorstr|redaktorzy i t\l umacze|red\adddotspace i per\adddot
editorco|redaktor i komentator|red\adddotspace i kom\adddot
translatorco|t\l umacz i komentator|t\l um\adddotspace i kom\adddot
translatorsco|t\l umacze i komentatorzy|t\l um\adddotspace i kom\adddot
organizer|organizator|org\adddot
organizers|organizatorzy|org\adddot
byorganizer|organizowane|org\adddot
byauthor|autorstwo|aut\adddot
byeditor|redagowa\l|red\adddot
byredactor|zredagowano|zred\adddot
byreviser|poprawione|popr\adddot
byreviewer|recenzja|rec\adddot
bytranslator|t\l umaczenie \lbx@lfromlang|t\l um\adddotspace \lbx@sfromlang
bycommentator|skomentowane przez|skom\adddot
byannotator|uwagi od|uw\adddot
withcommentator|komentarze|kom\adddot
withannotator|uwagi|uw\adddot
withforeword|przedmowa|przedm\adddot
withafterword|pos\l owie|pos\l \adddot
byeditoran|zredagowany i z uwagami|zredag\adddotspace i z uw\adddot
byeditoraf|zredagowany, z pos\l owiem|zred., z pos\l \adddot
byeditorcofo|zredagowany, komentarze i przedmowa|zred., kom\adddotspace i przedm\adddot
byeditorcoaf|zredagowany, komentarze i pos\l owie|zred., kom\adddotspace i pos\l \adddot
byeditoranfo|zredagowany, uwagi i przedmowa|zred., uw\adddotspace i przedm\adddot
byeditoranaf|zredagowany, uwagi i pos\l owie|zred., uw\adddotspace i pos\l \adddot
and|i|i
andothers|i inni|i in\adddot
andmore|i inni|i in\adddot
volume|tom|t\adddot
volumes|tomy|t\adddot
involumes|w|w
jourvol|tom|t\adddot
jourser|seria|ser\adddot
issue|wydanie|wyd\adddot
newseries|nowa seria|now\adddotspace ser\adddot
oldseries|stara seria|star\adddotspace ser\adddot
edition|wydruk|wyd\adddot
reprint|przedruk|przedr\adddot
reprintof|przedruk|przedr\adddot
reprintas|przedrukowano jako|przedr\adddotspace jako
reprintfrom|przedrukowano z|przedr\adddotspace z
translationof|t\l umaczenie|t\l um\adddot
translationas|t\l umaczenie jako|t\l um\adddotspace jako
translationfrom|t\l umaczenie z|t\l um\adddotspace z
reviewof|recenzja na\addcolon|rec\adddotspace na\addcolon
origpubin|pierwodruk wydano w|pierw\adddotspace wyd\adddotspace w
astitle|pod tytu\l em|pod tyt\adddot
page|strona|s\adddot
pages|strony|s\adddot
column|kolumna|kol\adddot
columns|kolumny|kol\adddot
line|linijka|l\adddot
lines|linijki|l\adddot
nodate|bez daty|b\adddot d\adddot
verse|werset|wer\adddot
verses|wersety|wer\adddot
section|paragraf|par\adddot
sections|paragrafy|par\adddot
paragraph|akapit|akap\adddot
paragraphs|akapity|akap\adddot
pagetotal|strona|s\adddot
pagetotals|strony|s\adddot
columntotal|kolumna|kol\adddot
columntotals|kolumny|kol\adddot
linetotal|wers|wer\adddot
linetotals|wersy|wer\adddot
versetotal|wiersz|wier\adddot
versetotals|wiersze|wier\adddot
sectiontotal|paragraf|par\adddot
sectiontotals|paragrafy|par\adddot
paragraphtotal|akapit|akap\adddot
paragraphtotals|akapit|akap\adddot
in|w|w
inseries|w|w
ofseries|z|z
number|numer|nr\adddot
chapter|rozdzia\l |rozd\adddot

View file

@ -0,0 +1,95 @@
bibliography|Bibliografia|Bibliografia
references|Refer\^encias|Refer\^encias
shorthands|Lista de Abreviaturas|Abreviaturas
editor|editor|ed\adddot
editors|editores|eds\adddot
compiler|compilador|comp\adddot
compilers|compiladores|comp\adddot
redactor|redator|red\adddot
redactors|redatores|red\adddot
reviser|revisor|rev\adddot
revisers|revisores|rev\adddot
founder|fundador|fund\adddot
founders|fundadores|fund\adddot
continuator|continuador|cont\adddot
continuators|continuadores|cont\adddot
collaborator|colaborador|col\adddot
collaborators|colaboradores|col\adddot
translator|tradutor|trad\adddot
translators|tradutores|trad\adddot
commentator|comentador|coment\adddot
commentators|comentadores|coment\adddot
annotator|anotador|anot\adddot
annotators|anotadores|anot\adddot
commentary|coment\'ario|coment\adddot
annotations|notas|notas
foreword|pref\'acio|pref\adddot
afterword|posf\'acio|posf\adddot
organizer|organizador|org\adddot
organizers|organizadores|orgs\adddot
byorganizer|organizado por|org\adddotspace por
byauthor|por|por
byeditor|editado por|ed\adddotspace por
bycompiler|compilado por|comp\adddotspace por
byredactor|redigido por|red\adddotspace por
byreviser|revisto por|rev\adddotspace por
byreviewer|resenhado por|res\adddotspace por
byfounder|fundado por|fund\adddotspace por
bycontinuator|continuado por|cont\adddotspace por
bytranslator|traduzido \lbx@lfromlang\ por|trad\adddot\ \lbx@sfromlang\ por
bycommentator|comentado por|coment\adddot\ por
byannotator|notas de|notas de
withcommentator|com coment\'arios de|com coment\adddot\ de
withannotator|com notas de|com notas de
withforeword|com pref\'acio de|com pref\adddot\ de
withafterword|com posf\'acio de|com posf\adddot\ de
and|e|e
andothers|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
andmore|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
volume|volume|vol\adddot
volumes|volumes|vols\adddot
involumes|em|em
jourvol|volume|vol\adddot
jourser|s\'erie|s\'er\adddot
book|livro|livro
part|parte|parte
issue|n\'umero|n\'umero
newseries|nova s\'erie|nova s\'er\adddot
oldseries|s\'erie antiga|s\'er\adddot\ antiga
reprint|reimpress\~ao|reimpr\adddot
reprintof|reimpress\~ao de|reimpr\adddotspace de
reprintas|reimpresso como|reimpr\adddotspace como
reprintfrom|reimpresso|reimpr\adddot
translationas|traduzido como|trad\adddotspace como
translationfrom|traduzido do|trad\adddotspace do
reviewof|resenha de|res\adddotspace de
origpubas|originalmente publicado como|orig\adddotspace pub\adddotspace como
origpubin|originalmente publicado em|orig\adddotspace pub\adddotspace em
astitle|como|como
bypublisher|por|por
nodate|sem data|s\adddot d\adddot
page|p\'agina|p\adddot
pages|p\'aginas|pp\adddot
column|coluna|col\adddot
columns|colunas|cols\adddot
line|linha|l\adddot
lines|linhas|ll\adddot
verse|verso|v\adddot
verses|versos|vv\adddot
paragraph|par\'agrafo|par\adddot
paragraphs|par\'agrafo|par\adddot
pagetotal|p\'agina|p\adddot
pagetotals|p\'aginas|pp\adddot
columntotal|coluna|col\adddot
columntotals|colunas|cols\adddot
linetotal|linha|l\adddot
linetotals|linhas|ll\adddot
versetotal|verso|v\adddot
versetotals|versos|vv\adddot
paragraphtotal|par\'agrafo|par\adddot
paragraphtotals|par\'agrafo|par\adddot
in|em|em
inseries|em|em
ofseries|de|de
number|n\'umero|n\adddot\textordmasculine
chapter|cap\'\i tulo|cap\adddot

View file

@ -0,0 +1,102 @@
bibliography|Список литературы|Список литературы
references|Список литературы|Список литературы
shorthands|Список сокращений|Сокращения
editor|редактор|ред\adddot
editors|редакторы|ред\adddot
compiler|составитель|сост\adddot
compilers|составители|сост\adddot
redactor|редактор|ред\adddot
redactors|редакторы|ред\adddot
reviser|ревизионный корректор|ревиз\adddotspace кор\adddot
revisers|ревизионные корректоры|ревиз\adddotspace кор\adddot
founder|основатель|осн\adddot
founders|основатели|осн\adddot
continuator|продолжатель|прод\adddot
continuators|продолжатели|прод\adddot
collaborator|участник|участ\adddot
collaborators|участники|участ\adddot
translator|переводчик|пер\adddot
translators|переводчики|пер\adddot
commentator|комментатор|коммент\adddot
commentators|комментаторы|коммент\adddot
annotator|примечания|примеч\adddot
annotators|примечания|примеч\adddot
commentary|комментарий|коммент\adddot
annotations|примечания|примеч\adddot
introduction|вступительная статья|вступ\adddotspace ст\adddot
foreword|предисловие|предисл\adddot
afterword|послесловие|послесл\adddot
organizer|организатор|орг\adddot
organizers|организаторы|орг\adddot
byorganizer|организатор|орг\adddot
byauthor||
byeditor|под редакцией|под\addabbrvspace ред\adddot
bycompiler|составитель|сост\adddot
byredactor|под редакцией|под\addabbrvspace ред\adddot
byreviser|исправлено|испр\adddot
byreviewer|рецензия|рец\adddot
byfounder|учредитель|учр\adddot
bycontinuator|продолжение|продолж\adddot
bycollaborator|при участии|при\addabbrvspace уч\adddot
bytranslator|перевод \lbx@lfromlang|пер\adddot\ \lbx@sfromlang
bycommentator|комментарии|коммент\adddot
byannotator|примечания|примеч\adddot
withcommentator|комментарии|коммент\adddot
withannotator|примечания|примеч\adddot
withintroduction|вступительная статья|вступ\adddotspace ст\adddot
withforeword|предисловие|предисл\adddot
withafterword|послесловие|послесл\adddot
and|и|и
andothers|и\addabbrvspace др\adddot|и\addabbrvspace др\adddot
andmore|и\addabbrvspace др\adddot|и\addabbrvspace др\adddot
volume|том|т\adddot
volumes|томах|т\adddot
involumes|в|в
jourvol|том|т\adddot
jourser|серия|сер\adddot
book|книга|кн\adddot
part|часть|ч\adddot
issue|выпуск|вып\adddot
newseries|новая серия|нов\adddotspace сер\adddot
oldseries|старая серия|стар\adddotspace сер\adddot
edition|издание|изд\adddot
reprint|переиздание|переизд\adddot
reprintof|переиздание|переизд\adddot
reprintas|переиздано как|переизд\adddotspace как
reprintfrom|переиздано с|переизд\adddotspace с
translationof|перевод по изданию\addcolon|пер\adddotspace по изд\adddot\addcolon
translationas|перевод\addcolon|пер\adddot\addcolon
translationfrom|перевод с|пер\adddotspace с
reviewof|рецензия на\addcolon|рец\adddotspace на\addcolon
astitle|\addcolon|\addcolon
bypublisher|\addcomma|\addcomma
nodate|б\adddot г\adddot|б\adddot г\adddot
page|страница|с\adddot
pages|страницы|с\adddot
column|колонка|кол\adddot
columns|колонки|кол\adddot
line|строка|строка
lines|строки|строка
verse|стих|стих
verses|стихи|стихи
section|параграф|\S
sections|параграфы|\S\S
paragraph|абзац|абз\adddot
paragraphs|абзацы|абз\adddot
pagetotal|страница|с\adddot
pagetotals|страницы|с\adddot
columntotal|колонка|кол\adddot
columntotals|колонки|кол\adddot
linetotal|строка|строка
linetotals|строки|строка
versetotal|стих|стих
versetotals|стихи|стихи
sectiontotal|параграф|\S
sectiontotals|параграфы|\S\S
paragraphtotal|абзац|абз\adddot
paragraphtotals|абзацы|абз\adddot
in|в|в
inseries|в|в
ofseries|из|из
number|номер|№
chapter|глава|гл\adddot

View file

@ -0,0 +1,82 @@
references|Referencie|Referencie
shorthands|Zoznam skratiek|Skratky
editor|editor|ed\adddot
editors|editori|ed\adddot
compilers|zostavovatelia|zost\adddot
redactor|redaktor|red\adddot
redactors|redaktori|red\adddot
reviser|korektor|kor\adddot
revisers|korektori|kor\adddot
founders|zakladatelia|zakl\adddot
translators|prekladatelia|prekl\adddot
foreword|predhovor|predh\adddot
afterword|doslov|dosl\adddot
byauthor||
withforeword|s\addnbspace predhovorom od|s\addnbspace predh\adddot\ od
withafterword|s\addnbspace doslovom od|s\addnbspace dosl\adddot\ od
and|a|a
andothers|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
andmore|et\addabbrvspace al\adddot|et\addabbrvspace al\adddot
involumes|in|in
book|kniha|kniha
edition|vydanie|vyd\adddot
reviewof|recenzia|recenz\adddot
translationof|preklad|prekl\adddot
astitle|ako|ako
bypublisher||
page|strana|s\adddot
pages|strany|s\adddot
line|riadok|r\adddot
lines|riadky|r\adddot
section|sekcia|\S
sections|sekcie|\S\S
paragraph|odsek|ods\adddot
paragraphs|odseky|ods\adddot
pagetotal|strana|s\adddot
pagetotals|strany|s\adddot
linetotal|riadok|r\adddot
linetotals|riadky|r\adddot
sectiontotal|sekcia|\S
sectiontotals|sekcie|\S\S
paragraphtotal|odsek|ods\adddot
paragraphtotals|odseky|ods\adddot
in|in|in
inseries|in|in
ofseries|z|z
chapter|kapitola|kap\adddot
datacd|CD-ROM|CD-ROM
audiocd|audio CD|audio CD
version|verzia|ver\adddot
url|URL|URL
idem|idem|idem
idemsm|idem|idem
idemsf|eadem|eadem
idemsn|idem|idem
idempm|eidem|eidem
idempf|eaedem|eaedem
idempn|eadem|eadem
idempp|eidem|eidem
ibidem|ibidem|ibid\adddot
opcit|op\adddotspace cit\adddot|op\adddotspace cit\adddot
loccit|loc\adddotspace cit\adddot|loc\adddotspace cit\adddot
confer|cf\adddot|cf\adddot
sequens|sq\adddot|sq\adddot
sequentes|sqq\adddot|sqq\adddot
passim|passim|pass\adddot
march|marec|mar\adddot
august|august|aug\adddot
september|september|sept\adddot
november|november|nov\adddot
december|december|dec\adddot
countryde|Nemecko|DE
patent|patent|pat\adddot
patentus|US patent|US pat\adddot
abstract|abstrakt|abst\adddot
annodomini|po Kristovi|po Kr\adddot
beforechrist|pred Kristom|pred Kr\adddot
circa|cirka|ca\adddot
spring|jar|jar
summer|leto|leto
winter|zima|zima
am|AM|AM
pm|PM|PM

View file

@ -0,0 +1,28 @@
bibliography|Literatura|Literatura
references|Literatura|Literatura
shorthands|Kratice|Kratice
editor|urednik|ur\adddot
editors|uredniki|ur\adddot
compiler|sestavljalec|sest\adddot
compilers|sestavljalci|sest\adddot
redactor|redaktor|redaktor
redactors|redaktorji|redaktorji
reviser|korektor|korektor
revisers|korektorji|korektorji
founder|snovalec|snovalec
founders|snovalci|snovalci
continuator|nadaljevalec|nadaljevalec
continuators|nadaljevalci|nadaljevalci
collaborator|sodelavec|sod\adddot
collaborators|sodelavci|sod\adddot
translator|prevajalec|prev\adddot
translators|prevajalci|prev\adddot
commentator|komentator|komentator
commentators|komentatorji|komentatorji
annotator|anotator|anotator
annotators|anotatorji|anotatorji
commentary|komentar|komentar
annotations|opombe|op\adddot
introduction|uvod|uvod
foreword|predgovor|predg\adddot
afterword|spremna beseda|spr\adddotspace b\adddot

View file

@ -0,0 +1,190 @@
references|Referencias|Referencias
shorthands|Lista de abreviaturas|Abreviaturas
editor|edici\'on|ed\adddot
editors|edici\'on|eds\adddot
commentator|comentario|com\adddot
commentators|comentarios|coms\adddot
annotator|anotaciones|anot\adddot
annotators|anotaciones|anots\adddot
commentary|comentario|com\adddot
annotations|notas|notas
introduction|introducci\'on|intr\adddot
foreword|pr\'ologo|pr\'ol\adddot
organizer|organizaci\'on|org\adddot
organizers|organizaci\'on|orgs\adddot
byorganizer|organizado por|org\adddotspace por
byauthor|de|de
byeditor|editado por|ed\adddotspace por
bycompiler|compilado por|comp\adddotspace por
byredactor|redacci\'on de|red\adddotspace de
byreviser|revisado por|rev\adddotspace por
byfounder|fundado por|fund\adddotspace por
bycontinuator|continuado por|cont\adddotspace por
bytranslator|traducido \lbx@lfromlang\ por|trad\adddot \lbx@sfromlang\ por
bycommentator|comentado por|com\adddotspace por
byannotator|anotado por|anot\adddotspace por
withcommentator|con comentario de|con com\adddotspace de
withannotator|con notas de|con notas de
withintroduction|con introduci\'on de|con intr\adddotspace de
withforeword|con pr\'ologo de|con pr\'ol\adddotspace de
and|y|y
andothers|y~col\adddot|y~col\adddot
andmore|et\adddotspace al\adddot|et\adddotspace al\adddot
volume|volumen|vol\adddot
volumes|vol\'umenes|vols\adddot
involumes|en|en
jourvol|volumen|vol\adddot
jourser|\'epoca|\'ep\adddot
book|libro|libro
part|parte|parte
issue|n\'umero|n\'um\adddot
newseries|nueva \'epoca|n\adddotspace \'ep\adddot
oldseries|antigua \'epoca|ant\adddotspace \'ep\adddot
edition|edici\'on|ed\adddot
reprintas|reimpreso como|reimp\adddotspace como
translationas|traducido como|trad\adddotspace como
translationfrom|traducido del|trad\adddotspace del
origpubas|publicado originalmente como|pub\adddotspace orig\adddotspace como
origpubin|publicado originalmente en|pub\adddot orig\adddot en
bypublisher|por la editorial|por la ed\adddot
page|p\'agina|p\'ag\adddot
pages|p\'aginas|p\'ags\adddot
column|columna|col\adddot
columns|columnas|cols\adddot
verse|verso|v\adddot
verses|versos|vv\adddot
sections|secciones|secs\adddot
pagetotal|p\'agina|p\'ag\adddot
pagetotals|p\'aginas|p\'ags\adddot
columntotal|columna|col\adddot
columntotals|columnas|cols\adddot
versetotal|verso|v\adddot
versetotals|versos|vv\adddot
sectiontotals|secciones|secs\adddot
in|en|en
inseries|en|en
ofseries|de|de
number|n\'umero|n\sptext{o
chapter|cap\'itulo|cap\adddot
bathesis|Tesis de licenciatura|Tesis de lic\adddot
phdthesis|Tesis doctoral|Tesis doct\adddot
candthesis|Tesis de candidatura doctoral|Tesis de cand\adddotspace doct\adddot
techreport|informe t\'ecnico|inf\adddotspace t\'ec\adddot
software|programa|prog\adddot
datacd|disco de datos|CD de datos
audiocd|disco de audio|CD de audio
version|versi\'on|ver\adddot
url|direcci\'on|direcci\'on
urlfrom|disponible desde|disp\adddotspace desde
urlseen|visitado|visitado
submitted|enviado|enviado
forthcoming|pr\'oximamente|prox\adddot
inpress|en prensa|en prensa
prepublished|previamente publicado|prepublicado
citedas|citado en adelante como|cit\adddotspace en adelante como
thiscite|especialmente|esp\adddot
seenote|ver nota|ver n\adddot
quotedin|citado en|cit\adddotspace en
loccit|loc\adddotspace cit\adddot|loc\adddot cit\adddot
confer|cf\adddot|cf\adddot
sequens|s\adddot|s\adddot
sequentes|ss\adddot|ss\adddot
passim|p\'assim|p\'assim
see|v\'ease|vid\adddot
seealso|v\'ease tambi\'en|vid\adddotspace tambi\'en
backrefpage|v\'ease p\'agina|vid\adddotspace p\'ag\adddot
backrefpages|v\'eanse p\'aginas|vid\adddotspace p\'ags\adddot
january|enero|ene\adddot
february|febrero|feb\adddot
march|marzo|mar\adddot
april|abril|abr\adddot
may|mayo|mayo
june|junio|jun\adddot
july|julio|jul\adddot
august|agosto|ago\adddot
september|septiembre|sep\adddot
october|octubre|oct\adddot
november|noviembre|nov\adddot
december|diciembre|dic\adddot
langbrazilian|brasile\~no|brasile\~no
langbulgarian|b\'ulgaro|b\'ulgaro
langcroatian|croata|croata
langczech|checo|checo
langdanish|dan\'es|dan\'es
langdutch|neerland\'es|neerland\'es
langenglish|ingl\'es|ingl\'es
langestonian|estonio|estonio
langfrench|franc\'es|franc\'es
langgalician|gallego|gallego
langgerman|alem\'an|alem\'an
langgreek|griego|griego
langhungarian|h\'ungaro|h\'ungaro
langitalian|italiano|italiano
langjapanese|japon\'es|japon\'es
langlatvian|lituano|lituano
langnorwegian|noruego|noruego
langpolish|polaco|polaco
langportuguese|portugu\'es|portugu\'es
langrussian|ruso|ruso
langslovak|eslovaco|eslovaco
langslovene|esloveno|esloveno
langspanish|espa\~nol|espa\~nol
langswedish|sueco|sueco
langukrainian|ucraniano|ucraniano
frombrazilian|del brasile\~no|del brasile\~no
frombulgarian|del b\'ulgaro|del b\'ulgaro
fromcroatian|del croata|del croata
fromczech|del checo|del checo
fromdanish|del dan\'es|del dan\'es
fromdutch|del neerland\'es|del neerland\'es
fromenglish|del ingl\'es|del ingl\'es
fromestonian|del estonio|del estonio
fromfrench|del franc\'es|del franc\'es
fromgalician|del gallego|del gallego
fromgerman|del alem\'an|del alem\'an
fromgreek|del griego|del griego
fromhungarian|del h\'ungaro|del h\'ungaro
fromitalian|del italiano|del italiano
fromjapanese|del japon\'es|del japon\'es
fromlatvian|del lituano|del lituano
fromnorwegian|del noruego|del noruego
frompolish|del polaco|del polaco
fromportuguese|del portugu\'es|del portugu\'es
fromrussian|del ruso|del ruso
fromslovak|del eslovaco|del eslovaco
fromslovene|del esloveno|del esloveno
fromspanish|del espa\~nol|del espa\~nol
fromswedish|del sueco|del sueco
fromukrainian|del ucraniano|del ucraniano
countryde|Alemania|DE
countryeu|Uni\'on Europea|EU
countryep|Uni\'on Europea|EP
countryfr|Francia|FR
countryuk|Reino Unido|GB
countryus|Estados Unidos|US
patent|patente|pat\adddot
patentde|patente alemana|pat\adddotspace alemana
patenteu|patente europea|pat\adddotspace europea
patentfr|patente francesa|pat\adddotspace francesa
patentuk|patente brit\'anica|pat\adddotspace brit\'anica
patentus|patente estadounidense|pat\adddotspace estadounidense
patreq|solicitud de patente|sol\adddotspace de pat\adddot
patreqde|solicitud de patente alemana|sol\adddotspace de pat\adddot alemana
patreqeu|solicitud de patente europea|sol\adddotspace de pat\adddot europea
patreqfr|solicitud de patente francesa|sol\adddotspace de pat\adddot francesa
patrequk|solicitud de patente brit\'anica|sol\adddotspace de pat\adddot brit\'anica
patrequs|solicitud de patente estadounidense|sol\adddotspace de pat\adddot estadounidense
file|archivo|archivo
library|biblioteca|bibl\adddot
abstract|resumen|resumen
commonera|era com\'un|e\adddotspace c\adddot
beforecommonera|antes de la era com\'un|a\adddotspace e\adddotspace c\adddot
annodomini|despu\'es de Cristo|d\adddotspace C\adddot
beforechrist|antes de Cristo|a\adddotspace C\adddot
circa|circa|ca\adddot
spring|primavera|prim\adddot
summer|verano|ver\adddot
autumn|oto\~no|ot\adddot
winter|invierno|inv\adddot
am|a\adddotspace m\adddot|a\adddot m\adddot
pm|p\adddotspace m\adddot|p\adddot m\adddot

View file

@ -0,0 +1,9 @@
bibliography|Litteraturf\"orteckning|Litteratur
references|Referenser|Referenser
shorthands|F\"orkortningar|F\"orkortningar
editor|utgivare|utg\adddot
editors|utgivare|utg\adddot
compiler|sammanst\"allare|sammanst\adddot
compilers|sammanst\"allare|sammanst\adddot
redactor|redakt\"or|red\adddot
redactors|redakt\"orer|red\adddot

View file

@ -0,0 +1 @@
countryuk|Grossbritannien|GB

View file

@ -0,0 +1,157 @@
references|Kaynaklar|Kaynaklar
shorthands|K\i saltmalar dizini|K\i saltmalar
compiler|derleyen|der\adddot
compilers|derleyenler|der\adddot
redactor|yay\i na haz\i rlayan|yay\adddot\ haz\adddot
redactors|yay\i na haz\i rlayanlar|yay\adddot\ haz\adddot
reviser|tashih eden|tashih\adddot
revisers|tashih edenler|tashih\adddot
founder|kurucu|kur\adddot
founders|kurucular|kur\adddot
continuator|tamamlayan|tam\adddot
continuators|tamamlayanlar|tam\adddot
collaborator|ortak|ortak
collaborators|ortaklar|ortaklar
commentator|yorumlayan|yrm\adddot
commentators|yorumlayanlar|yrm\adddot
commentary|yorum|yrm\adddot
byauthor|yazar|yazar
bycompiler|derleyen|der\adddot
byredactor|yay\i na haz\i rlayan|yay\adddot\ haz\adddot
byreviser|tashih|tashih
byfounder|kurucu|kur\adddot
bycontinuator|tamamlayan|tam\adddot
bycommentator|yorumlayan|yrm\adddot
withcommentator|yorumlar\i yla katk\i da bulunan|yrm\adddot\ kat\adddot\ bul\adddot
and|ve|ve
volume|cilt|c\adddot
volumes|cilt|c\adddot
jourvol|cilt|c\adddot
jourser|seri|seri
book|kitap|kitap
part|k\i s\i m|k\i s\i m
issue|say\i|say\i
newseries|yeni seri|yeni seri
oldseries|eski seri|eski seri
edition|bask\i|bs\adddot
reprint|yeni bask\i s\i|yeni bask\i s\i
reprintof|yeni bask\i s\i|yeni bask\i s\i
reprintas|yeni bask\i s\i|yeni bask\i s\i
reprintfrom|yeni bask\i s\i|yeni bask\i s\i
reviewof|derlenen eser|der\adddot\ eser
origpubas|as\i l eser|as\i l eser
origpubin|as\i l eser yay\i n tarihi|as\i l eser yay\i n tarihi
bypublisher|yay\i n evi|yay\i n evi
nodate|tarih yok|t\adddot y\adddot
page|sayfa|s\adddot
pages|sayfalar|ss\adddot
line|sat\i r|sat\adddot
lines|sat\i rlar|sat\adddot
verse|m\i sra|m\i s\adddot
verses|m\i sralar|m\i s\adddot
paragraph|paragraf|par\adddot
paragraphs|paragraflar|par\adddot
pagetotal|toplam sayfa|s\adddot
pagetotals|toplam sayfalar|ss\adddot
linetotal|toplam sat\i r|sat\adddot
linetotals|toplam sat\i rlar|sat\adddot
versetotal|toplam m\i sra|m\i s\adddot
versetotals|toplam m\i sralar|m\i s\adddot
paragraphtotal|toplam paragraf|par\adddot
paragraphtotals|toplam paragraflar|par\adddot
inseries|serilerde|serilerde
ofseries|serilerde|serilerde
number|numara|no\adddot
bathesis|lisans tezi|lis\adddot\ tezi
phdthesis|doktora tezi|dok\adddot\ tezi
candthesis|aday tezi|aday tezi
techreport|teknik rapor|tek\adddot\ rap\adddot
software|bilgisayar yaz\i l\i m\i|bilg\adddot\ yaz\adddot
datacd|CD|CD
audiocd|ses CD'si|ses CD'si
version|versiyon|ver\adddot
forthcoming|yak\i nda|yak\i nda
prepublished|taslak bas\i m\i|taslak bas\i m\i
citedas|at\i f olarak|at\i f olarak
seenote|nota bak\i n\i z|nota bkz\adddot
quotedin|al\i nt\i|al\i nt\i
idem|ayn\i|ayn\i
idemsm|ayn\i|ayn\i
idemsf|ayn\i|ayn\i
idemsn|ayn\i|ayn\i
idempm|ayn\i lar\i|ayn\i lar\i
idempf|ayn\i lar\i|ayn\i lar\i
idempn|ayn\i lar\i|ayn\i lar\i
idempp|ayn\i lar\i|ayn\i lar\i
loccit|at\i f yap\i lan yer|at\i f yap\adddot\ yer
sequens|takip eden|takip eden
sequentes|takip eden|takip eden
passim|rastgele|rastgele
see|bak\i n\i z|bkz\adddot
seealso|ayr\i ca bak\i n\i z|ayr\i ca bkz\adddot
january|Ocak|Ocak
march|Mart|Mar\adddot
april|Nisan|Nis\adddot
may|May\i s|May\adddot
june|Haziran|Haz\adddot
july|Temmuz|Tem\adddot
october|Ekim|Ekim
november|Kas\i m|Kas\adddot
december|Aral\i k|Ara\adddot
langamerican|Amerikanca|Amerikanca
langbrazilian|Brezilyanca|Brezilyanca
langbulgarian|Bulgarca|Bulgarca
langcatalan|Katalanca|Katalanca
langdanish|Danimarkanca|Danimarkanca
langestonian|Estonca|Estonca
langfinnish|Fince|Fince
langfrench|Frans\i zca|Frans\i zca
langgalician|Galce|Galce
langgerman|Almanca|Almanca
langgreek|Yunanca|Yunanca
langhungarian|Macarca|Macarca
langjapanese|Japonca|Japonca
langlatin|Latince|Latince
langlatvian|Letonca|Letonca
langlithuanian|Litvanca|Litvanca
langpolish|Polonyaca|Polonyaca
langportuguese|Portekizce|Portekizce
langslovene|Slovence|Slovence
langukrainian|Ukraynaca|Ukraynaca
fromamerican|Amerikanca'dan|Amerikanca'dan
frombrazilian|Brezilyanca'dan|Brezilyanca'dan
frombulgarian|Bulgarca'dan|Bulgarca'dan
fromcatalan|Katalanca'dan|Katalanca'dan
fromdanish|Danimarkanca'dan|Danimarkanca'dan
fromestonian|Estonyaca'dan|Estonyaca'dan
fromfinnish|Fince'den|Fince'den
fromfrench|Frans\i zca'dan|Frans\i zca'dan
fromgalician|Galyaca'dan|Galyaca'dan
fromgerman|Almanca'dan|Almanca'dan
fromgreek|Yunanca'dan|Yunanca'dan
fromhungarian|Macarca'dan|Macarca'dan
fromjapanese|Japonca'dan|Japonca'dan
fromlatin|Latince'den|Latince'den
fromlatvian|Latvianca'dan|Latvianca'dan
fromlithuanian|Litvanca'dan|Litvanca'dan
frompolish|Polonyaca'dan|Polonyaca'dan
fromportuguese|Portekizce'den|Portekizce'den
fromslovene|Slovence'den|Slovence'den
fromukrainian|Ukraynaca'dan|Ukraynaca'dan
countryde|Almanya|DE
countryfr|Fransa|FR
patent|patent|pat\adddot
patentde|Alman patenti|Alman pat\adddot
patenteu|Avrupa patenti|Avrupa pat\adddot
patentfr|Frans\i z patenti|Frans\i z pat\adddot
patentus|Amerika patenti|Amerika pat\adddot
patreq|patent beklemede|pat\adddot\ bek\adddot
patreqde|Alman patenti beklemede|Alman pat\adddot\ bek\adddot
patreqeu|Avrupa patenti beklemede|Avrupa pat\adddot\ bek\adddot
patreqfr|Frans\i z patenti beklemede|Frans\i z pat\adddot\ bek\adddot
patrequs|Amerika patenti beklemede|Amerika pat\adddot\ bek\adddot
file|dosya|dosya
commonera|milattan sonra|MS
annodomini|milattan sonra|MS
summer|Yaz|Yaz
autumn|Sonbahar|Sonbahar

View file

@ -0,0 +1,102 @@
bibliography|Перелік літератури|Література
references|Перелік літератури|Література
shorthands|Перелік скорочень|Скорочення
editor|редактор|ред\adddot
editors|редактори|ред\adddot
compiler|укладач|уклад\adddot
compilers|укладачі|уклад\adddot
redactor|редактор|ред\adddot
redactors|редактори|ред\adddot
reviser|ревізійний коректор|ревіз\adddotspace кор\adddot
revisers|ревізійні коректори|ревіз\adddotspace кор\adddot
founder|засновник|засн\adddot
founders|засновник|засн\adddot
continuator|продовжувач|прод\adddot
continuators|продовжувачі|прод\adddot
collaborator|учасник|учас\adddot
collaborators|учасники|учас\adddot
translator|перекладач|пер\adddot
translators|перекладачі|пер\adddot
commentator|коментатор|комент\adddot
commentators|коментатори|комент\adddot
annotator|примітки|прим\adddot
annotators|примітки|прим\adddot
commentary|коментар|комент\adddot
annotations|примітки|прим\adddot
introduction|вступна стаття|вступ\adddotspace ст\adddot
foreword|передмова|передм\adddot
afterword|післямова|післям\adddot
organizer|організатор|орг\adddot
organizers|організатори|орг\adddot
byorganizer|організатор|орг\adddot
byauthor|згідно автора|згідн\adddot авт\adddot
byeditor|за редакцією|за\addabbrvspace ред\adddot
bycompiler|укладач|уклад\adddot
byredactor|за редакцією|за\addabbrvspace ред\adddot
byreviser|виправлено|випр\adddot
byreviewer|рецензія|рец\adddot
byfounder|засновник|засн\adddot
bycontinuator|продовження|продовж\adddot
bycollaborator|за участю|за\addabbrvspace уч\adddot
bytranslator|переклад \lbx@lfromlang|пер\adddot\ \lbx@sfromlang
bycommentator|коментарі|комент\adddot
byannotator|примітки|прим\adddot
withcommentator|коментарі|комент\adddot
withannotator|примітки|прим\adddot
withintroduction|вступна стаття|вступ\adddotspace ст\adddot
withforeword|передмовие|передм\adddot
withafterword|післямовие|післям\adddot
and|та|та
andothers|та\addabbrvspace ін\adddot|та\addabbrvspace ін\adddot
andmore|та\addabbrvspace ін\adddot|та\addabbrvspace ін\adddot
volume|том|т\adddot
volumes|томах|т\adddot
involumes|в|в
jourvol|том|т\adddot
jourser|серія|сер\adddot
book|книга|кн\adddot
part|частина|ч\adddot
issue|випуск|вип\adddot
newseries|нова серія|нов\adddotspace сер\adddot
oldseries|стара серія|стар\adddotspace сер\adddot
edition|видання|вид\adddot
reprint|перевидання|перевид\adddot
reprintof|перевидання|перевид\adddot
reprintas|перевидано як|перевид\adddotspace як
reprintfrom|перевидано з|перевид\adddotspace з
translationof|переклад по виданню\addcolon|пер\adddotspace по вид\adddot\addcolon
translationas|переклад\addcolon|пер\adddot\addcolon
translationfrom|переклад з|пер\adddotspace з
reviewof|рецензія на\addcolon|рец\adddotspace на\addcolon
astitle|\addcolon|\addcolon
bypublisher|\addcomma|\addcomma
nodate|б\adddot р\adddot|б\adddot р\adddot
page|сторінка|с\adddot
pages|сторінки|с\adddot
column|колонка|кол\adddot
columns|колонки|кол\adddot
line|рядок|рядок
lines|рядки|рядки
verse|вірш|вірш
verses|вірші|вірші
section|параграф|\S
sections|параграфи|\S\S
paragraph|абзац|абз\adddot
paragraphs|абзаци|абз\adddot
pagetotal|сторінка|с\adddot
pagetotals|сторінки|с\adddot
columntotal|колонка|кол\adddot
columntotals|колонки|кол\adddot
linetotal|рядок|рядок
linetotals|рядки|рядки
versetotal|вірш|вірш
versetotals|вірші|вірші
sectiontotal|параграф|\S
sectiontotals|параграфи|\S\S
paragraphtotal|абзац|абз\adddot
paragraphtotals|абзаци|абз\adddot
in|в|в
inseries|в|в
ofseries|із|із
number|номер|№
chapter|глава|гл\adddot

648
data/default.csl Normal file
View file

@ -0,0 +1,648 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="display-and-sort" page-range-format="chicago">
<info>
<title>Chicago Manual of Style 17th edition (author-date)</title>
<id>http://www.zotero.org/styles/chicago-author-date</id>
<link href="http://www.zotero.org/styles/chicago-author-date" rel="self"/>
<link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation"/>
<author>
<name>Julian Onions</name>
<email>julian.onions@gmail.com</email>
</author>
<contributor>
<name>Sebastian Karcher</name>
</contributor>
<contributor>
<name>Richard Karnesky</name>
<email>karnesky+zotero@gmail.com</email>
<uri>http://arc.nucapt.northwestern.edu/Richard_Karnesky</uri>
</contributor>
<contributor>
<name>Andrew Dunning</name>
<email>andrew.dunning@utoronto.ca</email>
<uri>https://orcid.org/0000-0003-0464-5036</uri>
</contributor>
<contributor>
<name>Matthew Roth</name>
<email>matthew.g.roth@yale.edu</email>
<uri> https://orcid.org/0000-0001-7902-6331</uri>
</contributor>
<category citation-format="author-date"/>
<category field="generic-base"/>
<summary>The author-date variant of the Chicago style</summary>
<updated>2018-01-24T12:00:00+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="en">
<terms>
<term name="editor" form="verb-short">ed.</term>
<term name="container-author" form="verb">by</term>
<term name="translator" form="verb-short">trans.</term>
<term name="editortranslator" form="verb">edited and translated by</term>
<term name="translator" form="short">trans.</term>
</terms>
</locale>
<macro name="secondary-contributors">
<choose>
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="none">
<group delimiter=". ">
<names variable="editor translator" delimiter=". ">
<label form="verb" text-case="capitalize-first" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
<names variable="director" delimiter=". ">
<label form="verb" text-case="capitalize-first" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
</group>
</if>
</choose>
</macro>
<macro name="container-contributors">
<choose>
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
<group prefix=", " delimiter=", ">
<names variable="container-author" delimiter=", ">
<label form="verb" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
<names variable="editor translator" delimiter=", ">
<label form="verb" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
</group>
</if>
</choose>
</macro>
<macro name="editor">
<names variable="editor">
<name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=", "/>
</names>
</macro>
<macro name="translator">
<names variable="translator">
<name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=", "/>
</names>
</macro>
<macro name="recipient">
<choose>
<if type="personal_communication">
<choose>
<if variable="genre">
<text variable="genre" text-case="capitalize-first"/>
</if>
<else>
<text term="letter" text-case="capitalize-first"/>
</else>
</choose>
</if>
</choose>
<names variable="recipient" delimiter=", ">
<label form="verb" prefix=" " text-case="lowercase" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
</macro>
<macro name="substitute-title">
<choose>
<if type="article-magazine article-newspaper review review-book" match="any">
<text macro="container-title"/>
</if>
</choose>
</macro>
<macro name="contributors">
<group delimiter=". ">
<names variable="author">
<name and="text" name-as-sort-order="first" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=", "/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<names variable="director"/>
<text macro="substitute-title"/>
<text macro="title"/>
</substitute>
</names>
<text macro="recipient"/>
</group>
</macro>
<macro name="contributors-short">
<names variable="author">
<name form="short" and="text" delimiter=", " initialize-with=". "/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<names variable="director"/>
<text macro="substitute-title"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<macro name="interviewer">
<names variable="interviewer" delimiter=", ">
<label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
</macro>
<macro name="archive">
<group delimiter=". ">
<text variable="archive_location" text-case="capitalize-first"/>
<text variable="archive"/>
<text variable="archive-place"/>
</group>
</macro>
<macro name="access">
<group delimiter=". ">
<choose>
<if type="graphic report" match="any">
<text macro="archive"/>
</if>
<else-if type="article-journal bill book chapter legal_case legislation motion_picture paper-conference" match="none">
<text macro="archive"/>
</else-if>
</choose>
<choose>
<if type="webpage post-weblog" match="any">
<date variable="issued" form="text"/>
</if>
</choose>
<choose>
<if variable="issued" match="none">
<group delimiter=" ">
<text term="accessed" text-case="capitalize-first"/>
<date variable="accessed" form="text"/>
</group>
</if>
</choose>
<choose>
<if type="legal_case" match="none">
<choose>
<if variable="DOI">
<text variable="DOI" prefix="https://doi.org/"/>
</if>
<else>
<text variable="URL"/>
</else>
</choose>
</if>
</choose>
</group>
</macro>
<macro name="title">
<choose>
<if variable="title" match="none">
<choose>
<if type="personal_communication" match="none">
<text variable="genre" text-case="capitalize-first"/>
</if>
</choose>
</if>
<else-if type="bill book graphic legislation motion_picture song" match="any">
<text variable="title" text-case="title" font-style="italic"/>
<group prefix=" (" suffix=")" delimiter=" ">
<text term="version"/>
<text variable="version"/>
</group>
</else-if>
<else-if variable="reviewed-author">
<choose>
<if variable="reviewed-title">
<group delimiter=". ">
<text variable="title" text-case="title" quotes="true"/>
<group delimiter=", ">
<text variable="reviewed-title" text-case="title" font-style="italic" prefix="Review of "/>
<names variable="reviewed-author">
<label form="verb-short" text-case="lowercase" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
</group>
</group>
</if>
<else>
<group delimiter=", ">
<text variable="title" text-case="title" font-style="italic" prefix="Review of "/>
<names variable="reviewed-author">
<label form="verb-short" text-case="lowercase" suffix=" "/>
<name and="text" delimiter=", "/>
</names>
</group>
</else>
</choose>
</else-if>
<else-if type="legal_case interview patent" match="any">
<text variable="title"/>
</else-if>
<else>
<text variable="title" text-case="title" quotes="true"/>
</else>
</choose>
</macro>
<macro name="edition">
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<choose>
<if is-numeric="edition">
<group delimiter=" " prefix=". ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short" strip-periods="true"/>
</group>
</if>
<else>
<text variable="edition" text-case="capitalize-first" prefix=". "/>
</else>
</choose>
</if>
<else-if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
<choose>
<if is-numeric="edition">
<group delimiter=" " prefix=", ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition" prefix=", "/>
</else>
</choose>
</else-if>
</choose>
</macro>
<macro name="locators">
<choose>
<if type="article-journal">
<choose>
<if variable="volume">
<text variable="volume" prefix=" "/>
<group prefix=" (" suffix=")">
<choose>
<if variable="issue">
<text variable="issue"/>
</if>
<else>
<date variable="issued">
<date-part name="month"/>
</date>
</else>
</choose>
</group>
</if>
<else-if variable="issue">
<group delimiter=" " prefix=", ">
<text term="issue" form="short"/>
<text variable="issue"/>
<date variable="issued" prefix="(" suffix=")">
<date-part name="month"/>
</date>
</group>
</else-if>
<else>
<date variable="issued" prefix=", ">
<date-part name="month"/>
</date>
</else>
</choose>
</if>
<else-if type="legal_case">
<text variable="volume" prefix=", "/>
<text variable="container-title" prefix=" "/>
<text variable="page" prefix=" "/>
</else-if>
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group prefix=". " delimiter=". ">
<group>
<text term="volume" form="short" text-case="capitalize-first" suffix=" "/>
<number variable="volume" form="numeric"/>
</group>
<group>
<number variable="number-of-volumes" form="numeric"/>
<text term="volume" form="short" prefix=" " plural="true"/>
</group>
</group>
</else-if>
<else-if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
<choose>
<if variable="page" match="none">
<group prefix=". ">
<text term="volume" form="short" text-case="capitalize-first" suffix=" "/>
<number variable="volume" form="numeric"/>
</group>
</if>
</choose>
</else-if>
</choose>
</macro>
<macro name="locators-chapter">
<choose>
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
<choose>
<if variable="page">
<group prefix=", ">
<text variable="volume" suffix=":"/>
<text variable="page"/>
</group>
</if>
</choose>
</if>
</choose>
</macro>
<macro name="locators-article">
<choose>
<if type="article-newspaper">
<group prefix=", " delimiter=", ">
<group delimiter=" ">
<text variable="edition"/>
<text term="edition"/>
</group>
<group>
<text term="section" form="short" suffix=" "/>
<text variable="section"/>
</group>
</group>
</if>
<else-if type="article-journal">
<choose>
<if variable="volume issue" match="any">
<text variable="page" prefix=": "/>
</if>
<else>
<text variable="page" prefix=", "/>
</else>
</choose>
</else-if>
</choose>
</macro>
<macro name="point-locators">
<choose>
<if variable="locator">
<choose>
<if locator="page" match="none">
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<choose>
<if variable="volume">
<group>
<text term="volume" form="short" suffix=" "/>
<number variable="volume" form="numeric"/>
<label variable="locator" form="short" prefix=", " suffix=" "/>
</group>
</if>
<else>
<label variable="locator" form="short" suffix=" "/>
</else>
</choose>
</if>
<else>
<label variable="locator" form="short" suffix=" "/>
</else>
</choose>
</if>
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<number variable="volume" form="numeric" suffix=":"/>
</else-if>
</choose>
<text variable="locator"/>
</if>
</choose>
</macro>
<macro name="container-prefix">
<text term="in" text-case="capitalize-first"/>
</macro>
<macro name="container-title">
<choose>
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
<text macro="container-prefix" suffix=" "/>
</if>
</choose>
<choose>
<if type="webpage">
<text variable="container-title" text-case="title"/>
</if>
<else-if type="legal_case" match="none">
<group delimiter=" ">
<text variable="container-title" text-case="title" font-style="italic"/>
<choose>
<if type="post-weblog">
<text value="(blog)"/>
</if>
</choose>
</group>
</else-if>
</choose>
</macro>
<macro name="publisher">
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</macro>
<macro name="date">
<choose>
<if variable="issued">
<group delimiter=" ">
<date variable="original-date" form="text" date-parts="year" prefix="(" suffix=")"/>
<date variable="issued">
<date-part name="year"/>
</date>
</group>
</if>
<else-if variable="status">
<text variable="status" text-case="capitalize-first"/>
</else-if>
<else>
<text term="no date" form="short"/>
</else>
</choose>
</macro>
<macro name="date-in-text">
<choose>
<if variable="issued">
<group delimiter=" ">
<date variable="original-date" form="text" date-parts="year" prefix="[" suffix="]"/>
<date variable="issued">
<date-part name="year"/>
</date>
</group>
</if>
<else-if variable="status">
<text variable="status"/>
</else-if>
<else>
<text term="no date" form="short"/>
</else>
</choose>
</macro>
<macro name="day-month">
<date variable="issued">
<date-part name="month"/>
<date-part name="day" prefix=" "/>
</date>
</macro>
<macro name="collection-title">
<choose>
<if match="none" type="article-journal">
<choose>
<if match="none" is-numeric="collection-number">
<group delimiter=", ">
<text variable="collection-title" text-case="title"/>
<text variable="collection-number"/>
</group>
</if>
<else>
<group delimiter=" ">
<text variable="collection-title" text-case="title"/>
<text variable="collection-number"/>
</group>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="collection-title-journal">
<choose>
<if type="article-journal">
<group delimiter=" ">
<text variable="collection-title"/>
<text variable="collection-number"/>
</group>
</if>
</choose>
</macro>
<macro name="event">
<group>
<text term="presented at" suffix=" "/>
<text variable="event"/>
</group>
</macro>
<macro name="description">
<choose>
<if type="interview">
<group delimiter=". ">
<text macro="interviewer"/>
<text variable="medium" text-case="capitalize-first"/>
</group>
</if>
<else-if type="patent">
<group delimiter=" " prefix=". ">
<text variable="authority"/>
<text variable="number"/>
</group>
</else-if>
<else>
<text variable="medium" text-case="capitalize-first" prefix=". "/>
</else>
</choose>
<choose>
<if variable="title" match="none"/>
<else-if type="thesis personal_communication speech" match="any"/>
<else>
<group delimiter=" " prefix=". ">
<text variable="genre" text-case="capitalize-first"/>
<choose>
<if type="report">
<text variable="number"/>
</if>
</choose>
</group>
</else>
</choose>
</macro>
<macro name="issue">
<choose>
<if type="legal_case">
<text variable="authority" prefix=". "/>
</if>
<else-if type="speech">
<group prefix=". " delimiter=", ">
<group delimiter=" ">
<text variable="genre" text-case="capitalize-first"/>
<text macro="event"/>
</group>
<text variable="event-place"/>
<text macro="day-month"/>
</group>
</else-if>
<else-if type="article-newspaper article-magazine personal_communication" match="any">
<date variable="issued" form="text" prefix=", "/>
</else-if>
<else-if type="patent">
<group delimiter=", " prefix=", ">
<group delimiter=" ">
<!--Needs Localization-->
<text value="filed"/>
<date variable="submitted" form="text"/>
</group>
<group delimiter=" ">
<choose>
<if variable="issued submitted" match="all">
<text term="and"/>
</if>
</choose>
<!--Needs Localization-->
<text value="issued"/>
<date variable="issued" form="text"/>
</group>
</group>
</else-if>
<else-if type="article-journal" match="any"/>
<else>
<group prefix=". " delimiter=", ">
<choose>
<if type="thesis">
<text variable="genre" text-case="capitalize-first"/>
</if>
</choose>
<text macro="publisher"/>
</group>
</else>
</choose>
</macro>
<citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" givenname-disambiguation-rule="primary-name" collapse="year" after-collapse-delimiter="; ">
<layout prefix="(" suffix=")" delimiter="; ">
<group delimiter=", ">
<choose>
<if variable="issued accessed" match="any">
<group delimiter=" ">
<text macro="contributors-short"/>
<text macro="date-in-text"/>
</group>
</if>
<!---comma before forthcoming and n.d.-->
<else>
<group delimiter=", ">
<text macro="contributors-short"/>
<text macro="date-in-text"/>
</group>
</else>
</choose>
<text macro="point-locators"/>
</group>
</layout>
</citation>
<bibliography hanging-indent="true" et-al-min="11" et-al-use-first="7" subsequent-author-substitute="&#8212;&#8212;&#8212;" entry-spacing="0">
<sort>
<key macro="contributors"/>
<key variable="issued"/>
<key variable="title"/>
</sort>
<layout suffix=".">
<group delimiter=". ">
<text macro="contributors"/>
<text macro="date"/>
<text macro="title"/>
</group>
<text macro="description"/>
<text macro="secondary-contributors" prefix=". "/>
<text macro="container-title" prefix=". "/>
<text macro="container-contributors"/>
<text macro="edition"/>
<text macro="locators-chapter"/>
<text macro="collection-title-journal" prefix=", " suffix=", "/>
<text macro="locators"/>
<text macro="collection-title" prefix=". "/>
<text macro="issue"/>
<text macro="locators-article"/>
<text macro="access" prefix=". "/>
</layout>
</bibliography>
</style>

View file

@ -368,10 +368,25 @@ $endif$
$if(csl-refs)$
\newlength{\cslhangindent}
\setlength{\cslhangindent}{1.5em}
\newenvironment{cslreferences}%
{$if(csl-hanging-indent)$\setlength{\parindent}{0pt}%
\everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces$endif$}%
{\par}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newenvironment{CSLReferences}[3] % #1 hanging-ident, #2 entry sp
{% don't indent paragraphs
\setlength{\parindent}{0pt}
% turn on hanging indent if param 1 is 1
\ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi
% set line spacing
% set entry spacing
\ifnum #2 > 0
\setlength{\parskip}{#3\baselineskip}
\fi
}%
{}
\usepackage{calc} % for \widthof, \maxof
\newcommand{\CSLBlock}[1]{#1\hfill\break}
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\maxof{\widthof{#1}}{\csllabelwidth}}{#1}}
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth}{#1}}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
$endif$
$if(title)$

View file

@ -121,3 +121,27 @@ $endif$
$if(displaymath-css)$
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
$endif$
$if(csl-css)$
div.csl-bib-body { }
div.csl-entry {
clear: both;
$if(csl-entry-spacing)$
margin-bottom: $csl-entry-spacing$;
$endif$
}
.hanging div.csl-entry {
margin-left:2em;
text-indent:-2em;
}
div.csl-left-margin {
min-width:2em;
float:left;
}
div.csl-right-inline {
margin-left:2em;
padding-left:1em;
}
div.csl-indent {
margin-left: 2em;
}
$endif$

View file

@ -5,7 +5,7 @@ Priority: optional
Architecture: ARCHITECTURE
Installed-Size: INSTALLED_SIZE
Depends: libc6 (>= 2.13), libgmp10, zlib1g (>= 1:1.1.4)
Replaces: pandoc-data, pandoc-citeproc
Replaces: pandoc-data
Suggests: texlive-latex-recommended, texlive-xetex,
texlive-fonts-recommended
Maintainer: John MacFarlane <jgm@berkeley.edu>

View file

@ -16,10 +16,10 @@ ghc --version
cabal v2-update
cabal v2-clean
cabal v2-configure --enable-tests -f-export-dynamic -fstatic -fembed_data_files -fbibutils --enable-executable-static --ghc-options '-optc-Os -optl=-pthread -split-sections' . pandoc-citeproc
cabal v2-build . pandoc-citeproc
cabal v2-test -j1 . pandoc-citeproc
for f in $(find dist-newstyle -name 'pandoc*' -type f -perm /400); do cp $f /artifacts/; done
cabal v2-configure --enable-tests -f-export-dynamic -fstatic -fembed_data_files -fbibutils --enable-executable-static --ghc-options '-optc-Os -optl=-pthread -split-sections' pandoc
cabal v2-build
cabal v2-test -j1
for f in $(find dist-newstyle -name 'pandoc' -type f -perm /400); do cp $f /artifacts/; done
# make deb
@ -35,21 +35,14 @@ mkdir -p $DEST/bin
mkdir -p $DEST/share/man/man1
mkdir -p $DEST/share/doc/pandoc
mkdir -p $DEST/share/doc/pandoc-citeproc
find $DIST -type d | xargs chmod 755
cp $ARTIFACTS/pandoc $DEST/bin/
cp $ARTIFACTS/pandoc-citeproc $DEST/bin/
strip $DEST/bin/pandoc
strip $DEST/bin/pandoc-citeproc
cp /mnt/man/pandoc.1 $DEST/share/man/man1/pandoc.1
$ARTIFACTS/pandoc-citeproc --man > $DEST/share/man/man1/pandoc-citeproc.1
gzip -9 $DEST/share/man/man1/pandoc.1
gzip -9 $DEST/share/man/man1/pandoc-citeproc.1
cp /mnt/COPYRIGHT $COPYRIGHT
echo "" >> $COPYRIGHT
echo "pandoc-citeproc" >> $COPYRIGHT
$ARTIFACTS/pandoc-citeproc --license >> $COPYRIGHT
INSTALLED_SIZE=$(du -k -s $DEST | awk '{print $1}')
mkdir $DIST/DEBIAN
@ -70,13 +63,10 @@ cd $ARTIFACTS
rm -rf $TARGET
mkdir $TARGET
mkdir $TARGET/bin $TARGET/share $TARGET/share/man $TARGET/share/man/man1
./pandoc-citeproc --man > $TARGET/share/man/man1/pandoc-citeproc.1
cp /mnt/man/pandoc.1 $TARGET/share/man/man1
mv pandoc pandoc-citeproc $TARGET/bin
mv pandoc $TARGET/bin
strip $TARGET/bin/pandoc
strip $TARGET/bin/pandoc-citeproc
gzip -9 $TARGET/share/man/man1/pandoc.1
gzip -9 $TARGET/share/man/man1/pandoc-citeproc.1
tar cvzf $TARGET-linux-amd64.tar.gz $TARGET
rm -r $TARGET

View file

@ -6,9 +6,8 @@ ALL=$(BASE)-macOS.pkg $(BASE)-macOS.zip
all: $(ALL) notarize
signed.txt: $(DEST)
chmod +x $(DEST)/bin/pandoc $(DEST)/bin/pandoc-citeproc
chmod +x $(DEST)/bin/pandoc
codesign --force --options runtime -s "5U2WKE6DES" $(DEST)/bin/pandoc
codesign --force --options runtime -s "5U2WKE6DES" $(DEST)/bin/pandoc-citeproc
echo "SIGNED" > signed.txt
pandoc.pkg: signed.txt

View file

@ -180,6 +180,9 @@ data-files:
data/bash_completion.tpl
-- jats csl
data/jats.csl
-- citeproc
data/default.csl
citeproc/biblatex-localization/*.lbx.strings
-- documentation
MANUAL.txt, COPYRIGHT
extra-source-files:
@ -201,6 +204,9 @@ extra-source-files:
test/bodybg.gif
test/*.native
test/command/*.md
test/command/*.csl
test/command/biblio.bib
test/command/biblatex-examples.bib
test/command/A.txt
test/command/B.txt
test/command/C.txt
@ -397,6 +403,7 @@ library
blaze-markup >= 0.8 && < 0.9,
bytestring >= 0.9 && < 0.11,
case-insensitive >= 1.2 && < 1.3,
citeproc >= 0.0 && < 0.1,
commonmark >= 0.1.0.2 && < 0.2,
commonmark-extensions >= 0.2 && < 0.3,
commonmark-pandoc >= 0.2 && < 0.3,
@ -409,6 +416,7 @@ library
doctemplates >= 0.8.2 && < 0.9,
emojis >= 0.1 && < 0.2,
exceptions >= 0.8 && < 0.11,
file-embed >= 0.0 && < 0.1,
filepath >= 1.1 && < 1.5,
haddock-library >= 1.8 && < 1.10,
hslua >= 1.1 && < 1.3,
@ -457,7 +465,6 @@ library
build-depends: unix >= 2.4 && < 2.8
if flag(embed_data_files)
cpp-options: -DEMBED_DATA_FILES
build-depends: file-embed >= 0.0 && < 0.1
other-modules: Text.Pandoc.Data
if os(windows)
cpp-options: -D_WINDOWS
@ -495,6 +502,8 @@ library
Text.Pandoc.Readers.Markdown,
Text.Pandoc.Readers.CommonMark,
Text.Pandoc.Readers.Creole,
Text.Pandoc.Readers.BibTeX,
Text.Pandoc.Readers.CslJson,
Text.Pandoc.Readers.MediaWiki,
Text.Pandoc.Readers.Vimwiki,
Text.Pandoc.Readers.RST,
@ -553,6 +562,7 @@ library
Text.Pandoc.Writers.FB2,
Text.Pandoc.Writers.TEI,
Text.Pandoc.Writers.Muse,
Text.Pandoc.Writers.CslJson,
Text.Pandoc.Writers.Math,
Text.Pandoc.Writers.Shared,
Text.Pandoc.Writers.OOXML,
@ -572,7 +582,8 @@ library
Text.Pandoc.Emoji,
Text.Pandoc.ImageSize,
Text.Pandoc.BCP47,
Text.Pandoc.Class
Text.Pandoc.Class,
Text.Pandoc.Citeproc
other-modules: Text.Pandoc.App.CommandLineOptions,
Text.Pandoc.App.FormatHeuristics,
Text.Pandoc.App.Opt,
@ -651,6 +662,12 @@ library
Text.Pandoc.Translations,
Text.Pandoc.Slides,
Text.Pandoc.Image,
Text.Pandoc.Citeproc.BibTeX,
Text.Pandoc.Citeproc.CslJson,
Text.Pandoc.Citeproc.Data,
Text.Pandoc.Citeproc.Locator,
Text.Pandoc.Citeproc.MetaValue,
Text.Pandoc.Citeproc.Util,
Paths_pandoc
autogen-modules: Paths_pandoc
buildable: True

View file

@ -76,15 +76,6 @@ convertWithOpts opts = do
mapM_ (UTF8.hPutStrLn stdout) (fromMaybe ["-"] $ optInputFiles opts)
exitSuccess
let isPandocCiteproc (JSONFilter f) = takeBaseName f == "pandoc-citeproc"
isPandocCiteproc _ = False
-- --bibliography implies -F pandoc-citeproc for backwards compatibility:
let needsCiteproc = isJust (lookupMeta "bibliography"
(optMetadata opts)) &&
optCiteMethod opts `notElem` [Natbib, Biblatex] &&
not (any isPandocCiteproc filters)
let filters' = filters ++ [ JSONFilter "pandoc-citeproc" | needsCiteproc ]
let sources = case optInputFiles opts of
Just xs | not (optIgnoreArgs opts) -> xs
_ -> ["-"]
@ -170,7 +161,14 @@ convertWithOpts opts = do
let writerName = outputWriterName outputSettings
let writerOptions = outputWriterOptions outputSettings
let standalone = optStandalone opts || not (isTextFormat format) || pdfOutput
let bibOutput = writerName == "bibtex" ||
writerName == "biblatex" ||
writerName == "csljson"
let standalone = optStandalone opts ||
not (isTextFormat format) ||
pdfOutput ||
bibOutput
-- We don't want to send output to the terminal if the user
-- does 'pandoc -t docx input.txt'; though we allow them to
@ -272,6 +270,13 @@ convertWithOpts opts = do
setNoCheckCertificate (optNoCheckCertificate opts)
let isPandocCiteproc (JSONFilter f) = takeBaseName f == "pandoc-citeproc"
isPandocCiteproc _ = False
when (any isPandocCiteproc filters) $
report $ Deprecated "pandoc-citeproc filter"
"Use --citeproc instead."
doc <- sourceToDoc sources >>=
( (if isJust (optExtractMedia opts)
then fillMediaBag
@ -279,7 +284,7 @@ convertWithOpts opts = do
>=> return . adjustMetadata (metadataFromFile <>)
>=> return . adjustMetadata (<> metadata)
>=> applyTransforms transforms
>=> applyFilters readerOpts filters' [T.unpack format]
>=> applyFilters readerOpts filters [T.unpack format]
>=> maybe return extractMedia (optExtractMedia opts)
)

View file

@ -656,6 +656,12 @@ options =
"all|none|best")
"" -- "Starting number for sections, subsections, etc."
, Option "C" ["citeproc"]
(NoArg
(\opt -> return opt { optFilters =
optFilters opt ++ [CiteprocFilter] }))
"" -- "Process citations"
, Option "" ["bibliography"]
(ReqArg
(\arg opt -> return opt{ optMetadata =

View file

@ -74,5 +74,6 @@ formatFromFilePath x =
".xhtml" -> Just "html"
".ipynb" -> Just "ipynb"
".csv" -> Just "csv"
".bib" -> Just "biblatex"
['.',y] | y `elem` ['1'..'9'] -> Just "man"
_ -> Nothing

View file

@ -294,6 +294,11 @@ doOpt (k',v) = do
parseYAML v >>= \x -> return (\o -> o{ optColumns = x })
"filters" ->
parseYAML v >>= \x -> return (\o -> o{ optFilters = optFilters o <> x })
"citeproc" ->
parseYAML v >>= \x ->
if x
then return (\o -> o{ optFilters = CiteprocFilter : optFilters o })
else return id
"email-obfuscation" ->
parseYAML v >>= \x -> return (\o -> o{ optEmailObfuscation = x })
"identifier-prefix" ->

492
src/Text/Pandoc/Citeproc.hs Normal file
View file

@ -0,0 +1,492 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveTraversable #-}
module Text.Pandoc.Citeproc
( processCitations )
where
import Citeproc as Citeproc
import Citeproc.Pandoc ()
import Text.Pandoc.Citeproc.Locator (parseLocator)
import Text.Pandoc.Citeproc.CslJson (cslJsonToReferences)
import Text.Pandoc.Citeproc.BibTeX (readBibtexString, Variant(..))
import Text.Pandoc.Citeproc.MetaValue (metaValueToReference, metaValueToText)
import Data.ByteString (ByteString)
import qualified Data.ByteString.Lazy as L
import Text.Pandoc.Definition as Pandoc
import Text.Pandoc.Walk
import Text.Pandoc.Builder as B
import Text.Pandoc (PandocMonad(..), PandocError(..), readMarkdown,
readDataFile, ReaderOptions(..), pandocExtensions,
report, LogMessage(..), fetchItem)
import Text.Pandoc.Shared (stringify, ordNub, blocksToInlines)
import qualified Text.Pandoc.UTF8 as UTF8
import Data.Aeson (eitherDecode)
import Data.Default
import Data.Ord ()
import qualified Data.Map as M
import qualified Data.Set as Set
import Data.Char (isPunctuation)
import Data.Text (Text)
import qualified Data.Text as T
import Control.Monad.State
import qualified Data.Sequence as Seq
import qualified Data.Foldable as Foldable
import System.FilePath
import Control.Applicative
import Control.Monad.Except
import Data.Maybe (mapMaybe, fromMaybe)
import Safe (lastMay, initSafe)
-- import Debug.Trace as Trace (trace, traceShowId)
processCitations :: PandocMonad m => Pandoc -> m Pandoc
processCitations (Pandoc meta bs) = do
let cslfile = (lookupMeta "csl" meta <|> lookupMeta "citation-style" meta)
>>= metaValueToText
let getFile fp = catchError (fst <$> fetchItem fp)
(\e -> catchError (readDataFile
(T.unpack $ "csl/" <> fp))
(\_ -> throwError e))
let getCslDefault = readDataFile "default.csl"
cslContents <- UTF8.toText <$> maybe getCslDefault getFile cslfile
let abbrevFile = lookupMeta "citation-abbreviations" meta >>= metaValueToText
mbAbbrevs <- case abbrevFile of
Nothing -> return Nothing
Just fp -> do
rawAbbr <- getFile fp
case eitherDecode (L.fromStrict rawAbbr) of
Left err -> throwError $ PandocCiteprocError $
CiteprocParseError $
"Could not parse abbreviations file " <> fp
<> "\n" <> T.pack err
Right abbr -> return $ Just abbr
let getParentStyle url = UTF8.toText . fst <$> fetchItem url
-- TODO check .csl directory if not found
styleRes <- Citeproc.parseStyle getParentStyle cslContents
style <-
case styleRes of
Left err -> throwError $ PandocAppError $ prettyCiteprocError err
Right style -> return style{ styleAbbreviations = mbAbbrevs }
let mblang = parseLang <$>
((lookupMeta "lang" meta <|> lookupMeta "locale" meta) >>= metaValueToText)
let locale = Citeproc.mergeLocales mblang style
let getCiteId (Cite cs _) = Set.fromList $ map B.citationId cs
getCiteId _ = mempty
let metanocites = lookupMeta "nocite" meta
let meta' = deleteMeta "nocite" meta
let nocites = maybe mempty (query getCiteId) metanocites
let citeIds = query getCiteId (Pandoc meta bs)
let idpred = if "*" `Set.member` nocites
then const True
else (\c -> c `Set.member` citeIds ||
c `Set.member` nocites)
refs <- map (linkifyVariables . legacyDateRanges) <$>
case lookupMeta "references" meta of
Just (MetaList rs) -> return $ mapMaybe metaValueToReference rs
_ ->
case lookupMeta "bibliography" meta of
Just (MetaList xs) ->
mconcat <$>
mapM (getRefsFromBib locale idpred)
(mapMaybe metaValueToText xs)
Just x ->
case metaValueToText x of
Just fp -> getRefsFromBib locale idpred fp
Nothing -> return []
Nothing -> return []
let otherIdsMap = foldr (\ref m ->
case T.words . extractText <$>
M.lookup "other-ids" (referenceVariables ref) of
Nothing -> m
Just ids -> foldr
(\id' ->
M.insert id' (referenceId ref)) m ids)
M.empty refs
-- TODO: issue warning if no refs defined
let citations = getCitations locale otherIdsMap $ Pandoc meta' bs
let linkCites = maybe False truish $ lookupMeta "link-citations" meta
let opts = defaultCiteprocOptions{ linkCitations = linkCites }
let result = Citeproc.citeproc opts style (localeLanguage locale)
refs citations
mapM_ (report . CiteprocWarning) (resultWarnings result)
let sopts = styleOptions style
let classes = "references" : -- TODO remove this or keep for compatibility?
"csl-bib-body" :
["hanging-indent" | styleHangingIndent sopts]
let refkvs = (case styleEntrySpacing sopts of
Just es | es > 0 -> (("entry-spacing",T.pack $ show es):)
_ -> id) .
(case styleLineSpacing sopts of
Just ls | ls > 1 -> (("line-spacing",T.pack $ show ls):)
_ -> id) $ []
let bibs = mconcat $ map (\(ident, out) ->
B.divWith ("ref-" <> ident,["csl-entry"],[]) . B.para $
walk (convertQuotes locale) out)
(resultBibliography result)
let moveNotes = maybe True truish $
lookupMeta "notes-after-punctuation" meta
let cits = map (walk (convertQuotes locale)) $
resultCitations result
let fixQuotes = case localePunctuationInQuote locale of
Just True ->
B.toList . movePunctuationInsideQuotes . B.fromList
_ -> id
let Pandoc meta'' bs' =
maybe id (setMeta "nocite") metanocites $
walk (fixQuotes . mvPunct moveNotes locale) $ walk deNote $
evalState (walkM insertResolvedCitations $ Pandoc meta' bs)
$ cits
return $ Pandoc meta'' $ insertRefs refkvs classes meta'' (B.toList bibs) bs'
getRefsFromBib :: PandocMonad m
=> Locale -> (Text -> Bool) -> Text -> m [Reference Inlines]
getRefsFromBib locale idpred t = do
let fp = T.unpack t
raw <- readFileStrict fp
case formatFromExtension fp of
Just f -> getRefs locale f idpred raw
Nothing -> throwError $ PandocAppError $
"Could not deterine bibliography format for " <> t
getRefs :: PandocMonad m
=> Locale
-> BibFormat
-> (Text -> Bool)
-> ByteString
-> m [Reference Inlines]
getRefs locale format idpred raw =
case format of
Format_bibtex ->
either (throwError . PandocAppError . T.pack . show) return .
readBibtexString Bibtex locale idpred . UTF8.toText $ raw
Format_biblatex ->
either (throwError . PandocAppError . T.pack . show) return .
readBibtexString Biblatex locale idpred . UTF8.toText $ raw
Format_json ->
either (throwError . PandocAppError . T.pack)
(return . filter (idpred . unItemId . referenceId)) .
cslJsonToReferences $ raw
Format_yaml -> do
Pandoc meta _ <-
readMarkdown
def{ readerExtensions = pandocExtensions }
(UTF8.toText raw)
case lookupMeta "references" meta of
Just (MetaList rs) ->
return $ filter (idpred . unItemId . referenceId)
$ mapMaybe metaValueToReference rs
_ -> throwError $ PandocAppError "No references field"
-- localized quotes
convertQuotes :: Locale -> Inline -> Inline
convertQuotes locale (Quoted qt ils) =
case (M.lookup openterm terms, M.lookup closeterm terms) of
(Just ((_,oq):_), Just ((_,cq):_)) ->
Span ("",[],[]) (Str oq : ils ++ [Str cq])
_ -> Quoted qt ils
where
terms = localeTerms locale
openterm = case qt of
DoubleQuote -> "open-quote"
SingleQuote -> "open-inner-quote"
closeterm = case qt of
DoubleQuote -> "close-quote"
SingleQuote -> "close-inner-quote"
convertQuotes _ x = x
-- assumes we walk in same order as query
insertResolvedCitations :: Inline -> State [Inlines] Inline
insertResolvedCitations (Cite cs ils) = do
resolved <- get
case resolved of
[] -> return (Cite cs ils)
(x:xs) -> do
put xs
return $ Cite cs (B.toList x)
insertResolvedCitations x = return x
getCitations :: Locale
-> M.Map Text ItemId
-> Pandoc
-> [Citeproc.Citation Inlines]
getCitations locale otherIdsMap = Foldable.toList . query getCitation
where
getCitation (Cite cs _fallback) = Seq.singleton $
Citeproc.Citation { Citeproc.citationId = Nothing
, Citeproc.citationNoteNumber =
case cs of
[] -> Nothing
(Pandoc.Citation{ Pandoc.citationNoteNum = n }:
_) | n > 0 -> Just n
| otherwise -> Nothing
, Citeproc.citationItems =
fromPandocCitations locale otherIdsMap cs
}
getCitation _ = mempty
fromPandocCitations :: Locale
-> M.Map Text ItemId
-> [Pandoc.Citation]
-> [CitationItem Inlines]
fromPandocCitations locale otherIdsMap = concatMap go
where
go c =
let (loclab, suffix) = parseLocator locale (citationSuffix c)
(mblab, mbloc) = case loclab of
Just (loc, lab) -> (Just loc, Just lab)
Nothing -> (Nothing, Nothing)
cit = CitationItem
{ citationItemId = fromMaybe
(ItemId $ Pandoc.citationId c)
(M.lookup (Pandoc.citationId c) otherIdsMap)
, citationItemLabel = mblab
, citationItemLocator = mbloc
, citationItemType = NormalCite
, citationItemPrefix = case citationPrefix c of
[] -> Nothing
ils -> Just $ B.fromList ils <>
B.space
, citationItemSuffix = case suffix of
[] -> Nothing
ils -> Just $ B.fromList ils
}
in if Pandoc.citationId c == "*"
then []
else
case citationMode c of
AuthorInText -> [ cit{ citationItemType = AuthorOnly
, citationItemSuffix = Nothing }
, cit{ citationItemType =
Citeproc.SuppressAuthor
, citationItemPrefix = Nothing } ]
NormalCitation -> [ cit ]
Pandoc.SuppressAuthor
-> [ cit{ citationItemType =
Citeproc.SuppressAuthor } ]
data BibFormat =
Format_biblatex
| Format_bibtex
| Format_json
| Format_yaml
deriving (Show, Eq, Ord)
formatFromExtension :: FilePath -> Maybe BibFormat
formatFromExtension fp = case dropWhile (== '.') $ takeExtension fp of
"biblatex" -> Just Format_biblatex
"bibtex" -> Just Format_bibtex
"bib" -> Just Format_biblatex
"json" -> Just Format_json
"yaml" -> Just Format_yaml
_ -> Nothing
isNote :: Inline -> Bool
isNote (Note _) = True
isNote (Cite _ [Note _]) = True
-- the following allows citation styles that are "in-text" but use superscript
-- references to be treated as if they are "notes" for the purposes of moving
-- the citations after trailing punctuation (see <https://github.com/jgm/pandoc-citeproc/issues/382>):
isNote (Cite _ [Superscript _]) = True
isNote _ = False
isSpacy :: Inline -> Bool
isSpacy Space = True
isSpacy SoftBreak = True
isSpacy _ = False
mvPunct :: Bool -> Locale -> [Inline] -> [Inline]
mvPunct moveNotes locale (x : xs)
| isSpacy x = x : mvPunct moveNotes locale xs
-- 'x [^1],' -> 'x,[^1]'
mvPunct moveNotes locale (q : s : x : ys)
| isSpacy s
, isNote x
= let spunct = T.takeWhile isPunctuation $ stringify ys
in if moveNotes
then if T.null spunct
then q : x : mvPunct moveNotes locale ys
else q : Str spunct : x : mvPunct moveNotes locale
(B.toList
(dropTextWhile isPunctuation (B.fromList ys)))
else q : x : mvPunct moveNotes locale ys
-- 'x[^1],' -> 'x,[^1]'
mvPunct moveNotes locale (Cite cs ils : ys)
| not (null ils)
, isNote (last ils)
, startWithPunct ys
, moveNotes
= let s = stringify ys
spunct = T.takeWhile isPunctuation s
in Cite cs (init ils
++ [Str spunct | not (endWithPunct False (init ils))]
++ [last ils]) :
mvPunct moveNotes locale
(B.toList (dropTextWhile isPunctuation (B.fromList ys)))
mvPunct moveNotes locale (s : x : ys) | isSpacy s, isNote x =
x : mvPunct moveNotes locale ys
mvPunct moveNotes locale (s : x@(Cite _ (Superscript _ : _)) : ys)
| isSpacy s = x : mvPunct moveNotes locale ys
mvPunct moveNotes locale (Cite cs ils : Str "." : ys)
| "." `T.isSuffixOf` (stringify ils)
= Cite cs ils : mvPunct moveNotes locale ys
mvPunct moveNotes locale (x:xs) = x : mvPunct moveNotes locale xs
mvPunct _ _ [] = []
endWithPunct :: Bool -> [Inline] -> Bool
endWithPunct _ [] = False
endWithPunct onlyFinal xs@(_:_) =
case reverse (T.unpack $ stringify xs) of
[] -> True
-- covers .), .", etc.:
(d:c:_) | isPunctuation d
&& not onlyFinal
&& isEndPunct c -> True
(c:_) | isEndPunct c -> True
| otherwise -> False
where isEndPunct c = c `elem` (".,;:!?" :: String)
startWithPunct :: [Inline] -> Bool
startWithPunct ils =
case T.uncons (stringify ils) of
Just (c,_) -> c `elem` (".,;:!?" :: [Char])
Nothing -> False
truish :: MetaValue -> Bool
truish (MetaBool t) = t
truish (MetaString s) = isYesValue (T.toLower s)
truish (MetaInlines ils) = isYesValue (T.toLower (stringify ils))
truish (MetaBlocks [Plain ils]) = isYesValue (T.toLower (stringify ils))
truish _ = False
isYesValue :: Text -> Bool
isYesValue "t" = True
isYesValue "true" = True
isYesValue "yes" = True
isYesValue _ = False
-- if document contains a Div with id="refs", insert
-- references as its contents. Otherwise, insert references
-- at the end of the document in a Div with id="refs"
insertRefs :: [(Text,Text)] -> [Text] -> Meta -> [Block] -> [Block] -> [Block]
insertRefs _ _ _ [] bs = bs
insertRefs refkvs refclasses meta refs bs =
if isRefRemove meta
then bs
else case runState (walkM go bs) False of
(bs', True) -> bs'
(_, False)
-> case refTitle meta of
Nothing ->
case reverse bs of
Header lev (id',classes,kvs) ys : xs ->
reverse xs ++
[Header lev (id',addUnNumbered classes,kvs) ys,
Div ("refs",refclasses,refkvs) refs]
_ -> bs ++ [refDiv]
Just ils -> bs ++
[Header 1 ("bibliography", ["unnumbered"], []) ils,
refDiv]
where
refDiv = Div ("refs", refclasses, refkvs) refs
addUnNumbered cs = "unnumbered" : [c | c <- cs, c /= "unnumbered"]
go :: Block -> State Bool Block
go (Div ("refs",cs,kvs) xs) = do
put True
-- refHeader isn't used if you have an explicit references div
let cs' = ordNub $ cs ++ refclasses
return $ Div ("refs",cs',kvs) (xs ++ refs)
go x = return x
refTitle :: Meta -> Maybe [Inline]
refTitle meta =
case lookupMeta "reference-section-title" meta of
Just (MetaString s) -> Just [Str s]
Just (MetaInlines ils) -> Just ils
Just (MetaBlocks [Plain ils]) -> Just ils
Just (MetaBlocks [Para ils]) -> Just ils
_ -> Nothing
isRefRemove :: Meta -> Bool
isRefRemove meta =
maybe False truish $ lookupMeta "suppress-bibliography" meta
legacyDateRanges :: Reference Inlines -> Reference Inlines
legacyDateRanges ref =
ref{ referenceVariables = M.map go $ referenceVariables ref }
where
go (DateVal d)
| null (dateParts d)
, Just lit <- dateLiteral d
= case T.splitOn "_" lit of
[x,y] -> case Citeproc.rawDateEDTF (x <> "/" <> y) of
Just d' -> DateVal d'
Nothing -> DateVal d
_ -> DateVal d
go x = x
linkifyVariables :: Reference Inlines -> Reference Inlines
linkifyVariables ref =
ref{ referenceVariables = M.mapWithKey go $ referenceVariables ref }
where
go "URL" x = tolink "https://" x
go "DOI" x = tolink "https://doi.org/" x
go "ISBN" x = tolink "https://worldcat.org/isbn/" x
go "PMID" x = tolink "https://www.ncbi.nlm.nih.gov/pubmed/" x
go "PMCID" x = tolink "https://www.ncbi.nlm.nih.gov/pmc/articles/" x
go _ x = x
tolink pref x = let x' = extractText x
x'' = if "://" `T.isInfixOf` x'
then x'
else pref <> x'
in FancyVal (B.link x'' "" (B.str x'))
extractText :: Val Inlines -> Text
extractText (TextVal x) = x
extractText (FancyVal x) = toText x
extractText (NumVal n) = T.pack (show n)
extractText _ = mempty
deNote :: Inline -> Inline
deNote (Note bs) = Note $ walk go bs
where
go (Note bs')
= Span ("",[],[]) (Space : Str "(" :
(removeFinalPeriod
(blocksToInlines bs')) ++ [Str ")"])
go x = x
deNote x = x
-- Note: we can't use dropTextWhileEnd because this would
-- remove the final period on abbreviations like Ibid.
-- But removing a final Str "." is safe.
removeFinalPeriod :: [Inline] -> [Inline]
removeFinalPeriod ils =
case lastMay ils of
Just (Str ".") -> initSafe ils
_ -> ils

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,37 @@
{-# LANGUAGE OverloadedStrings #-}
module Text.Pandoc.Citeproc.CslJson
( cslJsonToReferences )
where
import Citeproc.CslJson
import Citeproc.Types
import Control.Monad.Identity (runIdentity)
import Data.Aeson (eitherDecodeStrict')
import Data.ByteString (ByteString)
import Text.Pandoc.Builder as B
import Data.Text (Text)
fromCslJson :: CslJson Text -> Inlines
fromCslJson (CslText t) = B.text t
fromCslJson CslEmpty = mempty
fromCslJson (CslConcat x y) = fromCslJson x <> fromCslJson y
fromCslJson (CslQuoted x) = B.doubleQuoted (fromCslJson x)
fromCslJson (CslItalic x) = B.emph (fromCslJson x)
fromCslJson (CslNormal x) = fromCslJson x -- TODO?
fromCslJson (CslBold x) = B.strong (fromCslJson x)
fromCslJson (CslUnderline x) = B.underline (fromCslJson x)
fromCslJson (CslNoDecoration x) =
B.spanWith ("",["nodecoration"],[]) (fromCslJson x)
fromCslJson (CslSmallCaps x) = B.smallcaps (fromCslJson x)
fromCslJson (CslBaseline x) = fromCslJson x
fromCslJson (CslSub x) = B.subscript (fromCslJson x)
fromCslJson (CslSup x) = B.superscript (fromCslJson x)
fromCslJson (CslNoCase x) = B.spanWith ("",["nocase"],[]) (fromCslJson x)
fromCslJson (CslDiv t x) = B.spanWith ("",["csl-" <> t],[]) (fromCslJson x)
cslJsonToReferences :: ByteString -> Either String [Reference Inlines]
cslJsonToReferences raw =
case eitherDecodeStrict' raw of
Left e -> Left e
Right cslrefs -> Right $
map (runIdentity . traverse (return . fromCslJson)) cslrefs

View file

@ -0,0 +1,31 @@
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module Text.Pandoc.Citeproc.Data
(biblatexStringMap)
where
import Data.FileEmbed
import Data.ByteString (ByteString)
import qualified Data.Map as M
import qualified Data.Text.Encoding as TE
import qualified Data.Text as T
import Data.Text (Text)
import Text.Pandoc.Citeproc.Util (toIETF)
import Citeproc (Lang(..), parseLang)
biblatexLocalizations :: [(FilePath, ByteString)]
biblatexLocalizations = $(embedDir "citeproc/biblatex-localization")
-- biblatex localization keys, from files at
-- http://github.com/plk/biblatex/tree/master/tex/latex/biblatex/lbx
biblatexStringMap :: M.Map Text (M.Map Text (Text, Text))
biblatexStringMap = foldr go mempty biblatexLocalizations
where
go (fp, bs) =
let Lang lang _ = parseLang (toIETF $ T.takeWhile (/= '.') $ T.pack fp)
ls = T.lines $ TE.decodeUtf8 bs
in if length ls > 4
then M.insert lang (toStringMap $ map (T.splitOn "|") ls)
else id
toStringMap = foldr go' mempty
go' [term, x, y] = M.insert term (x, y)
go' _ = id

View file

@ -0,0 +1,279 @@
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
module Text.Pandoc.Citeproc.Locator
( parseLocator )
where
import Citeproc.Types
import Data.Text (Text)
import qualified Data.Text as T
import Text.Parsec
import Text.Pandoc.Definition
import Text.Pandoc.Parsing (romanNumeral)
import Text.Pandoc.Shared (stringify)
import Control.Monad (mzero)
import qualified Data.Map as M
import Data.Char (isSpace, isPunctuation, isDigit)
parseLocator :: Locale -> [Inline] -> (Maybe (Text, Text), [Inline])
parseLocator locale inp =
case parse (pLocatorWords (toLocatorMap locale)) "suffix" $ splitInp inp of
Right r -> r
Left _ -> (Nothing, inp)
splitInp :: [Inline] -> [Inline]
splitInp = splitStrWhen (\c -> isSpace c || (isPunctuation c && c /= ':'))
--
-- Locator parsing
--
type LocatorParser = Parsec [Inline] ()
pLocatorWords :: LocatorMap
-> LocatorParser (Maybe (Text, Text), [Inline])
pLocatorWords locMap = do
optional $ pMatchChar "," (== ',')
optional pSpace
(la, lo) <- pLocatorDelimited locMap <|> pLocatorIntegrated locMap
s <- getInput -- rest is suffix
-- need to trim, otherwise "p. 9" and "9" will have 'different' locators later on
-- i.e. the first one will be " 9"
return $
if T.null la && T.null lo
then (Nothing, s)
else (Just (la, T.strip lo), s)
pLocatorDelimited :: LocatorMap -> LocatorParser (Text, Text)
pLocatorDelimited locMap = try $ do
_ <- pMatchChar "{" (== '{')
skipMany pSpace -- gobble pre-spaces so label doesn't try to include them
(la, _) <- pLocatorLabelDelimited locMap
-- we only care about balancing {} and [] (because of the outer [] scope);
-- the rest can be anything
let inner = do { t <- anyToken; return (True, stringify t) }
gs <- many (pBalancedBraces [('{','}'), ('[',']')] inner)
_ <- pMatchChar "}" (== '}')
let lo = T.concat $ map snd gs
return (la, lo)
pLocatorLabelDelimited :: LocatorMap -> LocatorParser (Text, Bool)
pLocatorLabelDelimited locMap
= pLocatorLabel' locMap lim <|> return ("page", True)
where
lim = stringify <$> anyToken
pLocatorIntegrated :: LocatorMap -> LocatorParser (Text, Text)
pLocatorIntegrated locMap = try $ do
(la, wasImplicit) <- pLocatorLabelIntegrated locMap
-- if we got the label implicitly, we have presupposed the first one is
-- going to have a digit, so guarantee that. You _can_ have p. (a)
-- because you specified it.
let modifier = if wasImplicit
then requireDigits
else requireRomansOrDigits
g <- try $ pLocatorWordIntegrated (not wasImplicit) >>= modifier
gs <- many (try $ pLocatorWordIntegrated False >>= modifier)
let lo = T.concat (g:gs)
return (la, lo)
pLocatorLabelIntegrated :: LocatorMap -> LocatorParser (Text, Bool)
pLocatorLabelIntegrated locMap
= pLocatorLabel' locMap lim <|> (lookAhead digital >> return ("page", True))
where
lim = try $ pLocatorWordIntegrated True >>= requireRomansOrDigits
digital = try $ pLocatorWordIntegrated True >>= requireDigits
pLocatorLabel' :: LocatorMap -> LocatorParser Text
-> LocatorParser (Text, Bool)
pLocatorLabel' locMap lim = go ""
where
-- grow the match string until we hit the end
-- trying to find the largest match for a label
go acc = try $ do
-- advance at least one token each time
-- the pathological case is "p.3"
t <- anyToken
ts <- manyTill anyToken (try $ lookAhead lim)
let s = acc <> stringify (t:ts)
case M.lookup (T.strip s) locMap of
-- try to find a longer one, or return this one
Just l -> go s <|> return (l, False)
Nothing -> go s
-- hard requirement for a locator to have some real digits in it
requireDigits :: (Bool, Text) -> LocatorParser Text
requireDigits (_, s) = if not (T.any isDigit s)
then Prelude.fail "requireDigits"
else return s
-- soft requirement for a sequence with some roman or arabic parts
-- (a)(iv) -- because iv is roman
-- 1(a) -- because 1 is an actual digit
-- NOT: a, (a)-(b), hello, (some text in brackets)
requireRomansOrDigits :: (Bool, Text) -> LocatorParser Text
requireRomansOrDigits (d, s) = if not d
then Prelude.fail "requireRomansOrDigits"
else return s
pLocatorWordIntegrated :: Bool -> LocatorParser (Bool, Text)
pLocatorWordIntegrated isFirst = try $ do
punct <- if isFirst
then return ""
else (stringify <$> pLocatorSep) <|> return ""
sp <- option "" (pSpace >> return " ")
(dig, s) <- pBalancedBraces [('(',')'), ('[',']'), ('{','}')] pPageSeq
return (dig, punct <> sp <> s)
-- we want to capture: 123, 123A, C22, XVII, 33-44, 22-33; 22-11
-- 34(1), 34A(A), 34(1)(i)(i), (1)(a)
-- [17], [17]-[18], '591 [84]'
-- (because CSL cannot pull out individual pages/sections
-- to wrap in braces on a per-style basis)
pBalancedBraces :: [(Char, Char)]
-> LocatorParser (Bool, Text)
-> LocatorParser (Bool, Text)
pBalancedBraces braces p = try $ do
ss <- many1 surround
return $ anyWereDigitLike ss
where
except = notFollowedBy pBraces >> p
-- outer and inner
surround = foldl (\a (open, close) -> sur open close except <|> a)
except
braces
isc c = stringify <$> pMatchChar [c] (== c)
sur c c' m = try $ do
(d, mid) <- between (isc c) (isc c') (option (False, "") m)
return (d, T.cons c . flip T.snoc c' $ mid)
flattened = concatMap (\(o, c) -> [o, c]) braces
pBraces = pMatchChar "braces" (`elem` flattened)
-- YES 1, 1.2, 1.2.3
-- NO 1., 1.2. a.6
-- can't use sepBy because we want to leave trailing .s
pPageSeq :: LocatorParser (Bool, Text)
pPageSeq = oneDotTwo <|> withPeriod
where
oneDotTwo = do
u <- pPageUnit
us <- many withPeriod
return $ anyWereDigitLike (u:us)
withPeriod = try $ do
-- .2
p <- pMatchChar "." (== '.')
u <- try pPageUnit
return (fst u, stringify p <> snd u)
anyWereDigitLike :: [(Bool, Text)] -> (Bool, Text)
anyWereDigitLike as = (any fst as, T.concat $ map snd as)
pPageUnit :: LocatorParser (Bool, Text)
pPageUnit = roman <|> plainUnit
where
-- roman is a 'digit'
roman = (True,) <$> pRoman
plainUnit = do
ts <- many1 (notFollowedBy pSpace >>
notFollowedBy pLocatorPunct >>
anyToken)
let s = stringify ts
-- otherwise look for actual digits or -s
return (T.any isDigit s, s)
pRoman :: LocatorParser Text
pRoman = try $ do
tok <- anyToken
case tok of
Str t -> case parse (romanNumeral True *> eof)
"roman numeral" (T.toUpper t) of
Left _ -> mzero
Right () -> return t
_ -> mzero
pLocatorPunct :: LocatorParser Inline
pLocatorPunct = pMatchChar "punctuation" isLocatorPunct
pLocatorSep :: LocatorParser Inline
pLocatorSep = pMatchChar "locator separator" isLocatorSep
pMatchChar :: String -> (Char -> Bool) -> LocatorParser Inline
pMatchChar msg f = satisfyTok f' <?> msg
where
f' (Str (T.unpack -> [c])) = f c
f' _ = False
pSpace :: LocatorParser Inline
pSpace = satisfyTok (\t -> isSpacey t || t == Str "\160") <?> "space"
satisfyTok :: (Inline -> Bool) -> LocatorParser Inline
satisfyTok f = tokenPrim show (\sp _ _ -> sp) (\tok -> if f tok
then Just tok
else Nothing)
isSpacey :: Inline -> Bool
isSpacey Space = True
isSpacey SoftBreak = True
isSpacey _ = False
isLocatorPunct :: Char -> Bool
isLocatorPunct '-' = False -- page range
isLocatorPunct '' = False -- page range, en dash
isLocatorPunct ':' = False -- vol:page-range hack
isLocatorPunct c = isPunctuation c -- includes [{()}]
isLocatorSep :: Char -> Bool
isLocatorSep ',' = True
isLocatorSep ';' = True
isLocatorSep _ = False
splitStrWhen :: (Char -> Bool) -> [Inline] -> [Inline]
splitStrWhen _ [] = []
splitStrWhen p (Str xs : ys) = go (T.unpack xs) ++ splitStrWhen p ys
where
go [] = []
go s = case break p s of
([],[]) -> []
(zs,[]) -> [Str $ T.pack zs]
([],w:ws) -> Str (T.singleton w) : go ws
(zs,w:ws) -> Str (T.pack zs) : Str (T.singleton w) : go ws
splitStrWhen p (x : ys) = x : splitStrWhen p ys
--
-- Locator Map
--
type LocatorMap = M.Map Text Text
toLocatorMap :: Locale -> LocatorMap
toLocatorMap locale =
foldr go mempty locatorTerms
where
go tname locmap =
case M.lookup tname (localeTerms locale) of
Nothing -> locmap
Just ts -> foldr (\x -> M.insert (snd x) tname) locmap ts
locatorTerms :: [Text]
locatorTerms =
[ "book"
, "chapter"
, "column"
, "figure"
, "folio"
, "issue"
, "line"
, "note"
, "opus"
, "page"
, "number-of-pages"
, "paragraph"
, "part"
, "section"
, "sub verbo"
, "verse"
, "volume" ]

View file

@ -0,0 +1,252 @@
{-# LANGUAGE OverloadedStrings #-}
module Text.Pandoc.Citeproc.MetaValue
( referenceToMetaValue
, metaValueToReference
, metaValueToText
, metaValueToPath
)
where
import Citeproc.Types
import Text.Pandoc.Definition
import Text.Pandoc.Builder as B
import Text.Pandoc.Walk (query)
import Text.Pandoc.Shared (stringify)
import Data.Maybe
import Safe
import qualified Data.Set as Set
import qualified Data.Map as M
import qualified Data.Text as T
import Data.Text (Text)
import Text.Printf (printf)
import Control.Applicative ((<|>))
metaValueToText :: MetaValue -> Maybe Text
metaValueToText (MetaString t) = Just t
metaValueToText (MetaInlines ils) = Just $ stringify ils
metaValueToText (MetaBlocks bls) = Just $ stringify bls
metaValueToText (MetaList xs) = T.unwords <$> mapM metaValueToText xs
metaValueToText _ = Nothing
metaValueToPath :: MetaValue -> Maybe FilePath
metaValueToPath = fmap T.unpack . metaValueToText
metaValueToBool :: MetaValue -> Maybe Bool
metaValueToBool (MetaBool b) = Just b
metaValueToBool (MetaString "true") = Just True
metaValueToBool (MetaString "false") = Just False
metaValueToBool (MetaInlines ils) =
metaValueToBool (MetaString (stringify ils))
metaValueToBool _ = Nothing
referenceToMetaValue :: Reference Inlines -> MetaValue
referenceToMetaValue ref =
let ItemId id' = referenceId ref
type' = referenceType ref
in MetaMap $ M.insert "id" (MetaString id')
$ M.insert "type" (MetaString type')
$ M.map valToMetaValue
$ M.mapKeys fromVariable
$ referenceVariables ref
valToMetaValue :: Val Inlines -> MetaValue
valToMetaValue (TextVal t) = MetaString t
valToMetaValue (FancyVal ils) = MetaInlines (B.toList ils)
valToMetaValue (NumVal n) = MetaString (T.pack $ show n)
valToMetaValue (NamesVal ns) = MetaList $ map nameToMetaValue ns
valToMetaValue (DateVal d) = dateToMetaValue d
nameToMetaValue :: Name -> MetaValue
nameToMetaValue name =
MetaMap $
(maybe id (M.insert "family" . MetaString) (nameFamily name)) .
(maybe id (M.insert "given" . MetaString) (nameGiven name)) .
(maybe id (M.insert "dropping-particle" . MetaString)
(nameDroppingParticle name)) .
(maybe id (M.insert "non-dropping-particle" . MetaString)
(nameNonDroppingParticle name)) .
(maybe id (M.insert "suffix" . MetaString) (nameSuffix name)) .
(maybe id (M.insert "literal" . MetaString) (nameLiteral name)) .
(if nameCommaSuffix name
then M.insert "comma-suffix" (MetaBool True)
else id) .
(if nameStaticOrdering name
then M.insert "static-ordering" (MetaBool True)
else id)
$ mempty
dateToMetaValue :: Date -> MetaValue
dateToMetaValue date =
MetaString $
(case dateLiteral date of
Just l -> l
Nothing -> T.intercalate "/" $ map datePartsToEDTF $ dateParts date)
<> (if dateCirca date then "~" else "")
where
datePartsToEDTF (DateParts dps) =
T.pack $
(case dps of
(y:_) | y > 9999 || y < -10000 -> ('y':)
_ -> id) $
case dps of
(y:m:d:_)
| y < -1 -> printf "%05d-%02d-%02d" (y+1) m d
| otherwise -> printf "%04d-%02d-%02d" y m d
(y:m:[])
| y < -1 -> printf "%05d-%02d" (y+1) m
| otherwise -> printf "%04d-%02d" y m
(y:[])
| y < -1 -> printf "%05d" (y+1)
| otherwise -> printf "%04d" y
_ -> mempty
metaValueToReference :: MetaValue -> Maybe (Reference Inlines)
metaValueToReference (MetaMap m) = do
let m' = M.mapKeys normalizeKey m
id' <- M.lookup "id" m' >>= metaValueToText
type' <- (M.lookup "type" m' >>= metaValueToText) <|> pure ""
let m'' = M.delete "id" $ M.delete "type" m'
let vars = M.mapKeys toVariable $ M.mapWithKey metaValueToVal m''
return $ Reference { referenceId = ItemId id'
, referenceType = type'
, referenceDisambiguation = Nothing
, referenceVariables = vars }
metaValueToReference _ = Nothing
metaValueToVal :: Text -> MetaValue -> Val Inlines
metaValueToVal k v
| k `Set.member` dateVariables
= DateVal $ metaValueToDate v
| k `Set.member` nameVariables
= NamesVal $ metaValueToNames v
| k == "other-ids"
= TextVal $ fromMaybe mempty $ metaValueToText v
-- will create space-separated list
| otherwise =
case v of
MetaString t -> TextVal t
MetaInlines ils -> FancyVal (B.fromList ils)
MetaBlocks bs -> FancyVal (B.fromList $ query id bs)
MetaBool b -> TextVal (if b then "true" else "false")
MetaList _ -> TextVal mempty
MetaMap _ -> TextVal mempty
metaValueToDate :: MetaValue -> Date
metaValueToDate (MetaMap m) =
Date
{ dateParts = dateparts
, dateCirca = circa
, dateSeason = season
, dateLiteral = literal }
where
dateparts = case M.lookup "date-parts" m of
Just (MetaList xs) ->
mapMaybe metaValueToDateParts xs
Just _ -> []
Nothing ->
maybe [] (:[]) $ metaValueToDateParts (MetaMap m)
circa = fromMaybe False $
M.lookup "circa" m >>= metaValueToBool
season = M.lookup "season" m >>= metaValueToInt
literal = M.lookup "literal" m >>= metaValueToText
metaValueToDate (MetaList xs) =
Date{ dateParts = mapMaybe metaValueToDateParts xs
, dateCirca = False
, dateSeason = Nothing
, dateLiteral = Nothing }
metaValueToDate x =
fromMaybe emptyDate $ metaValueToText x >>= rawDateEDTF
metaValueToInt :: MetaValue -> Maybe Int
metaValueToInt x = metaValueToText x >>= readMay . T.unpack
metaValueToDateParts :: MetaValue -> Maybe DateParts
metaValueToDateParts (MetaList xs) =
Just $ DateParts $ map (fromMaybe 0 . metaValueToInt) xs
metaValueToDateParts (MetaMap m) =
case (M.lookup "year" m >>= metaValueToInt,
((M.lookup "month" m >>= metaValueToInt)
<|>
((+ 20) <$> (M.lookup "season" m >>= metaValueToInt))),
M.lookup "day" m >>= metaValueToInt) of
(Just y, Just mo, Just d) -> Just $ DateParts [y, mo, d]
(Just y, Just mo, Nothing) -> Just $ DateParts [y, mo]
(Just y, Nothing, _) -> Just $ DateParts [y]
_ -> Nothing
metaValueToDateParts _ = Nothing
emptyDate :: Date
emptyDate = Date { dateParts = []
, dateCirca = False
, dateSeason = Nothing
, dateLiteral = Nothing }
metaValueToNames :: MetaValue -> [Name]
metaValueToNames (MetaList xs) = mapMaybe metaValueToName xs
metaValueToNames x = maybeToList $ metaValueToName x
metaValueToName :: MetaValue -> Maybe Name
metaValueToName (MetaMap m) = extractParticles <$>
Just Name
{ nameFamily = family
, nameGiven = given
, nameDroppingParticle = dropping
, nameNonDroppingParticle = nondropping
, nameSuffix = suffix
, nameCommaSuffix = commasuffix
, nameStaticOrdering = staticordering
, nameLiteral = literal
}
where
family = M.lookup "family" m >>= metaValueToText
given = M.lookup "given" m >>= metaValueToText
dropping = M.lookup "dropping-particle" m
>>= metaValueToText
nondropping = M.lookup "non-dropping-particle" m
>>= metaValueToText
suffix = M.lookup "suffix" m >>= metaValueToText
commasuffix = fromMaybe False $
M.lookup "comma-suffix" m >>= metaValueToBool
staticordering = fromMaybe False $
M.lookup "static-ordering" m >>= metaValueToBool
literal = M.lookup "literal" m >>= metaValueToText
metaValueToName x = extractParticles <$>
case metaValueToText x of
Nothing -> Nothing
Just lit -> Just Name
{ nameFamily = Nothing
, nameGiven = Nothing
, nameDroppingParticle = Nothing
, nameNonDroppingParticle = Nothing
, nameSuffix = Nothing
, nameCommaSuffix = False
, nameStaticOrdering = False
, nameLiteral = Just lit }
dateVariables :: Set.Set Text
dateVariables = Set.fromList
[ "accessed", "container", "event-date", "issued",
"original-date", "submitted" ]
nameVariables :: Set.Set Text
nameVariables = Set.fromList
[ "author", "collection-editor", "composer",
"container-author", "director", "editor",
"editorial-director", "illustrator",
"interviewer", "original-author",
"recipient", "reviewed-author",
"translator" ]
normalizeKey :: Text -> Text
normalizeKey k =
case T.toLower k of
"doi" -> "DOI"
"isbn" -> "ISBN"
"issn" -> "ISSN"
"pmcid" -> "PMCID"
"pmid" -> "PMID"
"url" -> "URL"
x -> x

View file

@ -0,0 +1,70 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
module Text.Pandoc.Citeproc.Util
( toIETF )
where
import Data.Text (Text)
toIETF :: Text -> Text
toIETF "english" = "en-US" -- "en-EN" unavailable in CSL
toIETF "usenglish" = "en-US"
toIETF "american" = "en-US"
toIETF "british" = "en-GB"
toIETF "ukenglish" = "en-GB"
toIETF "canadian" = "en-US" -- "en-CA" unavailable in CSL
toIETF "australian" = "en-GB" -- "en-AU" unavailable in CSL
toIETF "newzealand" = "en-GB" -- "en-NZ" unavailable in CSL
toIETF "afrikaans" = "af-ZA"
toIETF "arabic" = "ar"
toIETF "basque" = "eu"
toIETF "bulgarian" = "bg-BG"
toIETF "catalan" = "ca-AD"
toIETF "croatian" = "hr-HR"
toIETF "czech" = "cs-CZ"
toIETF "danish" = "da-DK"
toIETF "dutch" = "nl-NL"
toIETF "estonian" = "et-EE"
toIETF "finnish" = "fi-FI"
toIETF "canadien" = "fr-CA"
toIETF "acadian" = "fr-CA"
toIETF "french" = "fr-FR"
toIETF "francais" = "fr-FR"
toIETF "austrian" = "de-AT"
toIETF "naustrian" = "de-AT"
toIETF "german" = "de-DE"
toIETF "germanb" = "de-DE"
toIETF "ngerman" = "de-DE"
toIETF "greek" = "el-GR"
toIETF "polutonikogreek" = "el-GR"
toIETF "hebrew" = "he-IL"
toIETF "hungarian" = "hu-HU"
toIETF "icelandic" = "is-IS"
toIETF "italian" = "it-IT"
toIETF "japanese" = "ja-JP"
toIETF "latvian" = "lv-LV"
toIETF "lithuanian" = "lt-LT"
toIETF "magyar" = "hu-HU"
toIETF "mongolian" = "mn-MN"
toIETF "norsk" = "nb-NO"
toIETF "nynorsk" = "nn-NO"
toIETF "farsi" = "fa-IR"
toIETF "polish" = "pl-PL"
toIETF "brazil" = "pt-BR"
toIETF "brazilian" = "pt-BR"
toIETF "portugues" = "pt-PT"
toIETF "portuguese" = "pt-PT"
toIETF "romanian" = "ro-RO"
toIETF "russian" = "ru-RU"
toIETF "serbian" = "sr-RS"
toIETF "serbianc" = "sr-RS"
toIETF "slovak" = "sk-SK"
toIETF "slovene" = "sl-SL"
toIETF "spanish" = "es-ES"
toIETF "swedish" = "sv-SE"
toIETF "thai" = "th-TH"
toIETF "turkish" = "tr-TR"
toIETF "ukrainian" = "uk-UA"
toIETF "vietnamese" = "vi-VN"
toIETF "latin" = "la"
toIETF x = x

View file

@ -553,7 +553,7 @@ getDefaultReferencePptx = do
mapM pathToEntry paths
-- | Read file from user data directory or,
-- if not found there, from Cabal data directory.
-- if not found there, from the default data files.
readDataFile :: PandocMonad m => FilePath -> m B.ByteString
readDataFile fname = do
datadir <- getUserDataDir
@ -565,7 +565,7 @@ readDataFile fname = do
then readFileStrict (userDir </> fname)
else readDefaultDataFile fname
-- | Read file from from Cabal data directory.
-- | Read file from from the default data files.
readDefaultDataFile :: PandocMonad m => FilePath -> m B.ByteString
readDefaultDataFile "reference.docx" =
B.concat . BL.toChunks . fromArchive <$> getDefaultReferenceDocx

View file

@ -32,6 +32,7 @@ import Text.Printf (printf)
import Text.Parsec.Error
import Text.Parsec.Pos hiding (Line)
import Text.Pandoc.Shared (tshow)
import Citeproc (CiteprocError, prettyCiteprocError)
type Input = Text
@ -60,6 +61,7 @@ data PandocError = PandocIOError Text IOError
| PandocUnknownReaderError Text
| PandocUnknownWriterError Text
| PandocUnsupportedExtensionError Text Text
| PandocCiteprocError CiteprocError
deriving (Show, Typeable, Generic)
instance Exception PandocError
@ -139,6 +141,8 @@ handleError (Left e) =
PandocUnsupportedExtensionError ext f -> err 23 $
"The extension " <> ext <> " is not supported " <>
"for " <> f
PandocCiteprocError e' -> err 24 $
prettyCiteprocError e'
err :: Int -> Text -> IO a
err exitCode msg = do

View file

@ -26,6 +26,7 @@ import Text.Pandoc.Class.PandocMonad (report, getVerbosity)
import Text.Pandoc.Definition (Pandoc)
import Text.Pandoc.Options (ReaderOptions)
import Text.Pandoc.Logging
import Text.Pandoc.Citeproc (processCitations)
import qualified Text.Pandoc.Filter.JSON as JSONFilter
import qualified Text.Pandoc.Filter.Lua as LuaFilter
import qualified Text.Pandoc.Filter.Path as Path
@ -39,6 +40,7 @@ import Control.Monad (foldM, when)
-- | Type of filter and path to filter file.
data Filter = LuaFilter FilePath
| JSONFilter FilePath
| CiteprocFilter -- built-in citeproc
deriving (Show, Generic)
instance FromYAML Filter where
@ -47,15 +49,19 @@ instance FromYAML Filter where
ty <- m .: "type"
fp <- m .: "path"
case ty of
"citeproc" -> return CiteprocFilter
"lua" -> return $ LuaFilter $ T.unpack fp
"json" -> return $ JSONFilter $ T.unpack fp
_ -> fail $ "Unknown filter type " ++ show (ty :: T.Text)) node
<|>
(withStr "Filter" $ \t -> do
let fp = T.unpack t
case takeExtension fp of
".lua" -> return $ LuaFilter fp
_ -> return $ JSONFilter fp) node
if fp == "citeproc"
then return CiteprocFilter
else return $
case takeExtension fp of
".lua" -> LuaFilter fp
_ -> JSONFilter fp) node
-- | Modify the given document using a filter.
applyFilters :: ReaderOptions
@ -71,6 +77,8 @@ applyFilters ropts filters args d = do
withMessages f $ JSONFilter.apply ropts args f doc
applyFilter doc (LuaFilter f) =
withMessages f $ LuaFilter.apply ropts args f doc
applyFilter doc CiteprocFilter =
processCitations doc
withMessages f action = do
verbosity <- getVerbosity
when (verbosity == INFO) $ report $ RunningFilter f
@ -85,5 +93,6 @@ applyFilters ropts filters args d = do
expandFilterPath :: Filter -> PandocIO Filter
expandFilterPath (LuaFilter fp) = LuaFilter <$> Path.expandFilterPath fp
expandFilterPath (JSONFilter fp) = JSONFilter <$> Path.expandFilterPath fp
expandFilterPath CiteprocFilter = return CiteprocFilter
$(deriveJSON defaultOptions ''Filter)

View file

@ -98,6 +98,7 @@ data LogMessage =
| CouldNotDeduceFormat [Text.Text] Text.Text
| RunningFilter FilePath
| FilterCompleted FilePath Integer
| CiteprocWarning Text.Text
deriving (Show, Eq, Data, Ord, Typeable, Generic)
instance ToJSON LogMessage where
@ -227,6 +228,8 @@ instance ToJSON LogMessage where
FilterCompleted fp ms ->
["path" .= Text.pack fp
,"milliseconds" .= Text.pack (show ms) ]
CiteprocWarning msg ->
["message" .= msg]
showPos :: SourcePos -> Text.Text
showPos pos = Text.pack $ sn ++ "line " ++
@ -338,6 +341,7 @@ showLogMessage msg =
RunningFilter fp -> "Running filter " <> Text.pack fp
FilterCompleted fp ms -> "Completed filter " <> Text.pack fp <>
" in " <> Text.pack (show ms) <> " ms"
CiteprocWarning ms -> "Citeproc: " <> ms
messageVerbosity :: LogMessage -> Verbosity
messageVerbosity msg =
@ -383,3 +387,4 @@ messageVerbosity msg =
CouldNotDeduceFormat{} -> WARNING
RunningFilter{} -> INFO
FilterCompleted{} -> INFO
CiteprocWarning{} -> WARNING

View file

@ -51,6 +51,9 @@ module Text.Pandoc.Readers
, readFB2
, readIpynb
, readCSV
, readCslJson
, readBibTeX
, readBibLaTeX
-- * Miscellaneous
, getReader
, getDefaultExtensions
@ -95,6 +98,8 @@ import Text.Pandoc.Readers.Txt2Tags
import Text.Pandoc.Readers.Vimwiki
import Text.Pandoc.Readers.Man
import Text.Pandoc.Readers.CSV
import Text.Pandoc.Readers.CslJson
import Text.Pandoc.Readers.BibTeX
import qualified Text.Pandoc.UTF8 as UTF8
import Text.Parsec.Error
@ -138,6 +143,9 @@ readers = [ ("native" , TextReader readNative)
,("fb2" , TextReader readFB2)
,("ipynb" , TextReader readIpynb)
,("csv" , TextReader readCSV)
,("csljson" , TextReader readCslJson)
,("bibtex" , TextReader readBibTeX)
,("biblatex" , TextReader readBibLaTeX)
]
-- | Retrieve reader, extensions based on formatSpec (format+extensions).

View file

@ -0,0 +1,70 @@
{-# LANGUAGE OverloadedStrings #-}
{- |
Module : Text.Pandoc.Readers.BibTeX
Copyright : Copyright (C) 2020 John MacFarlane
License : GNU GPL, version 2 or above
Maintainer : John MacFarlane <jgm@berkeley.edu>
Stability : alpha
Portability : portable
Parses BibTeX or BibLaTeX bibliographies into a Pandoc document
with empty body and `references` and `nocite` fields
in the metadata. A wildcard `nocite` is used so that
if the document is rendered in another format, the
entire bibliography will be printed.
-}
module Text.Pandoc.Readers.BibTeX
( readBibTeX
, readBibLaTeX
)
where
import Text.Pandoc.Options
import Text.Pandoc.Definition
import Text.Pandoc.Builder (setMeta, cite, str)
import Data.Text (Text)
import Citeproc (Lang(..), parseLang)
import Citeproc.Locale (getLocale)
import Data.Maybe (fromMaybe)
import Text.Pandoc.Error (PandocError(..))
import Text.Pandoc.Class (PandocMonad, lookupEnv)
import Text.Pandoc.Citeproc.BibTeX as BibTeX
import Text.Pandoc.Citeproc.MetaValue (referenceToMetaValue)
import Control.Monad.Except (throwError)
-- | Read BibTeX from an input string and return a Pandoc document.
-- The document will have only metadata, with an empty body.
-- The metadata will contain a `references` field with the
-- bibliography entries, and a `nocite` field with the wildcard `[@*]`.
readBibTeX :: PandocMonad m => ReaderOptions -> Text -> m Pandoc
readBibTeX = readBibTeX' BibTeX.Bibtex
-- | Read BibLaTeX from an input string and return a Pandoc document.
-- The document will have only metadata, with an empty body.
-- The metadata will contain a `references` field with the
-- bibliography entries, and a `nocite` field with the wildcard `[@*]`.
readBibLaTeX :: PandocMonad m => ReaderOptions -> Text -> m Pandoc
readBibLaTeX = readBibTeX' BibTeX.Biblatex
readBibTeX' :: PandocMonad m => Variant -> ReaderOptions -> Text -> m Pandoc
readBibTeX' variant _opts t = do
lang <- fromMaybe (Lang "en" (Just "US")) . fmap parseLang
<$> lookupEnv "LANG"
locale <- case getLocale lang of
Left e -> throwError $ PandocCiteprocError e
Right l -> return l
case BibTeX.readBibtexString variant locale (const True) t of
Left e -> throwError $ PandocParsecError t e
Right refs -> return $ setMeta "references"
(map referenceToMetaValue refs)
. setMeta "nocite"
(cite [Citation {citationId = "*"
, citationPrefix = []
, citationSuffix = []
, citationMode = NormalCitation
, citationNoteNum = 0
, citationHash = 0}]
(str "[@*]"))
$ Pandoc nullMeta []

View file

@ -0,0 +1,53 @@
{-# LANGUAGE OverloadedStrings #-}
{- |
Module : Text.Pandoc.Readers.CslJson
Copyright : Copyright (C) 2020 John MacFarlane
License : GNU GPL, version 2 or above
Maintainer : John MacFarlane <jgm@berkeley.edu>
Stability : alpha
Portability : portable
Parses CSL JSON bibliographies into a Pandoc document
with empty body and `references` and `nocite` fields
in the metadata. A wildcard `nocite` is used so that
if the document is rendered in another format, the
entire bibliography will be printed.
<https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html>.
-}
module Text.Pandoc.Readers.CslJson
( readCslJson )
where
import Text.Pandoc.Options
import Text.Pandoc.Definition
import Text.Pandoc.Builder (setMeta, cite, str)
import qualified Text.Pandoc.UTF8 as UTF8
import Data.Text (Text)
import qualified Data.Text as T
import Text.Pandoc.Error (PandocError(..))
import Text.Pandoc.Class (PandocMonad)
import Text.Pandoc.Citeproc.CslJson (cslJsonToReferences)
import Text.Pandoc.Citeproc.MetaValue (referenceToMetaValue)
import Control.Monad.Except (throwError)
-- | Read CSL JSON from an input string and return a Pandoc document.
-- The document will have only metadata, with an empty body.
-- The metadata will contain a `references` field with the
-- bibliography entries, and a `nocite` field with the wildcard `[@*]`.
readCslJson :: PandocMonad m => ReaderOptions -> Text -> m Pandoc
readCslJson _opts t =
case cslJsonToReferences (UTF8.fromText t) of
Left e -> throwError $ PandocParseError $ T.pack e
Right refs -> return $ setMeta "references"
(map referenceToMetaValue refs)
. setMeta "nocite"
(cite [Citation {citationId = "*"
, citationPrefix = []
, citationSuffix = []
, citationMode = NormalCitation
, citationNoteNum = 0
, citationHash = 0}]
(str "[@*]"))
$ Pandoc nullMeta []

View file

@ -1665,6 +1665,7 @@ str = do
abbrevs <- getOption readerAbbreviations
if not (T.null result) && T.last result == '.' && result `Set.member` abbrevs
then try (do ils <- whitespace
notFollowedBy (() <$ cite <|> () <$ note)
-- ?? lookAhead alphaNum
-- replace space after with nonbreaking space
-- if softbreak, move before abbrev if possible (#4635)

View file

@ -80,6 +80,7 @@ getDefaultTemplate writer = do
let format = T.takeWhile (`notElem` ("+-" :: String)) writer -- strip off extensions
case format of
"native" -> return ""
"csljson" -> return ""
"json" -> return ""
"docx" -> return ""
"fb2" -> return ""

View file

@ -24,6 +24,7 @@ module Text.Pandoc.Writers
, writeCommonMark
, writeConTeXt
, writeCustom
, writeCslJson
, writeDZSlides
, writeDocbook4
, writeDocbook5
@ -86,6 +87,7 @@ import Text.Pandoc.Error
import Text.Pandoc.Writers.AsciiDoc
import Text.Pandoc.Writers.CommonMark
import Text.Pandoc.Writers.ConTeXt
import Text.Pandoc.Writers.CslJson
import Text.Pandoc.Writers.Custom
import Text.Pandoc.Writers.Docbook
import Text.Pandoc.Writers.Docx
@ -182,6 +184,7 @@ writers = [
,("gfm" , TextWriter writeCommonMark)
,("tei" , TextWriter writeTEI)
,("muse" , TextWriter writeMuse)
,("csljson" , TextWriter writeCslJson)
]
-- | Retrieve writer, extensions based on formatSpec (format+extensions).

View file

@ -0,0 +1,87 @@
{-# LANGUAGE OverloadedStrings #-}
{- |
Module : Text.Pandoc.Writers.CslJson
Copyright : Copyright (C) 2020 John MacFarlane
License : GNU GPL, version 2 or above
Maintainer : John MacFarlane <jgm@berkeley.edu>
Stability : alpha
Portability : portable
Conversion of references from 'Pandoc' metadata to CSL JSON:
<https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html>.
Note that this writer ignores everything in the body of the
document and everything in the metadata except `references`.
It assumes that the `references` field is a list with the structure
of a CSL JSON bibliography.
-}
module Text.Pandoc.Writers.CslJson ( writeCslJson )
where
import Data.Text (Text)
import qualified Data.Text as T
import qualified Text.Pandoc.UTF8 as UTF8
import Text.Pandoc.Error
import Text.Pandoc.Class
import Control.Monad.Except (throwError)
import Data.ByteString.Lazy (toStrict)
import Data.ByteString (ByteString)
import Text.Pandoc.Definition
import Text.Pandoc.Builder as B
import Text.Pandoc.Citeproc.MetaValue (metaValueToReference, metaValueToText)
import Citeproc (parseLang, Locale, Reference(..), Lang(..))
import Control.Monad.Identity
import Citeproc.Locale (getLocale)
import Citeproc.CslJson
import Text.Pandoc.Options (WriterOptions)
import Data.Maybe (fromMaybe, mapMaybe)
import Data.Aeson.Encode.Pretty (Config (..), Indent (Spaces),
NumberFormat (Generic),
defConfig, encodePretty')
writeCslJson :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeCslJson _opts (Pandoc meta _) = do
let lang = fromMaybe (Lang "en" (Just "US")) $
parseLang <$> (lookupMeta "lang" meta >>= metaValueToText)
locale <- case getLocale lang of
Left e -> throwError $ PandocCiteprocError e
Right l -> return l
case lookupMeta "references" meta of
Just (MetaList rs) -> return $ (UTF8.toText $
toCslJson locale (mapMaybe metaValueToReference rs)) <> "\n"
_ -> throwError $ PandocAppError "No references field"
fromInlines :: [Inline] -> CslJson Text
fromInlines = foldMap fromInline . B.fromList
fromInline :: Inline -> CslJson Text
fromInline (Str t) = CslText t
fromInline (Emph ils) = CslItalic (fromInlines ils)
fromInline (Strong ils) = CslBold (fromInlines ils)
fromInline (Underline ils) = CslUnderline (fromInlines ils)
fromInline (Strikeout ils) = fromInlines ils
fromInline (Superscript ils) = CslSup (fromInlines ils)
fromInline (Subscript ils) = CslSub (fromInlines ils)
fromInline (SmallCaps ils) = CslSmallCaps (fromInlines ils)
fromInline (Quoted _ ils) = CslQuoted (fromInlines ils)
fromInline (Cite _ ils) = fromInlines ils
fromInline (Code _ t) = CslText t
fromInline Space = CslText " "
fromInline SoftBreak = CslText " "
fromInline LineBreak = CslText "\n"
fromInline (Math _ t) = CslText t
fromInline (RawInline _ _) = CslEmpty
fromInline (Link _ ils _) = fromInlines ils
fromInline (Image _ ils _) = fromInlines ils
fromInline (Note _) = CslEmpty
fromInline (Span (_,[cl],_) ils)
| "csl-" `T.isPrefixOf` cl = CslDiv cl (fromInlines ils)
fromInline (Span _ ils) = fromInlines ils
toCslJson :: Locale -> [Reference Inlines] -> ByteString
toCslJson locale = toStrict .
encodePretty' defConfig{ confIndent = Spaces 2
, confCompare = compare
, confNumFormat = Generic }
. map (runIdentity . traverse (return . renderCslJson locale . foldMap fromInline))

View file

@ -1184,6 +1184,18 @@ inlineToOpenXML' _ (Str str) =
formattedString str
inlineToOpenXML' opts Space = inlineToOpenXML opts (Str " ")
inlineToOpenXML' opts SoftBreak = inlineToOpenXML opts (Str " ")
inlineToOpenXML' opts (Span ("",["csl-block"],[]) ils) =
inlinesToOpenXML opts ils
inlineToOpenXML' opts (Span ("",["csl-left-margin"],[]) ils) =
inlinesToOpenXML opts ils
inlineToOpenXML' opts (Span ("",["csl-right-inline"],[]) ils) =
([mknode "w:r" []
(mknode "w:t"
[("xml:space","preserve")]
("\t" :: String))] ++)
<$> inlinesToOpenXML opts ils
inlineToOpenXML' opts (Span ("",["csl-indent"],[]) ils) =
inlinesToOpenXML opts ils
inlineToOpenXML' _ (Span (ident,["comment-start"],kvs) ils) = do
-- prefer the "id" in kvs, since that is the one produced by the docx
-- reader.

View file

@ -86,6 +86,8 @@ data WriterState = WriterState
, stSlideLevel :: Int -- ^ Slide level
, stInSection :: Bool -- ^ Content is in a section (revealjs)
, stCodeBlockNum :: Int -- ^ Number of code block
, stCsl :: Bool -- ^ Has CSL references
, stCslEntrySpacing :: Maybe Int -- ^ CSL entry spacing
}
defaultWriterState :: WriterState
@ -96,7 +98,9 @@ defaultWriterState = WriterState {stNotes= [], stMath = False, stQuotes = False,
stSlideVariant = NoSlides,
stSlideLevel = 1,
stInSection = False,
stCodeBlockNum = 0}
stCodeBlockNum = 0,
stCsl = False,
stCslEntrySpacing = Nothing}
-- Helpers to render HTML with the appropriate function.
@ -316,39 +320,48 @@ pandocToHtml opts (Pandoc meta blocks) = do
Just sty -> defField "highlighting-css"
(T.pack $ styleToCss sty)
Nothing -> id
else id) $
else id) .
(if stCsl st
then defField "csl-css" True .
(case stCslEntrySpacing st of
Nothing -> id
Just 0 -> id
Just n ->
defField "csl-entry-spacing"
(tshow n <> "em"))
else id) .
(if stMath st
then defField "math" (renderHtml' math)
else id) $
else id) .
(case writerHTMLMathMethod opts of
MathJax u -> defField "mathjax" True .
defField "mathjaxurl"
(T.takeWhile (/='?') u)
_ -> defField "mathjax" False) $
_ -> defField "mathjax" False) .
(case writerHTMLMathMethod opts of
PlainMath -> defField "displaymath-css" True
WebTeX _ -> defField "displaymath-css" True
_ -> id) $
defField "document-css" (isNothing mCss && slideVariant == NoSlides) $
defField "quotes" (stQuotes st) $
_ -> id) .
defField "document-css" (isNothing mCss && slideVariant == NoSlides) .
defField "quotes" (stQuotes st) .
-- for backwards compatibility we populate toc
-- with the contents of the toc, rather than a
-- boolean:
maybe id (defField "toc") toc $
maybe id (defField "table-of-contents") toc $
defField "author-meta" authsMeta $
maybe id (defField "toc") toc .
maybe id (defField "table-of-contents") toc .
defField "author-meta" authsMeta .
maybe id (defField "date-meta")
(normalizeDate dateMeta) $
(normalizeDate dateMeta) .
defField "pagetitle"
(stringifyHTML . docTitle $ meta) $
defField "idprefix" (writerIdentifierPrefix opts) $
(stringifyHTML . docTitle $ meta) .
defField "idprefix" (writerIdentifierPrefix opts) .
-- these should maybe be set in pandoc.hs
defField "slidy-url"
("https://www.w3.org/Talks/Tools/Slidy2" :: Text) $
defField "slideous-url" ("slideous" :: Text) $
("https://www.w3.org/Talks/Tools/Slidy2" :: Text) .
defField "slideous-url" ("slideous" :: Text) .
defField "revealjs-url" ("https://unpkg.com/reveal.js@^4/" :: Text) $
defField "s5-url" ("s5/default" :: Text) $
defField "html5" (stHtml5 st)
defField "s5-url" ("s5/default" :: Text) .
defField "html5" (stHtml5 st) $
metadata
return (thebody, context)
@ -743,12 +756,17 @@ blockToHtml opts (Div (ident, "section":dclasses, dkvs)
blockToHtml opts (Div attr@(ident, classes, kvs') bs) = do
html5 <- gets stHtml5
slideVariant <- gets stSlideVariant
let isCslBibBody = ident == "refs" || "csl-bib-body" `elem` classes
when isCslBibBody $ modify $ \st -> st{ stCsl = True
, stCslEntrySpacing =
lookup "entry-spacing" kvs' >>=
safeRead }
let isCslBibEntry = "csl-entry" `elem` classes
let kvs = [(k,v) | (k,v) <- kvs', k /= "width"] ++
[("style", "width:" <> w <> ";") | "column" `elem` classes,
("width", w) <- kvs'] ++
[("role", "doc-bibliography") | ident == "refs" && html5] ++
[("role", "doc-biblioentry")
| "ref-" `T.isPrefixOf` ident && html5]
[("role", "doc-bibliography") | isCslBibBody && html5] ++
[("role", "doc-biblioentry") | isCslBibEntry && html5]
let speakerNotes = "notes" `elem` classes
-- we don't want incremental output inside speaker notes, see #1394
let opts' = if | speakerNotes -> opts{ writerIncremental = False }
@ -765,7 +783,9 @@ blockToHtml opts (Div attr@(ident, classes, kvs') bs) = do
-- a newline between the column divs, which throws
-- off widths! see #4028
mconcat <$> mapM (blockToHtml opts) bs
else blockListToHtml opts' bs
else if isCslBibEntry
then mconcat <$> mapM (cslEntryToHtml opts') bs
else blockListToHtml opts' bs
let contents' = nl opts >> contents >> nl opts
let (divtag, classes'') = if html5 && "section" `elem` classes'
then (H5.section, filter (/= "section") classes')
@ -1439,6 +1459,23 @@ blockListToNote opts ref blocks = do
_ -> noteItem
return $ nl opts >> noteItem'
cslEntryToHtml :: PandocMonad m
=> WriterOptions
-> Block
-> StateT WriterState m Html
cslEntryToHtml opts (Para xs) = do
html5 <- gets stHtml5
let inDiv :: Text -> Html -> Html
inDiv cls x = ((if html5 then H5.div else H.div)
x ! A.class_ (toValue cls))
let go (Span ("",[cls],[]) ils)
| cls == "csl-block" || cls == "csl-left-margin" ||
cls == "csl-right-inline" || cls == "csl-indent"
= inDiv cls <$> inlineListToHtml opts ils
go il = inlineToHtml opts il
mconcat <$> mapM go xs
cslEntryToHtml opts x = blockToHtml opts x
isMathEnvironment :: Text -> Bool
isMathEnvironment s = "\\begin{" `T.isPrefixOf` s &&
envName `elem` mathmlenvs

View file

@ -71,7 +71,6 @@ data WriterState =
, stBeamer :: Bool -- produce beamer
, stEmptyLine :: Bool -- true if no content on line
, stHasCslRefs :: Bool -- has a Div with class refs
, stCslHangingIndent :: Bool -- use hanging indent for bib
, stIsFirstInDefinition :: Bool -- first block in a defn list
}
@ -103,7 +102,6 @@ startingState options = WriterState {
, stBeamer = False
, stEmptyLine = True
, stHasCslRefs = False
, stCslHangingIndent = False
, stIsFirstInDefinition = False }
-- | Convert Pandoc to LaTeX.
@ -243,7 +241,6 @@ pandocToLaTeX options (Pandoc meta blocks) = do
else defField "dir" ("ltr" :: Text)) $
defField "section-titles" True $
defField "csl-refs" (stHasCslRefs st) $
defField "csl-hanging-indent" (stCslHangingIndent st) $
defField "geometry" geometryFromMargins $
(case T.uncons . render Nothing <$>
getField "papersize" metadata of
@ -541,16 +538,23 @@ blockToLaTeX (Div (identifier,classes,kvs) bs) = do
then modify $ \st -> st{ stIncremental = True }
else when (beamer && "nonincremental" `elem` classes) $
modify $ \st -> st { stIncremental = False }
result <- if identifier == "refs"
result <- if identifier == "refs" || -- <- for backwards compatibility
"csl-bib-body" `elem` classes
then do
modify $ \st -> st{ stHasCslRefs = True }
inner <- blockListToLaTeX bs
modify $ \st -> st{ stHasCslRefs = True
, stCslHangingIndent =
"hanging-indent" `elem` classes }
return $ "\\begin{cslreferences}" $$
inner $$
"\\end{cslreferences}"
else blockListToLaTeX bs
return $ "\\begin{CSLReferences}" <>
(if "hanging-indent" `elem` classes
then braces "1"
else braces "0") <>
(case lookup "entry-spacing" kvs of
Nothing -> braces "0"
Just s -> braces (literal s))
$$ inner
$+$ "\\end{CSLReferences}"
else if "csl-entry" `elem` classes
then vcat <$> mapM cslEntryToLaTeX bs
else blockListToLaTeX bs
modify $ \st -> st{ stIncremental = oldIncremental }
linkAnchor' <- hypertarget True identifier empty
-- see #2704 for the motivation for adding \leavevmode:
@ -1151,6 +1155,23 @@ isQuoted :: Inline -> Bool
isQuoted (Quoted _ _) = True
isQuoted _ = False
cslEntryToLaTeX :: PandocMonad m
=> Block
-> LW m (Doc Text)
cslEntryToLaTeX (Para xs) =
mconcat <$> mapM go xs
where
go (Span ("",["csl-block"],[]) ils) =
(cr <>) . inCmd "CSLBlock" <$> inlineListToLaTeX ils
go (Span ("",["csl-left-margin"],[]) ils) =
inCmd "CSLLeftMargin" <$> inlineListToLaTeX ils
go (Span ("",["csl-right-inline"],[]) ils) =
(cr <>) . inCmd "CSLRightInline" <$> inlineListToLaTeX ils
go (Span ("",["csl-indent"],[]) ils) =
(cr <>) . inCmd "CSLIndent" <$> inlineListToLaTeX ils
go il = inlineToLaTeX il
cslEntryToLaTeX x = blockToLaTeX x
-- | Convert inline element to LaTeX
inlineToLaTeX :: PandocMonad m
=> Inline -- ^ Inline to convert

View file

@ -110,16 +110,37 @@ blockToMs :: PandocMonad m
-> Block -- ^ Block element
-> MS m (Doc Text)
blockToMs _ Null = return empty
blockToMs opts (Div (ident,_,_) bs) = do
blockToMs opts (Div (ident,cls,kvs) bs) = do
let anchor = if T.null ident
then empty
else nowrap $
literal ".pdfhref M "
<> doubleQuotes (literal (toAscii ident))
setFirstPara
res <- blockListToMs opts bs
setFirstPara
return $ anchor $$ res
case cls of
_ | "csl-entry" `elem` cls ->
(".CSLENTRY" $$) . vcat <$> mapM (cslEntryToMs True opts) bs
| "csl-bib-body" `elem` cls -> do
res <- blockListToMs opts bs
return $ anchor $$
-- so that XP paragraphs are indented:
".nr PI 3n" $$
-- space between entries
".de CSLENTRY" $$
(case lookup "entry-spacing" kvs >>= safeRead of
Just n | n > (0 :: Int) -> ".sp"
_ -> mempty) $$
".." $$
".de CSLP" $$
(if "hanging-indent" `elem` cls
then ".XP"
else ".LP") $$
".." $$
res
_ -> do
setFirstPara
res <- blockListToMs opts bs
setFirstPara
return $ anchor $$ res
blockToMs opts (Plain inlines) =
liftM vcat $ mapM (inlineListToMs' opts) $ splitSentences inlines
blockToMs opts (Para [Image attr alt (src,_tit)])
@ -440,6 +461,39 @@ inlineToMs _ (Note contents) = do
modify $ \st -> st{ stNotes = contents : stNotes st }
return $ literal "\\**"
cslEntryToMs :: PandocMonad m
=> Bool
-> WriterOptions
-> Block
-> MS m (Doc Text)
cslEntryToMs atStart opts (Para xs) =
case xs of
(Span ("",["csl-left-margin"],[]) lils :
rest@(Span ("",["csl-right-inline"],[]) _ : _))
-> do lils' <- inlineListToMs' opts lils
((cr <> literal ".IP " <>
doubleQuotes (nowrap lils') <>
literal " 5") $$)
<$> cslEntryToMs False opts (Para rest)
(Span ("",["csl-block"],[]) ils : rest)
-> ((cr <> literal ".LP") $$)
<$> cslEntryToMs False opts (Para (ils ++ rest))
(Span ("",["csl-left-margin"],[]) ils : rest)
-> ((cr <> literal ".LP") $$)
<$> cslEntryToMs False opts (Para (ils ++ rest))
(Span ("",["csl-indented"],[]) ils : rest)
-> ((cr <> literal ".LP") $$)
<$> cslEntryToMs False opts (Para (ils ++ rest))
_ | atStart
-> (".CSLP" $$) <$> cslEntryToMs False opts (Para xs)
| otherwise
-> case xs of
[] -> return mempty
(x:rest) -> (<>) <$> (inlineToMs opts x)
<*> (cslEntryToMs False opts (Para rest))
cslEntryToMs _ opts x = blockToMs opts x
handleNotes :: PandocMonad m => WriterOptions -> Doc Text -> MS m (Doc Text)
handleNotes opts fallback = do
notes <- gets stNotes

View file

@ -3,15 +3,11 @@ flags:
trypandoc: false
embed_data_files: true
static: false
pandoc-citeproc:
bibutils: true
embed_data_files: true
unicode_collation: false
test_citeproc: false
debug: false
packages:
- '.'
extra-deps:
- git: https://github.com/jgm/citeproc
commit: e3695de4f34f33e32c6d3c33e8cdcf3fa96f6a5b
- pandoc-types-1.22
- texmath-0.12.0.3
- rfc5051-0.2
@ -28,8 +24,6 @@ extra-deps:
- commonmark-0.1.0.2
- commonmark-extensions-0.2.0.1
- commonmark-pandoc-0.2.0.1
- git: https://github.com/jgm/pandoc-citeproc
commit: 159bbb566858c0bc522e6404eb989671cd7236fd
ghc-options:
"$locals": -fhide-source-paths -Wno-missing-home-modules

View file

@ -2,31 +2,30 @@
% pandoc -t latex --biblatex
[e.g. @a1;@a2;@a3; but also @b1;@b2;@b3]
^D
\autocites[e.g.~][]{a1,a2,a3}[but also][]{b1,b2,b3}
\autocites[e.g.][]{a1,a2,a3}[but also][]{b1,b2,b3}
```
```
% pandoc -t latex --biblatex
[e.g. @a1; e.g. @a2;@a3; but also @b1;@b2;but also @b3]
^D
\autocites[e.g.~][]{a1}[e.g.~][]{a2,a3}[but also][]{b1,b2}[but
also][]{b3}
\autocites[e.g.][]{a1}[e.g.][]{a2,a3}[but also][]{b1,b2}[but also][]{b3}
```
```
% pandoc -t latex --biblatex
[e.g. @a1, ch.3 and elsewhere;@a2;@a3; but also @a4;@a5]
^D
\autocites[e.g.~][ch.3 and elsewhere]{a1}{a2,a3}[but also][]{a4,a5}
\autocites[e.g.][ch.3 and elsewhere]{a1}{a2,a3}[but also][]{a4,a5}
```
```
% pandoc -t latex --biblatex
[e.g. @a1;@a2, ch.3 and elsewhere;@a3; but also @a4;@a5]
^D
\autocites[e.g.~][ch.3 and elsewhere]{a1,a2}{a3}[but also][]{a4,a5}
\autocites[e.g.][ch.3 and elsewhere]{a1,a2}{a3}[but also][]{a4,a5}
```
```
% pandoc -t latex --biblatex
[e.g. @a1, blah;@a2, ch.3 and elsewhere;@a3; but also @b4;@b5]
^D
\autocites[e.g.~][blah]{a1}[ch.3 and elsewhere]{a2}{a3}[but
\autocites[e.g.][blah]{a1}[ch.3 and elsewhere]{a2}{a3}[but
also][]{b4,b5}
```

View file

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-US">
<info>
<title>Advanced Optical Materials</title>
<id>http://www.zotero.org/styles/advanced-optical-materials</id>
<link href="http://www.zotero.org/styles/advanced-optical-materials" rel="self"/>
<link href="http://www.zotero.org/styles/small" rel="template"/>
<link href="http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2195-1071/homepage/2298_forauthors.html" rel="documentation"/>
<author>
<name>Martin F. Schumann</name>
<email>mfs@mfs.name</email>
</author>
<category citation-format="numeric"/>
<category field="engineering"/>
<eissn>2195-1071</eissn>
<summary>A style for Wiley's Advanced Optical Materials</summary>
<updated>2017-02-16T15:37:41+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>
<macro name="author">
<names variable="author">
<name initialize-with=". " delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=", " text-case="capitalize-first" suffix=" "/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
</substitute>
</names>
</macro>
<macro name="editor">
<names variable="editor">
<label form="short" text-case="capitalize-first" suffix=".: " strip-periods="true"/>
<name initialize-with="." delimiter=", " delimiter-precedes-last="always"/>
</names>
</macro>
<macro name="year-date">
<group font-weight="bold">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="year"/>
</date>
</if>
<else>
<text term="no date" form="short"/>
</else>
</choose>
</group>
</macro>
<macro name="access-date">
<group delimiter=", ">
<date variable="accessed">
<date-part name="month" prefix="accessed: " suffix=", " form="short"/>
<date-part name="year"/>
</date>
</group>
</macro>
<macro name="access">
<choose>
<if variable="page" match="none">
<choose>
<if variable="DOI">
<text variable="DOI" prefix="DOI: "/>
</if>
</choose>
<choose>
<if type="webpage">
<text variable="URL"/>
</if>
</choose>
</if>
</choose>
</macro>
<macro name="publisher">
<group delimiter=", ">
<text variable="publisher" text-case="capitalize-all"/>
<text variable="publisher-place" text-case="title"/>
</group>
</macro>
<macro name="pages">
<label variable="page" form="short" suffix=" "/>
<text variable="page"/>
</macro>
<citation collapse="citation-number">
<sort>
<key variable="citation-number"/>
</sort>
<layout prefix="[" suffix="]" delimiter="," vertical-align="sup">
<text variable="citation-number"/>
</layout>
</citation>
<bibliography entry-spacing="0" second-field-align="flush" line-spacing="2">
<layout suffix=".">
<text variable="citation-number" prefix="[" suffix="]"/>
<text macro="author" suffix=", "/>
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group delimiter=", ">
<text variable="title" text-case="title" font-style="italic"/>
<text macro="publisher"/>
<text macro="year-date"/>
</group>
</if>
<else-if type="chapter paper-conference" match="any">
<group delimiter=", ">
<group delimiter=" ">
<text term="in"/>
<text variable="container-title" form="short" text-case="title" font-style="italic"/>
<text macro="editor" prefix="(" suffix=")"/>
</group>
<text macro="publisher"/>
<text macro="year-date"/>
<group delimiter=" ">
<text macro="pages"/>
</group>
</group>
</else-if>
<else-if type="patent">
<group delimiter=", ">
<text variable="number" font-style="italic"/>
<text macro="year-date"/>
</group>
</else-if>
<else-if type="thesis">
<group delimiter=", ">
<text variable="title" text-case="title"/>
<text variable="genre"/>
<text variable="publisher"/>
<text macro="year-date"/>
</group>
</else-if>
<else-if type="webpage">
<group delimiter=", ">
<text variable="title"/>
<text macro="access"/>
<text macro="access-date"/>
</group>
</else-if>
<else>
<group delimiter=" ">
<text variable="container-title" form="short" font-style="italic"/>
<group delimiter=", ">
<text macro="year-date"/>
<group>
<text variable="volume" font-style="italic"/>
</group>
<text variable="page-first"/>
</group>
</group>
<text macro="access" prefix=", "/>
</else>
</choose>
</layout>
</bibliography>
</style>

334
test/command/annales.csl Normal file
View file

@ -0,0 +1,334 @@
<?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" demote-non-dropping-particle="sort-only">
<info>
<title>Annales. Histoire, Sciences sociales (French)</title>
<id>http://www.zotero.org/styles/annales</id>
<link href="http://www.zotero.org/styles/annales" rel="self"/>
<link href="http://annales.ehess.fr/?lang=en/" rel="documentation"/>
<author>
<name>Franziska Heimburger</name>
<email>zotero@franziska.fr</email>
</author>
<category citation-format="note"/>
<category field="social_science"/>
<issn>0395-2649</issn>
<updated>2013-08-29T04:18:55+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.&#160;cit.</term>
<term name="page" form="short">
<single>p.</single>
<multiple>p.</multiple>
</term>
<term name="editor" form="short">
<single>dir.</single>
<multiple>dir.</multiple>
</term>
</terms>
</locale>
<macro name="author">
<names variable="author">
<name form="long" and="text" delimiter-precedes-last="never">
<name-part name="family" font-variant="small-caps"/>
</name>
<label form="short" prefix="&#160;(" suffix=")"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<macro name="author-short">
<names variable="author">
<name form="long" and="text" initialize-with=". " delimiter-precedes-last="never">
<name-part name="family" font-variant="small-caps"/>
</name>
<label form="short" prefix="&#160;(" 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=" " font-style="normal">
</name>
<label form="short" prefix="&#160;(" suffix=".)"/>
</names>
</macro>
<macro name="translator">
<names variable="translator">
<name form="long" and="text" delimiter-precedes-last="never" sort-separator=" " font-style="normal" prefix=" trad. fr. ">
<name-part name="family" font-variant="small-caps"/>
</name>
</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" quotes="true" font-style="normal"/>
<text variable="container-title" font-style="italic"/>
</group>
</else-if>
<else-if type="thesis" match="any">
<group>
<text variable="title" text-case="capitalize-first" quotes="true" font-style="normal"/>
<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" quotes="true" font-style="normal"/>
<text variable="genre" prefix=" "/>
</group>
</else-if>
<else-if type="chapter entry-dictionary entry-encyclopedia" match="any">
<group>
<text variable="title" text-case="capitalize-first" quotes="true" suffix=","/>
<text value="in" font-style="italic" suffix=" " prefix=" "/>
<text macro="editor" suffix=", "/>
<text variable="container-title" text-case="capitalize-first" font-style="italic"/>
</group>
</else-if>
<else-if type="webpage" match="any">
<group>
<text variable="title" text-case="capitalize-first" font-style="italic" suffix=", "/>
<text variable="URL" text-decoration="underline"/>
</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">
<text variable="publisher-place"/>
</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=", " font-style="normal">
<date variable="issued">
<date-part name="year"/>
</date>
<group delimiter=" ">
<text term="volume" form="short"/>
<text variable="volume"/>
</group>
<group delimiter="&#8239;">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</group>
</if>
<else-if type="chapter entry-dictionary entry-encyclopedia" match="any">
<group delimiter=" " font-style="normal">
<date variable="issued">
<date-part name="year" suffix=", "/>
</date>
<group>
<text term="volume" form="short" suffix="."/>
<text variable="number-of-volumes" prefix=". " suffix="/"/>
<text variable="volume" suffix=","/>
</group>
<label variable="page" form="short"/>
<group delimiter=", ">
<text variable="page"/>
<group delimiter="&#8239;">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</group>
</group>
</else-if>
<else-if type="article-journal" match="any">
<group delimiter=" " font-style="normal">
<label variable="page" form="short"/>
<group delimiter=", ">
<text variable="page"/>
<group delimiter="&#8239;">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</group>
</group>
</else-if>
<else-if type="article-newspaper article-magazine" match="any">
<group delimiter=" " font-style="normal">
<date variable="issued" form="numeric">
<date-part name="day"/>
<date-part name="month"/>
<date-part name="year"/>
</date>
<group delimiter=" " font-style="normal">
<choose>
<if variable="locator" match="any">
<group delimiter="&#8239;">
<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>
</group>
</else-if>
<else-if type="webpage" match="any">
<group delimiter=" " font-style="normal">
<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 font-style="normal">
<choose>
<if variable="issued">
<date variable="issued">
<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=".&#160;"/>
<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="&#160;"/>
<text variable="issue"/>
</if>
<else>
<text variable="issue"/>
</else>
</choose>
</macro>
<citation>
<layout suffix="." delimiter="&#160;; ">
<choose>
<if position="ibid-with-locator">
<group delimiter=", ">
<text term="ibid" text-case="capitalize-first" font-style="italic" suffix="."/>
<group delimiter="&#8239;">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</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-short"/>
<choose>
<if type="bill book graphic legal_case motion_picture report song thesis" match="any">
<text variable="title" form="short" font-style="italic"/>
</if>
<else>
<text variable="title" text-case="capitalize-first" form="short" quotes="true" font-style="normal"/>
</else>
</choose>
<text term="cited" font-style="italic" suffix="."/>
<group delimiter="&#8239;">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</group>
</else-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>
</layout>
</citation>
<bibliography>
<sort>
<key macro="author" names-min="3" names-use-first="3"/>
<key variable="issued" sort="descending"/>
</sort>
<layout suffix=".">
<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>
</layout>
</bibliography>
</style>

474
test/command/apa.csl Normal file
View file

@ -0,0 +1,474 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never">
<!-- This style was edited with the Visual CSL Editor (http://steveridout.com/csl/visualEditor/) -->
<info>
<title>American Psychological Association 6th edition</title>
<title-short>APA</title-short>
<id>http://www.zotero.org/styles/apa</id>
<link href="http://www.zotero.org/styles/apa" rel="self"/>
<link href="http://owl.english.purdue.edu/owl/resource/560/01/" rel="documentation"/>
<author>
<name>Simon Kornblith</name>
<email>simon@simonster.com</email>
</author>
<contributor>
<name>Bruce D'Arcus</name>
</contributor>
<contributor>
<name>Curtis M. Humphrey</name>
</contributor>
<contributor>
<name>Richard Karnesky</name>
<email>karnesky+zotero@gmail.com</email>
<uri>http://arc.nucapt.northwestern.edu/Richard_Karnesky</uri>
</contributor>
<contributor>
<name>Sebastian Karcher</name>
</contributor>
<category citation-format="author-date"/>
<category field="psychology"/>
<category field="generic-base"/>
<updated>2014-04-12T01:20:52+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="en">
<terms>
<term name="editortranslator" form="short">
<single>ed. &amp; trans.</single>
<multiple>eds. &amp; trans.</multiple>
</term>
<term name="translator" form="short">
<single>trans.</single>
<multiple>trans.</multiple>
</term>
</terms>
</locale>
<macro name="container-contributors">
<choose>
<if type="chapter paper-conference" match="any">
<names variable="editor translator container-author" delimiter=", " suffix=", ">
<name and="symbol" initialize-with=". " delimiter=", "/>
<label form="short" prefix=" (" text-case="title" suffix=")"/>
</names>
</if>
</choose>
</macro>
<macro name="secondary-contributors">
<choose>
<if type="article-journal chapter paper-conference" match="none">
<names variable="translator editor container-author" delimiter=", " prefix=" (" suffix=")">
<name and="symbol" initialize-with=". " delimiter=", "/>
<label form="short" prefix=", " text-case="title"/>
</names>
</if>
</choose>
</macro>
<macro name="author">
<names variable="author">
<name name-as-sort-order="all" and="symbol" sort-separator=", " initialize-with=". " delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=" (" suffix=")" text-case="capitalize-first"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<choose>
<if type="report">
<text variable="publisher"/>
<text macro="title"/>
</if>
<else>
<text macro="title"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="author-short">
<names variable="author">
<name form="short" and="symbol" delimiter=", " initialize-with=". "/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<choose>
<if type="report">
<text variable="publisher"/>
<text variable="title" form="short" font-style="italic"/>
</if>
<else-if type="legal_case">
<text variable="title" font-style="italic"/>
</else-if>
<else-if type="bill book graphic legislation motion_picture song" match="any">
<text variable="title" form="short" font-style="italic"/>
</else-if>
<else>
<text variable="title" form="short" quotes="true"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="access">
<choose>
<if type="thesis">
<choose>
<if variable="archive" match="any">
<group>
<text term="retrieved" text-case="capitalize-first" suffix=" "/>
<text term="from" suffix=" "/>
<text variable="archive" suffix="."/>
<text variable="archive_location" prefix=" (" suffix=")"/>
</group>
</if>
<else>
<group>
<text term="retrieved" text-case="capitalize-first" suffix=" "/>
<text term="from" suffix=" "/>
<text variable="URL"/>
</group>
</else>
</choose>
</if>
<else>
<choose>
<if variable="DOI">
<text variable="DOI" prefix="doi:"/>
</if>
<else>
<choose>
<if type="webpage">
<group delimiter=" ">
<text term="retrieved" text-case="capitalize-first" suffix=" "/>
<group>
<date variable="accessed" form="text" suffix=", "/>
</group>
<text term="from"/>
<text variable="URL"/>
</group>
</if>
<else>
<group>
<text term="retrieved" text-case="capitalize-first" suffix=" "/>
<text term="from" suffix=" "/>
<text variable="URL"/>
</group>
</else>
</choose>
</else>
</choose>
</else>
</choose>
</macro>
<macro name="title">
<choose>
<if type="report thesis" match="any">
<text variable="title" font-style="italic"/>
<group prefix=" (" suffix=")" delimiter=" ">
<text variable="genre"/>
<text variable="number" prefix="No. "/>
</group>
</if>
<else-if type="book graphic motion_picture report song manuscript speech" match="any">
<!---This is a hack until we have a computer program type -->
<choose>
<if variable="version">
<group delimiter=" ">
<text variable="title"/>
<group delimiter=" " prefix="(" suffix=")">
<text term="version" text-case="capitalize-first"/>
<text variable="version"/>
</group>
</group>
</if>
<else>
<text variable="title" font-style="italic"/>
</else>
</choose>
</else-if>
<else>
<text variable="title"/>
</else>
</choose>
</macro>
<macro name="publisher">
<choose>
<if type="report" match="any">
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</if>
<else-if type="thesis" match="any">
<group delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</else-if>
<else>
<group delimiter=", ">
<choose>
<if variable="event" match="none">
<text variable="genre"/>
</if>
</choose>
<choose>
<if type="article-journal article-magazine" match="none">
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</if>
</choose>
</group>
</else>
</choose>
</macro>
<macro name="event">
<choose>
<if variable="container-title" match="none">
<choose>
<if variable="event">
<choose>
<if variable="genre" match="none">
<text term="presented at" text-case="capitalize-first" suffix=" "/>
<text variable="event"/>
</if>
<else>
<group delimiter=" ">
<text variable="genre" text-case="capitalize-first"/>
<text term="presented at"/>
<text variable="event"/>
</group>
</else>
</choose>
</if>
</choose>
</if>
</choose>
</macro>
<macro name="issued">
<choose>
<if type="bill legal_case legislation" match="none">
<choose>
<if variable="issued">
<group prefix=" (" suffix=")">
<date variable="issued">
<date-part name="year"/>
</date>
<text variable="year-suffix"/>
<choose>
<if type="article-journal bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="none">
<date variable="issued">
<date-part prefix=", " name="month"/>
<date-part prefix=" " name="day"/>
</date>
</if>
</choose>
</group>
</if>
<else>
<group prefix=" (" suffix=")">
<text term="no date" form="short"/>
<text variable="year-suffix" prefix="-"/>
</group>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="issued-sort">
<choose>
<if type="article-journal bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="none">
<date variable="issued">
<date-part name="year"/>
<date-part name="month"/>
<date-part name="day"/>
</date>
</if>
<else>
<date variable="issued">
<date-part name="year"/>
</date>
</else>
</choose>
</macro>
<macro name="issued-year">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="year"/>
</date>
<text variable="year-suffix"/>
</if>
<else>
<text term="no date" form="short"/>
<text variable="year-suffix" prefix="-"/>
</else>
</choose>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition" suffix="."/>
</else>
</choose>
</macro>
<macro name="locators">
<choose>
<if type="article-journal article-magazine" match="any">
<group prefix=", " delimiter=", ">
<group>
<text variable="volume" font-style="italic"/>
<text variable="issue" prefix="(" suffix=")"/>
</group>
<text variable="page"/>
</group>
</if>
<else-if type="article-newspaper">
<group delimiter=" " prefix=", ">
<label variable="page" form="short"/>
<text variable="page"/>
</group>
</else-if>
<else-if type="book graphic motion_picture report song chapter paper-conference" match="any">
<group prefix=" (" suffix=")" delimiter=", ">
<text macro="edition"/>
<group>
<text term="volume" form="short" plural="true" text-case="capitalize-first" suffix=" "/>
<number variable="number-of-volumes" form="numeric" prefix="1-"/>
</group>
<group>
<text term="volume" form="short" text-case="capitalize-first" suffix=" "/>
<number variable="volume" form="numeric"/>
</group>
<group>
<label variable="page" form="short" suffix=" "/>
<text variable="page"/>
</group>
</group>
</else-if>
<else-if type="legal_case">
<group prefix=" (" suffix=")" delimiter=" ">
<text variable="authority"/>
<date variable="issued" form="text"/>
</group>
</else-if>
<else-if type="bill legislation" match="any">
<date variable="issued" prefix=" (" suffix=")">
<date-part name="year"/>
</date>
</else-if>
</choose>
</macro>
<macro name="citation-locator">
<group>
<choose>
<if locator="chapter">
<label variable="locator" form="long" text-case="capitalize-first"/>
</if>
<else>
<label variable="locator" form="short"/>
</else>
</choose>
<text variable="locator" prefix=" "/>
</group>
</macro>
<macro name="container">
<group>
<choose>
<if type="chapter paper-conference entry-encyclopedia" match="any">
<text term="in" text-case="capitalize-first" suffix=" "/>
</if>
</choose>
<text macro="container-contributors"/>
<text macro="secondary-contributors"/>
<text macro="container-title"/>
</group>
</macro>
<macro name="container-title">
<choose>
<if type="article article-journal article-magazine article-newspaper" match="any">
<text variable="container-title" font-style="italic" text-case="title"/>
</if>
<else-if type="bill legal_case legislation" match="none">
<text variable="container-title" font-style="italic"/>
</else-if>
</choose>
</macro>
<macro name="legal-cites">
<choose>
<if type="bill legal_case legislation" match="any">
<group delimiter=" " prefix=", ">
<choose>
<if variable="container-title">
<text variable="volume"/>
<text variable="container-title"/>
<group delimiter=" ">
<!--change to label variable="section" as that becomes available -->
<text term="section" form="symbol"/>
<text variable="section"/>
</group>
<text variable="page"/>
</if>
<else>
<choose>
<if type="legal_case">
<text variable="number" prefix="No. "/>
</if>
<else>
<text variable="number" prefix="Pub. L. No. "/>
<group delimiter=" ">
<!--change to label variable="section" as that becomes available -->
<text term="section" form="symbol"/>
<text variable="section"/>
</group>
</else>
</choose>
</else>
</choose>
</group>
</if>
</choose>
</macro>
<citation et-al-min="6" et-al-use-first="1" et-al-subsequent-min="3" et-al-subsequent-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" collapse="year" givenname-disambiguation-rule="primary-name">
<sort>
<key macro="author"/>
<key macro="issued-sort"/>
</sort>
<layout prefix="(" suffix=")" delimiter="; ">
<group delimiter=", ">
<text macro="author-short"/>
<text macro="issued-year"/>
<text macro="citation-locator"/>
</group>
</layout>
</citation>
<bibliography hanging-indent="true" et-al-min="8" et-al-use-first="6" et-al-use-last="true" entry-spacing="0" line-spacing="2">
<sort>
<key macro="author"/>
<key macro="issued-sort" sort="ascending"/>
<key macro="title"/>
</sort>
<layout>
<group suffix=".">
<group delimiter=". ">
<text macro="author"/>
<text macro="issued"/>
<text macro="title" prefix=" "/>
<text macro="container"/>
</group>
<text macro="legal-cites"/>
<text macro="locators"/>
<group delimiter=", " prefix=". ">
<text macro="event"/>
<text macro="publisher"/>
</group>
</group>
<text macro="access" prefix=" "/>
</layout>
</bibliography>
</style>

View file

@ -0,0 +1,291 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="note" demote-non-dropping-particle="display-and-sort" default-locale="fr-FR" page-range-format="expanded">
<info>
<title>Archéologie médiévale (French)</title>
<id>http://www.zotero.org/styles/archeologie-medievale</id>
<link href="http://www.zotero.org/styles/archeologie-medievale" rel="self"/>
<link href="http://www.unicaen.fr/crahm/archeomed/spip.php?article80" rel="documentation"/>
<author>
<name>Nicolas Monteix</name>
<email>nicolas.monteix@univ-rouen.fr</email>
</author>
<category citation-format="note"/>
<category field="history"/>
<category field="anthropology"/>
<issn>0153-9337</issn>
<summary>Style auteur-date en note pour Archéologie médiévale. NB: les sources éditées doivent être considérées comme des livres ayant un auteur (médiéval) et un éditeur (contemporain). Pour les sources éditées ne disposant pas d'auteur (médiéval), il est nécessaire de transformer le (dir.) en (éd.). Pour les archives (type=manuscrit), le "lieu" correspond au dépôt d'archives, l' "archive" au fonds, la "loc. dans l'archive" à la cote.</summary>
<updated>2014-08-17T23:30:36+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="editor" form="short">dir.</term>
<term name="in">dans</term>
<term name="anonymous">anonyme</term>
<term name="anonymous" form="short">anon.</term>
<term name="accessed">consulté le</term>
<term name="no date">sans date</term>
<term name="no date" form="short">s.&#160;d.</term>
</terms>
</locale>
<macro name="author">
<names variable="author" delimiter=" ">
<name name-as-sort-order="all" font-variant="small-caps" sort-separator=" " initialize-with="." delimiter-precedes-last="never" and="text" delimiter=", "/>
<substitute>
<text macro="editor"/>
</substitute>
</names>
</macro>
<macro name="editor">
<names variable="editor">
<name name-as-sort-order="all" font-variant="small-caps" sort-separator=" " initialize-with="." delimiter-precedes-last="never" and="text" delimiter=", "/>
<label form="short" font-variant="normal" text-case="lowercase" prefix=" (" suffix=")"/>
</names>
</macro>
<macro name="pages">
<group>
<text variable="page" prefix="p.&#160;"/>
</group>
</macro>
<macro name="author-short">
<names variable="author">
<name form="short" delimiter-precedes-last="never" and="text" delimiter=", "/>
<et-al font-variant="normal" font-style="italic"/>
<substitute>
<text macro="editor-short"/>
</substitute>
</names>
</macro>
<macro name="editor-short">
<names variable="editor">
<name form="short" delimiter-precedes-last="never" and="text" delimiter=", "/>
<et-al font-variant="normal" font-style="italic"/>
</names>
</macro>
<macro name="URLaccess">
<group prefix="(" suffix=")">
<text variable="URL"/>
<text macro="access"/>
</group>
</macro>
<macro name="access">
<group prefix=" [" suffix="]">
<text term="accessed" suffix=" "/>
<date variable="accessed">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
</group>
</macro>
<macro name="editor-text">
<group>
<names variable="editor" suffix=" (éd.), ">
<name name-as-sort-order="all" font-variant="small-caps" sort-separator=" " initialize-with="." delimiter-precedes-last="never" and="text" delimiter=", "/>
</names>
<text macro="publisher" suffix=", "/>
<text macro="year-date"/>
</group>
</macro>
<macro name="editor-text-short">
<group>
<names variable="editor" suffix=" (éd.), ">
<name name-as-sort-order="all" form="short" font-variant="small-caps" delimiter-precedes-last="never" and="text" delimiter=", "/>
</names>
<text macro="year-date"/>
</group>
</macro>
<macro name="title">
<choose>
<if type="book" match="any">
<text variable="title" font-style="italic"/>
</if>
<else-if type="webpage" match="any">
<text variable="title"/>
</else-if>
<else-if variable="container-title" match="none">
<text variable="title" font-style="italic"/>
</else-if>
<else>
<text variable="title"/>
</else>
</choose>
</macro>
<macro name="publisher">
<group delimiter=", ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</macro>
<macro name="year-date">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="year"/>
</date>
</if>
<else>
<text term="no date" form="short"/>
</else>
</choose>
<choose>
<if is-numeric="edition">
<group vertical-align="sup">
<number variable="edition"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<macro name="type-sorting">
<choose>
<if type="book" variable="editor author" match="all">
<text value="1"/>
</if>
<else-if type="manuscript">
<text value="2"/>
</else-if>
<else>
<text value="3"/>
</else>
</choose>
</macro>
<macro name="locator">
<choose>
<if locator="paragraph">
<text variable="locator" prefix=", § "/>
</if>
<else-if locator="folio">
<text variable="locator" prefix=",&#160;fol.&#160;"/>
</else-if>
<else>
<group prefix=",&#160;">
<label variable="locator" form="short" suffix=".&#160;"/>
<text variable="locator"/>
</group>
</else>
</choose>
</macro>
<citation et-al-min="4" et-al-use-first="3" delimiter-precedes-et-al="never" disambiguate-add-year-suffix="true">
<sort>
<key variable="issued"/>
</sort>
<layout delimiter="&#160;; ">
<choose>
<if position="ibid-with-locator">
<group>
<text term="ibid" text-case="capitalize-first" font-style="italic"/>
<text macro="locator"/>
</group>
</if>
<else-if position="ibid">
<text term="ibid" text-case="capitalize-first" font-style="italic"/>
</else-if>
<else-if type="book" variable="editor author" match="all">
<group suffix=".">
<text macro="author-short" font-variant="small-caps" suffix=", "/>
<text macro="title" suffix=", "/>
<text macro="editor-text-short"/>
<text macro="locator"/>
</group>
</else-if>
<else-if type="manuscript">
<group delimiter=", ">
<text variable="publisher-place"/>
<text variable="archive_location"/>
<text macro="locator"/>
</group>
</else-if>
<else>
<text macro="author-short" suffix="&#160;" font-variant="small-caps"/>
<text macro="year-date"/>
<text macro="locator"/>
</else>
</choose>
</layout>
</citation>
<bibliography subsequent-author-substitute="">
<sort>
<key macro="type-sorting"/>
<key macro="author"/>
<key variable="issued"/>
<key variable="title"/>
</sort>
<layout suffix=".">
<choose>
<if type="book" variable="editor author" match="all">
<group suffix=".">
<text macro="author" suffix=", "/>
<text macro="title" suffix=", "/>
<text macro="editor-text"/>
</group>
</if>
<else-if type="manuscript">
<group delimiter=", ">
<text variable="archive_location"/>
<text variable="archive"/>
<text variable="title" font-style="italic"/>
</group>
<group prefix=" (" suffix=")">
<date variable="issued">
<date-part name="year"/>
</date>
</group>
</else-if>
<else>
<group display="block">
<text macro="author" suffix="&#9;"/>
</group>
<group display="left-margin">
<text macro="year-date" suffix=", "/>
<choose>
<if type="thesis">
<group delimiter=", " suffix=".">
<text macro="title" font-style="italic"/>
<text variable="genre"/>
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</if>
<else-if type="webpage">
<group delimiter=" ">
<text macro="title" font-style="italic"/>
<text macro="URLaccess"/>
</group>
</else-if>
<else-if type="article-journal article-magazine article-newspaper broadcast personal_communication thesis entry-dictionary entry-encyclopedia" match="any">
<group delimiter=", " suffix=".">
<text macro="title" quotes="true"/>
<text variable="container-title" font-style="italic"/>
<text variable="volume"/>
<text variable="issue"/>
<text macro="pages"/>
</group>
</else-if>
<else-if type="book graphic" match="any">
<group suffix=".">
<text macro="title" suffix=", "/>
<text macro="publisher"/>
</group>
</else-if>
<else-if type="chapter paper-conference" match="any">
<text macro="title" quotes="true" suffix=", "/>
<group delimiter=", ">
<group delimiter=" ">
<text term="in"/>
<text macro="editor"/>
</group>
<text variable="container-title" font-style="italic"/>
<text macro="publisher"/>
<text macro="pages"/>
</group>
</else-if>
</choose>
</group>
</else>
</choose>
</layout>
</bibliography>
</style>

View file

@ -0,0 +1,34 @@
```
% pandoc -f biblatex -t markdown -s
@book{goethe2005,
langid = {german},
location = {{Frankfurt am Main}},
title = {Not A Real Book},
date = {2005},
author = {family=Goethe, given=Johann Wolfgang, prefix=von, useprefix=false and given=Antonie, prefix=van, family=Leeuwenhoek, useprefix=true}, editor = {Schöne, Albrecht}
}
^D
---
nocite: '[@*]'
references:
- author:
- dropping-particle: von
family: Goethe
given: Johann Wolfgang
- family: Leeuwenhoek
given: Antonie
non-dropping-particle: van
editor:
- family: Schöne
given: Albrecht
id: goethe2005
issued: 2005
language: 'de-DE'
publisher-place: Frankfurt am Main
title: Not A Real Book
type: book
---
```

View file

@ -0,0 +1,78 @@
```
% pandoc -f biblatex -t markdown -s
@comment{
Adapted from biblatex-example.bib
Formatted with pandoc and chicago-author-date.csl, 2013-10-23:
(Aksin et al. 2006)
Aksin, Özge, Hayati Türkmen, Levent Artok, Bekir Çetinkaya, Chaoying Ni,
Orhan Büyükgüngör, and Erhan Özkal. 2006. “Effect of Immobilization on
Catalytic Characteristics of Saturated Pd-N-heterocyclic Carbenes in
Mizoroki-Heck Reactions.” *J. Organomet. Chem.* 691 (13): 30273036.
Formatted with pandoc and apa.csl, 2013-10-23:
(Aksin et al., 2006)
Aksin, Ö., Türkmen, H., Artok, L., Çetinkaya, B., Ni, C., Büyükgüngör,
O., & Özkal, E. (2006). Effect of immobilization on catalytic
characteristics of saturated Pd-N-heterocyclic carbenes in Mizoroki-Heck
reactions. *J. Organomet. Chem.*, *691*(13), 30273036.
}
@string{ jomch = {J.~Organomet. Chem.} }
@Article{aksin,
author = {Aks{\i}n, {\"O}zge and T{\"u}rkmen, Hayati and Artok, Levent
and {\c{C}}etinkaya, Bekir and Ni, Chaoying and
B{\"u}y{\"u}kg{\"u}ng{\"o}r, Orhan and {\"O}zkal, Erhan},
title = {Effect of immobilization on catalytic characteristics of
saturated {Pd-N}-heterocyclic carbenes in {Mizoroki-Heck}
reactions},
journaltitle = jomch,
date = 2006,
volume = 691,
number = 13,
pages = {3027-3036},
indextitle = {Effect of immobilization on catalytic characteristics},
}
^D
---
nocite: '[@*]'
references:
- author:
- family: Aksın
given: Özge
- family: Türkmen
given: Hayati
- family: Artok
given: Levent
- family: Çetinkaya
given: Bekir
- family: Ni
given: Chaoying
- family: Büyükgüngör
given: Orhan
- family: Özkal
given: Erhan
container-title: J. Organomet. Chem.
id: aksin
issue: 13
issued: 2006
page: '3027-3036'
title: 'Effect of immobilization on catalytic characteristics of
saturated Pd-N-heterocyclic carbenes in Mizoroki-Heck reactions'
type: 'article-journal'
volume: 691
---
```

View file

@ -0,0 +1,71 @@
```
% pandoc -f biblatex -t markdown -s
@comment{
Adapted from biblatex-example.bib
Formatted with pandoc and chicago-author-date.csl, 2013-10-23:
(Almendro et al. 1998)
Almendro, José L., Jacinto Martín, Alberto Sánchez, and Fernando Nozal.
1998. “Elektromagnetisches Signalhorn.”
Formatted with pandoc and apa.csl, 2013-10-23:
(Almendro, Martín, Sánchez, & Nozal, 1998)
Almendro, J. L., Martín, J., Sánchez, A., & Nozal, F. (1998).
Elektromagnetisches Signalhorn.
NOTES:
- CSL styles handling of patent items needs to be improved
}
@Patent{almendro,
author = {Almendro, Jos{\'e} L. and Mart{\'i}n, Jacinto and S{\'a}nchez,
Alberto and Nozal, Fernando},
title = {Elektromagnetisches Signalhorn},
number = {EU-29702195U},
date = 1998,
location = {countryfr and countryuk and countryde},
hyphenation = {german},
annotation = {This is a patent entry with a location
field. The number is given in the number field. Note
the format of the location field in the database
file. Compare laufenberg, sorace, and
kowalik},
}
^D
---
nocite: '[@*]'
references:
- annote: 'This is a patent entry with a location field. The number is
given in the number field. Note the format of the location field in
the database file. Compare laufenberg, sorace, and kowalik'
author:
- family: Almendro
given: José L.
- family: Martín
given: Jacinto
- family: Sánchez
given: Alberto
- family: Nozal
given: Fernando
id: almendro
issued: 1998
jurisdiction: France; United Kingdom; Germany
language: 'de-DE'
number: 'EU-29702195U'
title: Elektromagnetisches Signalhorn
type: patent
---
```

View file

@ -0,0 +1,66 @@
```
% pandoc -f biblatex -t markdown -s
@comment{
Adapted from biblatex-example.bib
Formatted with pandoc and chicago-author-date.csl, 2013-10-23:
(Angenendt 2002)
Angenendt, Arnold. 2002. “In Honore Salvatoris Vom Sinn und Unsinn der
Patrozinienkunde.” *Revue dHistoire Ecclésiastique* 97: 431456,
791823.
Formatted with pandoc and apa.csl, 2013-10-23:
(Angenendt, 2002)
Angenendt, A. (2002). In Honore Salvatoris Vom Sinn und Unsinn der
Patrozinienkunde. *Revue dHistoire Ecclésiastique*, *97*, 431456,
791823.
}
@Article{angenendt,
author = {Angenendt, Arnold},
title = {In Honore Salvatoris~-- Vom Sinn und Unsinn der
Patrozinienkunde},
journaltitle = {Revue d'Histoire Eccl{\'e}siastique},
date = 2002,
volume = 97,
pages = {431--456, 791--823},
hyphenation = {german},
indextitle = {In Honore Salvatoris},
shorttitle = {In Honore Salvatoris},
annotation = {A German article in a French journal. Apart from that, a
typical article entry. Note the indextitle
field},
}
^D
---
nocite: '[@*]'
references:
- annote: 'A German article in a French journal. Apart from that, a
typical article entry. Note the indextitle field'
author:
- family: Angenendt
given: Arnold
container-title: 'Revue d''Histoire Ecclésiastique'
id: angenendt
issued: 2002
language: 'de-DE'
page: '431-456, 791-823'
title: 'In Honore Salvatoris -- Vom Sinn und Unsinn der
Patrozinienkunde'
title-short: In Honore Salvatoris
type: 'article-journal'
volume: 97
---
```

View file

@ -0,0 +1,62 @@
```
% pandoc -f biblatex -t markdown -s
@comment{
Adapted from biblatex-example.bib
Formatted with pandoc and chicago-author-date.csl, 2013-10-23:
(Aristotle 1907)
Aristotle. 1907. *De Anima*. Edited by Robert Drew Hicks. Cambridge:
Cambridge University Press.
Formatted with pandoc and apa.csl, 2013-10-23:
(Aristotle, 1907)
Aristotle. (1907). *De anima*. (R. D. Hicks, Ed.). Cambridge: Cambridge
University Press.
}
@string{ cup = {Cambridge University Press} }
@Book{aristotle:anima,
author = {Aristotle},
title = {De Anima},
date = 1907,
editor = {Hicks, Robert Drew},
publisher = cup,
location = {Cambridge},
keywords = {primary},
hyphenation = {british},
annotation = {A book entry with an author and an
editor},
}
^D
---
nocite: '[@*]'
references:
- annote: A book entry with an author and an editor
author:
- family: Aristotle
editor:
- family: Hicks
given: Robert Drew
id: 'aristotle:anima'
issued: 1907
keyword: primary
language: 'en-GB'
publisher: Cambridge University Press
publisher-place: Cambridge
title: De anima
type: book
---
```

View file

@ -0,0 +1,63 @@
```
% pandoc -f biblatex -t markdown -s
@comment{
Adapted from biblatex-example.bib
Formatted with pandoc and chicago-author-date.csl, 2013-10-23:
(Aristotle 1929)
Aristotle. 1929. *Physics*. Translated by P. H. Wicksteed and F. M.
Cornford. New York: G. P. Putnam.
Formatted with pandoc and apa.csl, 2013-10-23:
(Aristotle, 1929)
Aristotle. (1929). *Physics*. (P. H. Wicksteed & F. M. Cornford,
Trans.). New York: G. P. Putnam.
}
@Book{aristotle:physics,
author = {Aristotle},
title = {Physics},
date = 1929,
translator = {Wicksteed, P. H. and Cornford, F. M.},
publisher = {G. P. Putnam},
location = {New York},
keywords = {primary},
hyphenation = {american},
shorttitle = {Physics},
annotation = {A book entry with a translator field},
}
^D
---
nocite: '[@*]'
references:
- annote: A book entry with a translator field
author:
- family: Aristotle
id: 'aristotle:physics'
issued: 1929
keyword: primary
language: 'en-US'
publisher: G. P. Putnam
publisher-place: New York
title: Physics
title-short: Physics
translator:
- family: Wicksteed
given: P. H.
- family: Cornford
given: F. M.
type: book
---
```

View file

@ -0,0 +1,65 @@
```
% pandoc -f biblatex -t markdown -s
@comment{
Adapted from biblatex-example.bib
Formatted with pandoc and chicago-author-date.csl, 2013-10-23:
(Aristotle 1968)
Aristotle. 1968. *Poetics*. Edited by D. W. Lucas. Clarendon Aristotle.
Oxford: Clarendon Press.
Formatted with pandoc and apa.csl, 2013-10-23:
(Aristotle, 1968)
Aristotle. (1968). *Poetics*. (D. W. Lucas, Ed.). Oxford: Clarendon
Press.
}
@Book{aristotle:poetics,
author = {Aristotle},
title = {Poetics},
date = 1968,
editor = {Lucas, D. W.},
series = {Clarendon {Aristotle}},
publisher = {Clarendon Press},
location = {Oxford},
keywords = {primary},
hyphenation = {british},
shorttitle = {Poetics},
annotation = {A book entry with an author and an
editor as well as a series field},
}
^D
---
nocite: '[@*]'
references:
- annote: A book entry with an author and an editor as well as a series
field
author:
- family: Aristotle
collection-title: Clarendon Aristotle
editor:
- family: Lucas
given: D. W.
id: 'aristotle:poetics'
issued: 1968
keyword: primary
language: 'en-GB'
publisher: Clarendon Press
publisher-place: Oxford
title: Poetics
title-short: Poetics
type: book
---
```

Some files were not shown because too many files have changed in this diff Show more