Block-Quotes mit scrartcl

Schriftbild, Absätze und Auflistungen einstellen


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Block-Quotes mit scrartcl

Beitrag 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}
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag 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
Clemens
Paketauthor

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag 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.
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag 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
Clemens
Paketauthor

Besserwisser

Re: Block-Quotes mit scrartcl

Beitrag 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 …

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag 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.
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag 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
Clemens
Paketauthor

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag 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!
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag 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
XeLaTeX, TeX Live, vim-latexsuite

Antworten