Seite 1 von 2

Block-Quotes mit scrartcl

Verfasst: Fr 17. Jan 2014, 13:14
von MoonKid
Ich möchte Zitate bis zu einer bestimmten Länge (3 Zeilen) im Text in Anführungszeichen und in der normalen Textschriftart haben.
Länger als 3 Zeilen, sollen serifenlos insgesamt eingerückt und auch mit Anführungszeichen.

Bitte nicht hauen! Das ist wieder Dozentenvorgabe.

Mein \mkblockquote (unten im Code) hat früher und heute mit der apa6-Klasse problemlos funktioniert. Mit scrarticl gibt es aber irgendwelche Probleme die ich nicht nachvollziehen kann.

1.
Das letzte Anführungszeichen bei einem Zitat kommt in eine neue Zeile. Das sieht natürlich blöd aus. Scheinbar wird am Ende vom Zitat ein Zeilenumbruch gemacht und dann erst das Anführungszeichen gesetzt.

2.
Bei mehr als drei Zeilen Zitat (zweiter \mkblockquote Aufruf im Code) bekomme ich folgende Fehler.
  4 || (/usr/local/texlive/2013/texmf-dist/tex/latex/metalogo/metalogo.sty))
  5 |55 error| Missing \endcsname inserted. \char                                                                   
  6 |55 error| Missing \endcsname inserted. \char
  7 |55 error| Missing \endcsname inserted. \char  
Hier der Code.
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}

% -- Font --
\setmainfont{Times New Roman}
\setsansfont{Arial}
\KOMAoption{fontsize}{12pt}

% -- Block-Zitate --
\usepackage{csquotes}
\AtBeginEnvironment{quote}{\sffamily} % serifen-los
\renewcommand{\mkblockquote}[4]{\leavevmode\llap{\textooquote}#1#2\textcoquote#3#4} % Block in ``
%\newcommand{\mkblockquoteref}[1] {\blockquote[\nameref{transkription}]{#1}}

% -- Sprache --
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% -- Absatzeinrückung --
% http://www.golatex.de/viewtopic,p,56119.html
\usepackage{etoolbox}
\makeatletter
\patchcmd{\raggedright}{\z@}{0,5cm}{}{} % \raggedright Neudefiniton
\makeatother
\usepackage{indentfirst} % ersten Absatz auch einrücken

\begin{document}
\raggedright % linksbündig, ohne Silbentrennung

\newpage\section{Die Grundrechte}
\subsection{Art 1}
Die Würde des Menschen ist unantastbar. Sie zu achten und zu schützen ist Verpflichtung aller
staatlichen Gewalt.

\mkblockquote{Kleines Nicht-blockmäßig-eingerücktes inline-Zitat.}

Das Deutsche Volk bekennt sich darum zu unverletzlichen und unveräußerlichen Menschenrechten als
Grundlage jeder menschlichen Gemeinschaft, des Friedens und der Gerechtigkeit in der Welt.

\mkblockquote{Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung als
unmittelbar geltendes Recht.
Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung als
unmittelbar geltendes Recht.
Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung als
unmittelbar geltendes Recht.
Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung als
unmittelbar geltendes Recht.
Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung als
unmittelbar geltendes Recht.
Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung als
unmittelbar geltendes Recht.}
\end{document}

Verfasst: Fr 17. Jan 2014, 13:41
von cgnieder
Ich würde was in die Richtung machen:
% arara: xelatex
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage[ngerman]{babel}

\usepackage[thresholdtype=lines]{csquotes}
% nach drei Zeilen verwendet \blockquote die `quote' Umgebung, darunter
% \textquote; mit `thresholdtype=words' Option wäre es nach drei Worten.
% Einstellen lässt sich das mit:
% \SetBlockThreshold{3}

% `myquote'-Umgebung, die Zitat mit Anführungszeichen umgibt und Text
% serifenlos setzt und intern die `quote'-Umgebung verwendet:
\newenvironment{myquote}
  {\quote\sffamily\glqq}
  {\unskip\grqq\endquote}
% `csquotes' sagen, dass es statt `quote' `myquote' verwenden soll:
\SetBlockEnvironment{myquote}

\usepackage{lipsum}% Dummytext

\begin{document}

Text \blockquote{Ein kurzes Zitat} \lipsum[2]

Text \blockquote{Ein längeres Zitat, das zwar länger als eine Zeile werden
  soll, aber unter dem Limit von drei Zeilen bleibt und daher im Fließtext
  eingebunden erscheint.} \lipsum[2]

Text \blockquote{\lipsum*[2]} \lipsum[2]

\end{document}
Grüße

Verfasst: Fr 17. Jan 2014, 13:53
von esdd
Vielleicht schaust du dir den ursprünglichen Vorschlag von Ulrike noch mal genau an: dort wird zwar \mkblockquote genauso umdefiniert wie in deinem Beispiel hier, aber im Dokumententeil steht \blockquote ...

Gruß
Elke

Verfasst: Fr 17. Jan 2014, 15:13
von MoonKid
esdd hat geschrieben:wird zwar \mkblockquote genauso umdefiniert wie in deinem Beispiel hier, aber im Dokumententeil steht \blockquote
Ach Mensch, da versteh ich meinen eigenen Mist nicht! Danke, das wars.

Wie ist jetzt Ulrikes Lösung mit der von Clemens zu bewerten? Die Wege/Mechanismen scheinen ja recht unterschiedlich zu sein.

Verfasst: Fr 17. Jan 2014, 15:15
von cgnieder
MoonKid hat geschrieben:Wie ist jetzt Ulrikes Lösung mit der von Clemens zu bewerten? Die Wege/Mechanismen scheinen ja recht unterschiedlich zu sein.
Im Zweifel hat Ulrike recht! :) Ansonsten schau Dir beide Varianten an und nimm die, Die Dir besser gefällt.

Grüße

Re: Block-Quotes mit scrartcl

Verfasst: Fr 17. Jan 2014, 15:21
von Besserwisser
Davon abgesehen, dass jedem, der mehr als nur eine Sekunde darauf verschwendet, klar sein sollte, dass die Verwendung irgendwelcher kommerzieller Fonts in einem vollständigen Minimalbeispiel wenig sinnvoll ist, glaube ich Dir das:
MoonKid hat geschrieben:Mein \mkblockquote (unten im Code) hat früher und heute mit der apa6-Klasse problemlos funktioniert.
nie und nimmer. Wenn man nämlich in dem Beispiel einfach mal apa6 statt scrartcl einsetzt und die eine KOMA-Script-Abhängigkeit zusammen mit der saudämlichen Font-Auswahl auskommentiert, geht das ebenfalls schief:
Runaway argument?
! File ended while scanning use of \mkblockquote.
<inserted text> 
                \par 
Das ist auch kein Wunder, wenn Du \mkblockquote mit 4 Argumenten definierst, bei dessen Verwendung aber nur eines angibst.

Wenn man dann den Elkes Links folgt, den eigentlich Du hättest mit der Frage mitliefern sollen, dann wird auch sofort klar, was da falsch läuft. Ich will jetzt nicht Ulrike aus der dortigen Diskussion zitieren, aber die Frage, warum Du uns und Dir das Leben so schwer machst, stellt sich schon …

Verfasst: Fr 17. Jan 2014, 16:03
von MoonKid
cgnieder hat geschrieben:Im Zweifel hat Ulrike recht! :) Ansonsten schau Dir beide Varianten an und nimm die, Die Dir besser gefällt
Leserlicher find ich deine Variante. Allerdings scheint das nur mit babel zu funktionieren. Mit polyglossia läuft es nicht. Da bekomme ich sowas
Package csquotes Warning: Using preliminary 'polyglossia' interface.
(csquotes)                Some of the multilingual features may not
(csquotes)                work as expected.

(./2block.aux) (/usr/local/texlive/2013/texmf-dist/tex/latex/tipa/t3cmr.fd)
! Undefined control sequence.
\myquote ->\quote \sffamily \glqq 
                                  
l.34 ...Gewalt und Rechtsprechung als unmittelbar}
                                                  
