В 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]{``}
, который размещает выровненный по правому краю блок нулевой ширины, фактически накладывая текст налево. Однако, как вы видите, это не экономит много ввода.
Поэтому один из способов справиться с этим — поместить этот макрос в отдельный \def
, назвать его \andIquote
, так, чтобы, как в первом примере моего MWE, можно было просто вызвать его \andIquote
в качестве первого элемента в цитате.
Возможно, лучшим способом, как я сделал для второй цитаты, будет создание новой среды, я называю ее quoted
, которая автоматически помещает кавычки в начало и конец среды.
\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
Если я правильно помню, это одно из обоснований определения Кнута \llap
; это было перенесено в латекс. На самом деле его нужно использовать только в горизонтальном режиме, поэтому вы должны убедиться в этом, используя \noindent
в начале цитируемого вами абзаца:
\begin{quote}
\noindent\llap{``}Lord Bacon, in 'the true marshalling ...
решение3
В дополнение к ответу Стивена Сеглетеса, вы могли бы (с точки зрения интерфейса) рассмотреть возможность использованияcsquotesпакет, который предоставляет различные хуки для создания автоматической среды для отображения цитат. Потенциальное преимущество этого в том, что он избегает необходимости добавлять \andIquote
в начале любой цитаты: предполагая, что вы хотите, чтобы все цитаты были оформлены таким образом, он делает это автоматически.
Синтаксис «пользователя»:
\begin{displayquote}[cite][closing-punctuation]
...
\end{displayquote}
Используя «крючки», предоставляемые \mkbegispquote
и, \mkenddispquote
вы можете сделать так, чтобы открывающие и закрывающие кавычки автоматически размещались вокруг каждой отображаемой цитаты. (Я также показал альтернативный метод Стивена, заключающийся в размещении кавычек на полях, хотя его метод будет работать так же хорошо.)
\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}