Seite 1 von 2
Eigener \zitat -Befehl - mit \MakeAutoQuote und Literaturang
Verfasst: Mo 31. Aug 2015, 12:24
von Boris
Hallo,
ich bemühe mich gerade um einen eigenen Zitat-Befehl, den ich so ohne weiteres und ohne Hilfe leider nicht auf die Beine gestellt bekomme. Und das obwohl ich schon fleißig die BiBLaTeX- und die csquotes-Dokumentation gewälzt habe.
Der Befehl soll so funktionieren: \NAME[ZITATTEXT][PRE][POST][#bib#]
- NAME ist der Name des Befehl - klar
- ZITATTEXT soll Text enthalten, der in Anführungszeichen gesetzt wird. Zusätzlich soll dieser Text, sofern er im kompilierten Dokument (pdf) länger ist als drei Zeilen, automatisch als Blockzitat dargestellt werden.
- [PRE][POST][#bib#] ist nur ein umstrukturierter \autocite[][]{} -Befehl. Sofern man PRE, POST und #bib# leer lässt sollte es eine Ausgabe ohne Refernz, also nur Text in Anführungszeichen geben.
Kann das gehen? Und wenn ja, wie?
Beste Grüße
Boris
Minimalbeispiel:
% !TeX program = xelatex
% !TeX encoding = UTF-8 Unicode
\documentclass[%
12pt,
a4paper,
oneside
]{article}
\usepackage{xltxtra}% lädt fontspec, xunicode, ifxetex und graphicx
\usepackage{polyglossia}
\setdefaultlanguage{german} %Defaultlanguage - deutsch
\usepackage[%
german=quotes,
threshold=3,
thresholdtype=lines
]{csquotes}
\MakeAutoQuote{»}{«}
\MakeAutoQuote*{›}{‹}
\usepackage[%
backend=biber,
citestyle=authoryear-icomp,
bibstyle=authortitle-icomp,
autocite=inline
]{biblatex}
\addbibresource{test.bib}
\usepackage{blindtext}
\begin{document}
Hallo?\\
\autocite[vgl.][270]{Adorno.2008}
\newpage
\printbibliography
\end{document}
test.bib:
@incollection{Adorno.2008,
author = {Adorno, Theodor W.},
title = {Kann das Publikum wollen?},
pages = {267--270},
publisher = {VS Verlag f{\"u}r Sozialwissenschaften},
isbn = {3531143719},
editor = {Kleiner, Marcus and Nieland, J{\"o}rg-Uwe},
booktitle = {Grundlagentexte zur sozialwissenschaftlichen Medienkritik},
year = {2008},
address = {Wiesbaden}
}
Verfasst: Mo 31. Aug 2015, 15:58
von cgnieder
Ich glaube, den Befehl, den Du möchtest, gibt es schon: das Paar \blockquote / \blockcquote
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[%
german=quotes,
threshold=3,
thresholdtype=lines
]{csquotes}
\usepackage[%
backend=biber,
citestyle=authoryear-icomp,
bibstyle=authortitle-icomp,
autocite=inline
]{biblatex}
\addbibresource{biblatex-examples.bib}
\newcommand\blindtext{\B\B\B\B\B\B}
\newcommand\B{\A\A\A\A}
\newcommand\A{foo bar baz }
\begin{document}
% inline
\textquote{\emph{text} foo bar baz} \par
\textcquote[vgl.][270]{companion}{\emph{text} foo bar baz}
% inline
\blockquote{\emph{block:inline} foo bar baz} \par
\blockcquote[vgl.][270]{companion}{\emph{block:inline} foo bar baz}
% block, da länger als drei Zeilen
\blockquote{\emph{block:display} \blindtext} \par
\blockcquote[vgl.][270]{companion}{\emph{block:display} \blindtext}
% block
\begin{displayquote}
\emph{display} foo bar baz
\end{displayquote}
\begin{displaycquote}[vgl.][270]{companion}
\emph{display} foo bar baz
\end{displaycquote}
\end{document}
Layout aller dieser Befehle lässt sich anpassen. Wenn nötig könnte man um \blockquote / \blockcquote auch ein Wrapper-Makro herum schreiben, aber da man ja weiß, wenn man die Quelle angeben will, kann man genauso gut das nötige c dann in den Befehlsnamen einfügen.
Grüße
Verfasst: Di 1. Sep 2015, 11:25
von Boris
Oh man! Super!
Irgendwie habe ich mir das ja schon gedacht, dass es soetwas sinnvolles schon gibt. Aber wenn man nicht weiß wonach man suchen soll.... wirds schwierig.
Also vielen Dank für die schnelle und hilfreiche Antwort!
CASE CLOSED
Bestens
Boris
Verfasst: Do 3. Sep 2015, 13:49
von Boris
Layout aller dieser Befehle lässt sich anpassen.
Da muss ich jetzt nach viel Rumprobiererei doch nochmal nachfragen. In dem folgenden Minimalbeispiel beschränke ich mich auf \blockquote und \blockcquote, da die beiden soweit ich das einschätzen kann, das tun, was ich brauche. Jetzt ist es so, das mein Dokument 1,5-fachen Zeilenabstand hat (siehe MWE).
Folgendes habe ich versucht mit den Hooks von csquotes herzustellen, bin dabei aber nicht erfolgreich gewesen:
- Im Display-Layout Anführungszeichen innerhalb des Blocks
- Einzeiliger Zeilenabstand im Display-Layout
- Ein automatisches "[...]" am Ende des Zitats, wenn kein Satzzeichen am Ende des Zitats steht. Á la "Dis ist ein unvollständiger Satz [...]" (vgl. Knuth 1998, S. 21)
Wenn mir da jemand nochmal was zu erklären kann, wäre das spitze!
Beste Grüße
Boris
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[%
german=quotes,
threshold=3,
thresholdtype=lines
]{csquotes}
\usepackage[%
backend=biber,
citestyle=authoryear-icomp,
bibstyle=authortitle-icomp,
%autocite=inline
]{biblatex}
\usepackage{setspace}
\onehalfspacing
\addbibresource{biblatex-examples.bib}
\SetCiteCommand{\autocite}
%\newenvironment*{singlespcquote}
% {\begin{spacing}{1}\quote}
% {\endquote \end{spacing}}
%\SetBlockEnvironment{singlespcquote}
% Mein Versuch für den Zeilenabstand
\begin{document}
\noindent
Hier steht so ein bisschen Text
\blockquote{blockquote: Einfach ein kurzer Text}\par
\noindent
Hier steht mal wieder Text \blockcquote[siehe][270]{companion}{blockcquote: Ein kurzer Text mit Literaturangaben} \par
\noindent
ah hier muss auch noch ein bisschen normaler Text hin
\blockquote{blockquote: Nun ein längeres Zitat, das wird dann ja erwartungsgemäß automatisch zu einem Blockzitat, wenn es lang genug ist. Eigentlich müsste es automatisch zu einem solchen werden, wenn der enthaltene Text über mehr als drei Zeilen geht. Gelich müsste es reichen. Gleich, mit ein paar Wörtern mehr noch sollte es aber klappen - der automatische Umschwung, man klasse Erfindung!} \par
\noindent
So! Hier nochmal Text und dann ein Blockzitat mit Literaturangaben
\blockcquote[vgl.][269]{companion}{blockcqote: Nun ein längeres Zitat, das wird dann ja erwartungsgemäß automatisch zu einem Blockzitat, wenn es lang genug ist. Eigentlich müsste es automatisch zu einem solchen werden, wenn der enthaltene Text über mehr als drei Zeilen geht. Gelich müsste es reichen. Gleich, mit ein paar Wörtern mehr noch sollte es aber klappen - der automatische Umschwung, man klasse Erfindung!}
\printbibliography
\end{document}
Verfasst: Do 3. Sep 2015, 14:36
von Gast
Was Du möchtest wird praktischerweise in Kapitel 2.9 der [d]csquotes[/d]-Dokumentation implementiert, ich habe es sicherheitshalber auch für Blöcke übernommen.
\renewcommand{\mktextquote}[6]{%
#1#2\ifblank{#4}{\ifpunct{}{ \textelp{}}}{#4}#5#3#6}
\renewcommand{\mkblockquote}[4]{%
\openautoquote#1\ifblank{#2}{\ifpunct{}{ \textelp{}}}{#2}#3\closeautoquote#4}
Wenn Du Deinen Versuch für den einfachen Zeilenabstand nicht nutzen möchtest (der sah ganz vernünftig aus), kannst Du stattdessen \mkblockquote auf
\renewcommand{\mkblockquote}[4]{\singlespace\nointerlineskip%
\openautoquote#1\ifblank{#2}{\ifpunct{}{ \textelp{}}}{#2}#3\closeautoquote#4}
setzen.
Zusammen
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[%
german=quotes,
threshold=3,
thresholdtype=lines
]{csquotes}
\usepackage[%
backend=biber,
citestyle=authoryear-icomp,
bibstyle=authortitle-icomp,
%autocite=inline
]{biblatex}
\usepackage{setspace}
\onehalfspacing
\addbibresource{biblatex-examples.bib}
\SetCiteCommand{\autocite}
%\newenvironment*{singlespcquote}
% {\begin{spacing}{1}\quote}
% {\endquote \end{spacing}}
%\SetBlockEnvironment{singlespcquote}
% Mein Versuch für den Zeilenabstand
\renewcommand{\mktextquote}[6]{%
#1#2\ifblank{#4}{\ifpunct{}{ \textelp{}}}{#4}#5#3#6}
\renewcommand{\mkblockquote}[4]{\singlespace\nointerlineskip%
\openautoquote#1\ifblank{#2}{\ifpunct{}{ \textelp{}}}{#2}#3\closeautoquote#4}
\begin{document}
\noindent
Hier steht so ein bisschen Text
\blockquote{blockquote: Einfach ein kurzer Text}\par
\noindent
Hier steht mal wieder Text \blockcquote[siehe][270]{companion}{blockcquote: Ein kurzer Text mit Literaturangaben} \par
\noindent
ah hier muss auch noch ein bisschen normaler Text hin
\blockquote{blockquote: Nun ein längeres Zitat, das wird dann ja erwartungsgemäß automatisch zu einem Blockzitat, wenn es lang genug ist. Eigentlich müsste es automatisch zu einem solchen werden, wenn der enthaltene Text über mehr als drei Zeilen geht. Gelich müsste es reichen. Gleich, mit ein paar Wörtern mehr noch sollte es aber klappen - der automatische Umschwung, man klasse Erfindung} \par
\noindent
So! Hier nochmal Text und dann ein Blockzitat mit Literaturangaben
\blockcquote[vgl.][269]{companion}{blockcqote: Nun ein längeres Zitat, das wird dann ja erwartungsgemäß automatisch zu einem Blockzitat, wenn es lang genug ist. Eigentlich müsste es automatisch zu einem solchen werden, wenn der enthaltene Text über mehr als drei Zeilen geht. Gelich müsste es reichen. Gleich, mit ein paar Wörtern mehr noch sollte es aber klappen - der automatische Umschwung, man klasse Erfindung!}
\noindent
ah hier muss auch noch ein bisschen normaler Text hin
\blockquote{blockquote: aber kurz} und \blockquote{blockquote: aber kurz.} \par
\noindent
So! Hier nochmal Text und dann ein Blockzitat mit Literaturangaben
\blockcquote[vgl.][269]{companion}{blockquote: aber kurz} und \blockcquote[vgl.][269]{companion}{blockquote: aber kurz.}
\printbibliography
\end{document}
Verfasst: Do 3. Sep 2015, 14:46
von cgnieder
Nicht zum Thema, aber: die vielen \noindent sind komisch. Wenn Du den Absatzeinzug grundsätzlich unterdrücken willst, dann gibt es dafür bessere Methoden.
Übrigens: einen Gedankenstrich gibt man mit -- ein (zwei Bindestriche hintereinander). LaTeX erkennt das als Ligatur und es wird dann ein Gedankenstrich gedruckt.
Grüße
Verfasst: So 13. Sep 2015, 14:40
von Boris
Danke für die vielen guten Tipps! Läuft alles wie geplant und habe nebenbei durch nachvollziehen sogar noch was gelernt!
Kleine Rückfrage zum obigen Thema:
Wie kann ich die Schriftgröße von Zitat und Verweis anpassen? Konkret heißt es: 10pt bei Ausgabe im Display-Format.
Zeilenabstand und Einrückung laufen ja schon super.
PS.
Wo lese ich mir das passende Wissen für socleh sachen an? Ich suche bisweilen immer lange im Netz und wälze die Dokumentationen, komme damit aber zumindest bei diesen beiden letzten Fällen nicht weiter und schreibe dann eben einen Beitrag. Oder anders gefragt: Woher wisst ihr das alles?

Verfasst: So 13. Sep 2015, 14:58
von Gast
Benutzt Du tatsächlich die Dokumentenklasse article mit der Option 12pt?
Dann sollte es nach der Tabelle in
What point (pt) font size are \Large etc.? reichen, ein \footnotesize in das \mkblockquote-Setup zu schmuggeln
\renewcommand{\mkblockquote}[4]{\singlespace\footnotesize\nointerlineskip%
\openautoquote#1\ifblank{#2}{\ifpunct{}{ \textelp{}}}{#2}#3\closeautoquote#4}
Dabei übergehen wir natürlich heimlich das LaTeX-point-vs-big-point-Problem (
Why does PDFLaTeX and XeLaTeX generates 11.955 font size for 12pt documentclass option?,
Why does a TeX point differ from a Desktop Publishing point?,
Setting a document in MS Word-12pt (12bp),
Globally redefining 1 pt to 1/72 in (PostScript point) and other similar changes,
What are the various units (ex, em, in, pt, bp, dd, pc) expressed in mm?), aber ob das nachher jemand sieht, ist fraglich.
Verfasst: So 13. Sep 2015, 15:43
von Boris
Uh! Tatsächlich bin ich zugunsten der Lesbarkeit auf 14pt gegangen.
\documentclass[%
paper=a4,
pagesize,
DIV=calc,
fontsize=14,
oneside,
titlepage,
ngerman,
headings=normal
]%
{scrartcl}
Ich denke aber, dass eine relative anpassung gar nicht so falsch ist. Habs in Anlehnung an die Liste mit \small mal versucht.
Gruß
Verfasst: So 13. Sep 2015, 17:02
von Gast
Auch mit der 14-pt-Schrift (ist das nicht ein bisschen groß? Was wird denn das für ein Text?) ist \footnotesize immer noch auf 10pt. Das sieht schon etwas merkwürdig aus, \small sieht da etwas normaler aus.