Я хочу написать файл markdown со ссылками @ref
(и базой данных BibTeX). При отправке файла его следует преобразовать в отдельный файл markdown, содержащий визуализированные ссылки. Ключ визуализированной ссылки должен быть не числовым, а буквенно-цифровым.
Минимальный пример:
минимальный.md:
@PTDL2008
минимальный.bib:
@article{PTDL2008,
title = {{Service-Oriented Computing: State of the Art and Research Challenges}},
author = {Michael P. Papazoglou and Paolo Traverso and Schahram Dustdar and Frank Leymann},
journal = {International Journal of Cooperative Information Systems (IJCIS)},
year = {2008},
month = {June},
number = {2},
pages = {233--255},
volume = {17},
doi = {10.1109/MC.2007.400}
}
ПолучатьDIN 1505-2 (буквенно-цифровой, немецкий)и сохраните его в том же каталоге.
Вызов командной строки:
pandoc minimal.md -o minimal-new.md --atx-headers --bibliography="minimal.bib" --csl=din-1505-2-alphanumeric.csl
Результат вывода:
ссылка pandoc-citeproc без печатной формы
Сгенерированный файл minimum-new.md не содержит визуализированной ссылки.
решение1
Заэта темав списке рассылки pandoc-discuss вы сможете расширить ссылки, добавив
-t markdown-citations
к вашим аргументам pandoc. Это переводится как "markdown минус цитаты" — то есть вы отключаете citations
расширение в выходном формате, поэтому ключ цитаты будет расширен в выходных данных. (По крайней мере, я так это понимаю.)
Я попробовал это с вашим минимальным примером и версией pandoc 1.17.0.2, и получил следующий результат:
**???**
<div id="refs" class="references">
<div id="ref-PTDL2008">
<span style="font-variant:small-caps;">Papazoglou, Michael P.</span> ;
<span style="font-variant:small-caps;">Traverso, Paolo</span> ; <span
style="font-variant:small-caps;">Dustdar, Schahram</span> ; <span
style="font-variant:small-caps;">Leymann, Frank</span>: Service-Oriented
Computing: State of the Art and Research Challenges. In: *International
Journal of Cooperative Information Systems (IJCIS)* Bd. 17 (2008),
Nr. 2, S. 233–255
</div>
</div>
Итак, ссылка была отформатирована, но содержит HTML-теги для вещей, которые markdown не может сделать изначально. Если вам нужен "чистый" markdown, вам нужно отключить еще несколько расширений в вашем спецификаторе вывода -- используйте
-t markdown-raw_html-citations-native_divs-native_spans
и вы получите
**???**
PAPAZOGLOU, MICHAEL P. ; TRAVERSO, PAOLO ; DUSTDAR, SCHAHRAM ; LEYMANN,
FRANK: Service-Oriented Computing: State of the Art and Research
Challenges. In: *International Journal of Cooperative Information
Systems (IJCIS)* Bd. 17 (2008), Nr. 2, S. 233–255
Теперь «маленькие заглавные буквы», предписанные файлом CSL, теперь заменяются обычными заглавными буквами.
К сожалению, это лишь половина решения: библиографическая запись отформатирована правильно, но по какой-то причине сама внутритекстовая ссылка отображается как **???**
. Пока что я не нашел решения этой проблемы.
решение2
В соответствии сhttps://github.com/jgm/pandoc-citeproc/issues/195это означает, что ссылка не найдена.
Но мне пример кажется нормальным. Как также упоминалось в проблеме, он зависит от предоставленного csl-файла. Я бы рекомендовал проверить его без --csl
указания и с использованием стиля цитирования по умолчанию, это должно дать более понятный вывод.