引用符付きの句読点を左余白にぶら下げますか?

引用符付きの句読点を左余白にぶら下げますか?

Plain TeX には、ぶら下げ句読点を作成する方法があり、テキストのすぐ左にある句読点/文字が実質的に余白に配置されます。

これを引用符で実現したいのですが、引用文の本文は両側にインデントされますが、開始引用符は開始文字の左側になります。これが私が望む効果です:

``Lord Bacon, in 'the true marshalling of the sovereign degrees of
  honor,' assigns the first place to 'the Conditores Imperiorum, 
  founders of States and Commonwealths'; and, truly, to build up from 
  the discordant elements of our nature the passions, the interests, 
  and the opinions of the individual man, the rivalries of family, clan, 
  and tribe, the influences of climate and geographical position, the
  accidents of peace and war accumulated for ages,– to build up from these 
  oftentimes warring elements a well-compacted, prosperous, and powerful 
  State, if it were to be accomplished by one effort or in one generation
  would require a more than mortal skill.''

これは次のように実行できますquote:

\begin{quote}
{}\hspace{-5pt}{``}Lord Bacon, in 'the true marshalling

would require a more than mortal skill.''   
\end{quote}

しかし、それは不格好に思えます。もっと良い方法はあるでしょうか?

答え1

あなたの方法 は{}\hspace{-5pt}{``}、先頭の引用符 の実際の幅を推測しなければならない点で扱いにくいです``。その計算を回避する方法は、幅ゼロの右揃えのボックスを配置し、テキストを実質的に左に折り返すマクロを使用することです\makebox[0pt][r]{``}。ただし、ご覧のとおり、入力の手間はあまり省けません。

したがって、これに対処する 1 つの方法は、そのマクロを独自の に入れて と\def呼ぶことです。そうすれば、私の MWE の最初の例のように、引用の最初の項目として を\andIquote呼び出すだけです。\andIquote

quotedおそらく、2 番目の引用符の場合と同じように、新しい環境 ( と呼びます) を作成し、環境の先頭と末尾に引用符を自動的に配置する方がよい方法です。

\documentclass{article}
\def\andIquote{\makebox[0pt][r]{``}}
\newenvironment{quoted}
{\quote\andIquote\ignorespaces}{\unskip''\endquote}
\begin{document}

\begin{quote}
\andIquote Lord Bacon, in 'the true marshalling

would require a more than mortal skill.''   
\end{quote}

\begin{quoted}
Lord Bacon, in 'the true marshalling

would require a more than mortal skill.   
\end{quoted}
\end{document}

ここに画像の説明を入力してください

答え2

私の記憶が正しければ、これは Knuth の の定義の根拠の 1 つです。これは LaTeX にも引き継がれています。これは水平モードでのみ使用する必要があるため、引用する段落の先頭で\llapを使用して、それを確実にする必要があります。\noindent

\begin{quote}
\noindent\llap{``}Lord Bacon, in 'the true marshalling ...

答え3

Steven Segletesの回答に加えて、(インターフェースの観点から)csquotesパッケージは、引用を表示するための自動環境を作成するためのさまざまなフックを提供します。これの潜在的な利点は、引用の先頭に追加する必要がなくなることです\andIquote。すべての引用をこのスタイルにしたい場合、自動的に実行されます。

「ユーザー」構文は

\begin{displayquote}[cite][closing-punctuation] 
...
\end{displayquote}

および が提供する「フック」を使用する\mkbegispquoteと、\mkenddispquote表示される各引用の周囲に開始引用符と終了引用符が自動的に配置されるように設定できます。(引用符を余白に配置する Steven の方法の代替案も示しましたが、彼の方法も同様にうまく機能します。)

\documentclass{article}
\usepackage{csquotes}

\renewcommand{\mkbegdispquote}[2]{\strut\llap{``}}
% #1 is closing punctuation, #2 is citation. 
% We don't use them in this instance, but they
% need to be "catered for"
\renewcommand{\mkenddispquote}[2]{#1''\ifblank{#2}{}{#2}}
% #1 is closing punctuation, #2 is citation.
% again, we provide for them if needed

\begin{document}
\begin{displayquote}
Here is a displayed quotation, which should be long enough to go over a number
of lines. In this case I have not specified any closing punctuation or citation
for the quotation.
\end{displayquote}

\begin{displayquote}[][\ldots]
Here is another displayed quotation. In this case there is some specified
punctuation which goes at the end of the quotation before the closing mark.
\end{displayquote}

\begin{displayquote}[cite]
Here is yet another displayed quotation, this time with a citation to be included
in the mix, which will be printed at the end of the quotation, after the quotes 
are closed.
\end{displayquote}

\end{document}

3つの引用例

関連情報