为什么`\raggedleft`不起作用?

为什么`\raggedleft`不起作用?

我想将引文的作者定位在引文的右侧。

为什么\raggedleft不工作?

\documentclass{scrlttr2}

\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\NewDocumentEnvironment{textquote}{ O{}+b}
    {\begin{samepage}\begin{addmargin}{2.5cm}\guillemotright#2\guillemotleft\end{addmargin}\end{samepage}}
    {\footnotesize \raggedleft \textbf{#1}}

\begin{document}
    \begin{textquote}[René Descartes]
        [...] I think therefore I am.
    \end{textquote}
\end{document}

答案1

如果您使用 测试您的环境,\end{textquote}test您将看到名称排版在与环境后的文本相同的段落中。一旦此段落结束,您就不再处于\raggedleft模式中。

为了避免这种情况,您应该在环境末尾完成该段落:

\documentclass{scrlttr2}

\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\NewDocumentEnvironment{textquote}{ O{}+b}
    {\begin{samepage}\begin{addmargin}{2.5cm}\guillemotright#2\guillemotleft\end{addmargin}\end{samepage}}
    {\footnotesize \raggedleft \textbf{#1}\par}

\begin{document}
    \begin{textquote}[René Descartes]
        [...] I think therefore I am.
    \end{textquote}
\end{document}

答案2

抱歉,您的代码中存在几个错误。

  1. 参数textquote是强制性的,而不是可选的。

  2. 引文周围没有垂直空间。

  3. 引用和归因之间有一个可行的分页点。

  4. \par最后错过了一个,因此它\raggedleft无法完成其工作(但\raggedleft不是正确的工具)。

固定代码。

\documentclass{scrlttr2}
%\usepackage[utf8]{inputenc}% no longer needed
\usepackage[T1]{fontenc}

%\usepackage[scaled]{helvet}
\usepackage{sourcesanspro}% not Helvetica, please
\renewcommand\familydefault{\sfdefault}

\usepackage{lipsum} % for filler text

\NewDocumentEnvironment{textquote}{m +b}{%
  \par\addvspace{\topsep}
  \begin{samepage}\begin{addmargin}{2.5cm}
  \guillemotright#2\guillemotleft
  \end{addmargin}\par\nopagebreak
  {\footnotesize\hspace*{\fill}\textbf{#1}\par}
  \end{samepage}%
  \par\addvspace{\topsep}
}{}

\begin{document}

\lipsum[1][1-4]

\begin{textquote}{René Descartes}
[\dots] I think therefore I am.
\end{textquote}

\lipsum[2][1-4]

\begin{textquote}{Somebody Else}
\lipsum[3][1-4]
\end{textquote}

\lipsum[4][1-4]

\end{document}

在此处输入图片描述

下图显示了为什么不应使用 Helvetica 字体来书写较长的文本。可以(也应该)使用其他无衬线字体。

在此处输入图片描述

相关内容