![引用演示文稿中的特定幻灯片](https://linux22.com/image/264218/%E5%BC%95%E7%94%A8%E6%BC%94%E7%A4%BA%E6%96%87%E7%A8%BF%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E5%B9%BB%E7%81%AF%E7%89%87.png)
我遇到了以下问题,但根本找不到解决方案。
我正在做作业,我想引用教授给我们的幻灯片。因此,如果我输入“ \cite[20]{presentationOne}
I want [1, F. 20]
as result”而不是“ [1, S. 20]
.”(F. 代表 Folie,S. 代表 Seite,我来自德国)。
我也引用了书籍,因此简单地改变所有引用并不是解决方案。
我使用biblatex
biber 后端。
希望有人能找到一个干净的解决方案。否则我就得在前言中提到我引用这些引文的意思。
答案1
有不同的方法可以实现这一点:
- 你可以使用类似的东西
\cite[F.~20]{reference}
。只要可选参数不仅仅是一个数字,就会biblatex
按字面意思输出它,而不是在它前面放一个分页字符串。¹ - 正如您在问题评论中提到的,您可以
presentation
为演示文稿定义一个单独的书目驱动程序。然后,您可以定义一个特定的后记样式\DeclareFieldFormat[presentation]{postnote}{F~#1}
或类似的东西。这将是某种全局解决方案。 .bib
您可以为文件中的每个项目设置pagination = {page|column|line|verse|section|paragraph|none}
字段。biblatex
评估此字段并根据字段的值更改其后记的格式pagination
。3.1 您现在可以只设置分页字段,这样
none
就可以防止biblatex
在数字前打印“p。”,但您仍然需要注意在正确的位置设置“F.~”。3.2 您可以滥用默认类型之一(
column
等verse
)来满足您的需求。在这种情况下,您必须.bib
为您的条目提供一个pagination = {verse}
字段,并通过 重新定义相应的verse
语言环境以满足您的需求\DefineBibliographyStrings{german}{verse = {Folie}, verses = {Folien}}
。3.3 我没有查看代码,
biblatex
但我认为可以复制并修改分页命令的代码,以将另一个值(类似于slide
)添加到paginantion
类型列表中。从长远来看,这将是解决问题最干净但也最具侵入性的方法。
––
¹ 这并非全部内容,因为还有类似\psq
宣布“和以下页面”的命令。但与数字不同的所有内容和这些特殊命令都由 biblatex 打印出来,无需进一步处理。
答案2
扩展Benedikt Bauer 的精彩回答,定义自己的分页样式其实并不难(第 3.3 点)。
biblatex
pagination
以一种对我们来说非常方便的方式处理该字段:
该pagination
字段采用一个键,例如标准键page
、column
、line
、verse
、section
或。读取键并尝试将命名为键之后的页码之前;当然, 的情况除外,在这种情况下不会插入任何 bibstring paragraph
。none
biblatex
bibstring
pagination
none
因此,如果我们定义两个新的bibliography
字符串slide
和slides
,那么我们就可以pagination = {slide}
在.bib
条目中指定,然后就可以了。
\NewBibliographyString{slide,slides}
\DefineBibliographyStrings{ngerman}{%
slide = {F\adddot},%{Folie}
slides = {F\adddot},%{Folien}
}
\DefineBibliographyStrings{english}{%
slide = {s\adddot},%{slide}
slides = {ss\adddot},%{slides}
}
不幸的是\DefineBibliographyStrings
,可以在序言中使用的 不支持短 和长bibstrings
;如果您想要这些,您将必须定义自己的.lbx
文件,继承所有其他功能,但添加slide
和slides
。
\ProvidesFile{ngerman-slides.lbx}[2013/10/15 ngerman with slides]
\InheritBibliographyExtras{ngerman}
\NewBibliographyString{slide,slides}
\DeclareBibliographyStrings{%
inherit = {ngerman},
slide = {{Folie}{F\adddot}},
slides = {{Folien}{F\adddot}},
}
然后可以通过 加载该语言定义\DeclareLanguageMapping{ngerman}{ngerman-slides}
。
数学家协会
\documentclass[11pt]{scrartcl}
\begin{filecontents}{\jobname.bib}
@inbook{DahmenReusken:Interpolation,
author = {Wolfgang Dahmen and Arnold Reusken},
title = {Interpolation},
chapter = {8},
booktitle = {Numerik für Ingenieure und Naturwissenschaftler},
booktitleaddon = {Folien für Dozenten},
date = {2007-11-21},
url = {https://www.igpm.rwth-aachen.de/Download/DahmenReusken/Folien/Kapitel8.pdf},
urldate = {2013-08-11},
pagination = {slide},
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[babel]{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\NewBibliographyString{slide,slides}
\DefineBibliographyStrings{ngerman}{%
slide = {F\adddot},%{Folie}
slides = {F\adddot},%{Folien}
}
\DefineBibliographyStrings{english}{%
slide = {s\adddot},%{slide}
slides = {ss\adddot},%{slides}
}
\addbibresource{\jobname.bib}
\begin{document}
\parencite[vgl.][4]{DahmenReusken:Interpolation}.
\printbibliography
\end{document}
产量