
Я использую pandoc
для конвертации файла Markdown в документ LaTeX, а затем в PDF. Документ, который у меня есть, содержит некоторые цитаты. Исходя из стандартного Markdown, они отображаются как quotation
или quote
в документе LaTeX.
В Markdown нет возможности специально указать подпись или атрибуцию цитаты. В результате я не могу использовать пакет like attrib
для стилизации части атрибуции по-другому.
Вопрос: как выровнять подпись цитаты по правому краю? В более общем смысле, как можно выровнять по правому краю последнюю строку блока? Или можно ли выровнять по правому краю строку, начинающуюся с «--»? (Подойдет любой из этих трех вариантов.)
Вот минимальный документ LaTeX, который показывает мое намерение. Я бы хотел, чтобы часть "-- Walt Disney" была смещена вправо.
\documentclass{book}
\setlength{\parindent}{0em} % Added for clarity.
\renewcommand{\quote}{\list{}{\itshape}\item\relax} % Making quote italic.
\begin{document}
\begin{quote}
The way to get started is to quit talking and begin doing.
-- Walt Disney
\end{quote}
\end{document}
И нет, использование пакета типа dirtytalk
, csquotes
, или epigraph
не сработает. Источник из Markdown не различает (и не может) цитату и атрибуцию. Это все один quote
блок.
решение1
Мне кажется, что вы хотите Markdown
расшириться, чтобы получить новый вид цитаты. Вы говорите, что "Идея документа Markdown не в том, чтобы включать команды стиля/рендеринга", но это так --- это позволяет специфицироватькурсивисмелыйшрифты.
Что касается LaTeX, вот объявление ( \justlastragged
), которое выравнивает последнюю строку абзаца по правому краю.
% lastraggedprob.tex SE 641048
\documentclass{article}
\newcommand{\paratext}{Just some text to fill up a couple of lines,
which might be used for a paragraph or
some other kind of text block. Let's hope it works out.}
\begin{document}
\newcommand{\justlastragged}{%
\leftskip =0pt plus 1fil
\rightskip =-\leftskip
\parfillskip=\leftskip
% \parindent = 0pt
}
\section{First}
Normal paragraph setting
\paratext
\paratext
\section{Second}
Last line of a paragraph being set flush right (ragged left).
\justlastragged
\paratext
\paratext
\paratext \paratext
\end{document}
Это \justlastragged
объявление является одним из нескольких вариантов настройки для абзацев с различным стилем, которые я описал в TUGboat в 2007 году.https://tug.org/TUGboat/tb28-2/tb89glister.pdf
решение2
Попробуйте использовать \hfill
для заполнения горизонтального пространства перед -- Walt Disney
.
\documentclass{book}
\setlength{\parindent}{0em} % Added for clarity.
\renewcommand{\quote}{\list{}{\itshape}\item\relax} % Making quote italic.
\begin{document}
\begin{quote}
The way to get started is to quit talking and begin doing.
\hfill -- Walt Disney
\end{quote}
\end{document}
И да, pandoc будет обрабатывать данные, \hfill
если они выводятся в формате LaTeX или используют LaTeX на сервере, например, для создания PDF-файла.
> The way to get started is to quit talking and begin doing.
>
> \hfill -- Walt Disney
(Изображение создано pandoc; если вы хотите, чтобы оно было курсивным, как в вашем коде LaTeX, вам, конечно, придется добавить больше в файл разметки или параметры pandoc, но я полагаю, вы уже знаете, как это сделать?)