在 XeTeX 中复制引用环境

在 XeTeX 中复制引用环境

我们部门的信件模板要求使用 XeTeX 编写。我正在写一封信,想在其中插入引文。在 LaTeX 中我会写

\begin{quotation}
The quoted text
\end{quotation}

我的想法是尝试用设置引号的纯 TeX 代码替换它,但我不确定如何找到它。

如何quotation在 XeTeX 中复制环境?

编辑最小工作示例:

\newif\ifuserfont \userfontfalse
\def\SetLetterFont#1{\userfonttrue\font\userfont=#1} % so the user can set it.

\newdimen\indentation \indentation=2em\relax
\newdimen\betweenpar \betweenpar=\medskipamount\relax
\raggedbottom
\interlinepenalty=100
\hsize=6.25 true in
\voffset=24pt
\advance\vsize by -\voffset
\parindent=0pt
\parskip=0pt
\nopagenumbers

\def\beginlinemode{\endmode
    \begingroup\parindent=0pt%
    \obeylines
    \frenchspacing
    \def\endmode{\par\endgroup}}
\def\beginparmode{\endmode
    \begingroup
    \parskip=\betweenpar
    \def\endmode{\par\endgroup}}
\let\endmode=\par
\def\endletter{\endmode\vfill\supereject\end}

\def\body{%
    \ifuserfont\global\userfont\fi
        \global\parindent=\indentation
        \smallskip
        \beginparmode
}%

\def\narrower{%
  \advance\leftskip 1cm
  \advance\rightskip 1cm }

\indentation=0pt

\body


Body text 1,  blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah

{ \narrower
    Quote paragraph 1, blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah 

    Quote paragraph 2 blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
}

Body text 2, blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah


\endletter

答案1

在普通的 TeX 中你可以使用

zzzz

{\narrower
hmmmm zzzzz

}

的定义\narrower

\def\narrower{%
  \advance\leftskip\parindent
  \advance\rightskip\parindent}

你已经澄清你已经\parindent设置为 0pt 所以这不是你想要的,但你可以重新定义它,例如通过

\def\narrower{%
  \advance\leftskip 2cm
  \advance\rightskip 2cm }

将边距缩小 2cm 或您想要的任何数值。

\parindent请注意,将和都设置为零是非常奇怪的,\parskip因为如果没有水平或垂直空间来标记开始,则段落很难(或在某些情况下不可能)被发现。

zzzz

答案2

您可以搜索任何默认文档类并检索环境的定义quotation。请参阅

  • book.cls

    \newenvironment{quotation}
                   {\list{}{\listparindent 1.5em%
                            \itemindent    \listparindent
                            \rightmargin   \leftmargin
                            \parsep        \z@ \@plus\p@}%
                    \item\relax}
                   {\endlist}
    
  • report.cls

    \newenvironment{quotation}
                   {\list{}{\listparindent 1.5em%
                            \itemindent    \listparindent
                            \rightmargin   \leftmargin
                            \parsep        \z@ \@plus\p@}%
                    \item\relax}
                   {\endlist}
    
  • article.cls

    \newenvironment{quotation}
                   {\list{}{\listparindent 1.5em%
                            \itemindent    \listparindent
                            \rightmargin   \leftmargin
                            \parsep        \z@ \@plus\p@}%
                    \item\relax}
                   {\endlist}
    
  • letter.cls

    \newenvironment{quotation}
                   {\list{}{\setlength\listparindent{1.5em}%
                            \setlength\itemindent{\listparindent}%
                            \setlength\rightmargin{\leftmargin}}%
                    \item[]}
                   {\endlist}
    

他们在各个班级都非常相似。

您还可以考虑使用csquotes包裹它提供了一套全面的报价功能。

相关内容