我用pandoc
它来将 Markdown 文件转换为 LaTeX 文档,然后再转换为 PDF。我的文档包含一些引文。它们来自标准 Markdown,在 LaTeX 文档中呈现为quotation
或。quote
Markdown 无法明确标明引文的署名或署名。因此,我无法使用类似包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
声明是我在 2007 年的 TUGboat 中描述的不同样式段落的几种设置之一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}
是的,\hfill
只要输出 LaTeX 或在后端使用 LaTeX(例如生成 PDF),pandoc 就会进行处理。
> The way to get started is to quit talking and begin doing.
>
> \hfill -- Walt Disney
(图像由 pandoc 生成;如果您希望它像您的 LaTeX 代码一样呈斜体,您当然必须在 markdown 文件或 pandoc 的选项中添加更多内容,但我知道您已经知道如何做到这一点?)