! Undefined control sequence.
\endmyquote ->\unskip \grqq 
                            \endquote 
l.34 ...Gewalt und Rechtsprechung als unmittelbar}

Ich habe jetzt Ulrikes Code genommen, da dieser mit polyglossia zusammenarbeitet.
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}

% -- Block-Zitate --
\usepackage[thresholdtype=words]{csquotes}
\AtBeginEnvironment{quote}{\sffamily} % serifen-los
\renewcommand{\mkblockquote}[4]{\leavevmode\llap{\textooquote}#1#2\textcoquote#3#4} % Block in ``
\SetBlockThreshold{40}

% -- Sprache --
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\begin{document}
\raggedright % linksbündig, ohne Silbentrennung

\blockquote{Kleines Nicht-blockmäßig-eingerücktes inline-Zitat.}

\blockquote{Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung
als unmittelbar geltendes Recht.  Die nachfolgenden Grundrechte binden Gesetzgebung, vollziehende
Gewalt und Rechtsprechung als unmittelbar geltendes Recht.  Die nachfolgenden Grundrechte binden
Gesetzgebung, vollziehende Gewalt und Rechtsprechung als unmittelbar geltendes Recht.  Die
nachfolgenden Grundrechte binden Gesetzgebung, vollziehende Gewalt und Rechtsprechung als}
\end{document}
Thx.

Verfasst: Fr 17. Jan 2014, 16:27
von cgnieder
MoonKid hat geschrieben:
Package csquotes Warning: Using preliminary 'polyglossia' interface.
(csquotes)                Some of the multilingual features may not
(csquotes)                work as expected.

(./2block.aux) (/usr/local/texlive/2013/texmf-dist/tex/latex/tipa/t3cmr.fd)
! Undefined control sequence.
\myquote ->\quote \sffamily \glqq 
                                  
l.34 ...Gewalt und Rechtsprechung als unmittelbar}
                                                  
! Undefined control sequence.
\endmyquote ->\unskip \grqq 
                            \endquote 
l.34 ...Gewalt und Rechtsprechung als unmittelbar}
\glqq und \grqq sind babel-Befehle für untere und obere Anführungszeichen. Da Du ja XeLaTeX verwendest, kannst Du ja direkt „ und “ verwenden.

Grüße

Verfasst: Fr 17. Jan 2014, 16:52
von MoonKid
Ach so.

csquotes stellt dafür ne "unabhängige" Variante bereicht, um Anführungszeichen zu basteln.
\textooquote
% und
\textcoquote
Dann geht es mit babel und polyglossia.

Thx!

Verfasst: Sa 18. Jan 2014, 11:55
von MoonKid
In Verbindung mit den Absatzeinrückungen hab ich noch Probleme mit dem \blockquote. Der Block wird weiter eingerückt, als die erste Zeile im Absatz.

Ist hier vermutlich nicht ganz relevant, daher der Vollständigkeit halber nur ein X-Link.
http://www.golatex.de/viewtopic,p,56303.html#56303