csquotes:始终将 blockquote 括在“ ”中

csquotes:始终将 blockquote 括在“ ”中

我尝试强制csquotes始终设置\blockquote显示模式但仍将引号括在引号中,特别是德语的引号。

我怎样才能实现这个目标?

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern,blindtext}

\usepackage[babel=true,strict=true,german=quotes,threshold=1]{csquotes}

\begin{document}

\blindtext

\blockquote{\blindtext}

\blindtext

\end{document}

此示例将引文生成为缩进的段落,但没有引号。

答案1

csquotes手动的建议重新定义\mkblockquote,参见第 8.7 节引用和引文的钩子. 一个可能性是

\renewcommand\mkblockquote[4]{\enquote{#1#2#3}#4}

其效果与这个答案

\mkblockquoterefer to 的四个参数

\mkblockquote{<text>}{<punct>}{<tpunct>}{<cite>}

手册中解释如下

  • #1命令的文本参数。
  • #2命令的可选<punct>参数。如果没有<punct>参数,则此参数为空。
  • #3命令后紧接着的<tpunct>标点符号。如果没有这样的标点符号或者该autopunct功能被禁用,则此参数为空。
  • #4<cite>命令的可选参数,包装在 中\mkcitation。如果没有<cite>参数,则此参数为空。对于集成引用命令,此参数是引用代码,包装在 中\mkccitation

在下面的例子中我使用

\renewcommand\mkblockquote[4]{\leavevmode\llap{,,}#1#2#3``#4}

\llap{,,}左引号置于引文边缘的文本左侧。(右引号之前的空格是 的产物,\blindtext与 无关\mkblockquote。)

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern,blindtext}

\usepackage[babel=true,strict=true,german=quotes,threshold=1]{csquotes}

\renewcommand\mkblockquote[4]{\leavevmode\llap{,,}#1#2#3``#4}

\begin{document}

\blindtext

\blockquote{\blindtext}

\blindtext

\end{document}

在此处输入图片描述

答案2

\enquote{...}只需在命令中添加即可\blockquote

梅威瑟:

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern,blindtext}

\usepackage[babel=true,strict=true,german=quotes,threshold=1]{csquotes}

\begin{document}
\blindtext

\blockquote{\enquote{\blindtext}}   %<=======================

\blindtext
\end{document}

结果:

在此处输入图片描述

答案3

我在-Command 中添加了threshold=1和,以便即使在短引用中也能强制使用块引用。thresholdtype=words\usepackage

选项threshold是指单词或行(默认)。结合thresholdtype=words块引用的阈值可以设置为一个单词。

对我来说,以下命令到目前为止运行良好:

\usepackage[autostyle=false, style=english, threshold=1, thresholdtype=words]{csquotes}

包装文档第 4 页显示以下选项:

阈值=〈整数〉

默认值:3

此选项定义块引用工具在确定引用是否应以内联或显示模式排版时使用的行数或字数作为阈值。它对应于 \SetBlockThreshold 命令。有关更多详细信息,请参阅 §§ 3.5 和 8.6。

阈值类型=线

单词默认:行

此选项选择块阈值类型。使用thresholdtype=lines,块引用功能将确定排版引用所需的行数;使用thresholdtype=words,它们将计算引用中的字数。3默认阈值设置为 3 行。如果您喜欢 50 个字,请设置threshold=50 和thresholdtype=words。有关更多详细信息,请参阅 § 3.5

答案4

摘自(并改编自)萌微

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{lipsum}

\usepackage[
    autostyle,
    strict=true,
    english=american,
    threshold=2
    ]{csquotes}

\makeatletter
\renewcommand{\mkbegdispquote}[2]{%
    \leavevmode\llap{\openautoquote\csq@eqgroup}%
    \csq@bqgroup
    \advance\csq@qlevel\@ne
    \csq@resetstyle
    \csq@init}
    
\renewcommand\mkblockquote[4]{%
    \leavevmode\llap{\openautoquote\csq@eqgroup}%
    \csq@bqgroup
    \advance\csq@qlevel\@ne
    \csq@resetstyle
    \csq@init
    #1#2#3\closeautoquote#4}
\makeatother

\renewcommand{\mkenddispquote}[2]{\closeautoquote\normalfont#1#2}

\begin{document}

\lipsum[1]

\begin{displayquote}[Blind Text]
    \lipsum[1]
\end{displayquote}

\blockquote{\lipsum[1]}

\lipsum[1]

\end{document}

渲染的文本

相关内容