在Pandoc中右对齐(地址)

时间:2013-11-02 19:42:18

标签: css latex markdown pandoc

右对齐方便字母地址。不幸的是,根据作者John MacFarlane

  

pandoc文档模型不允许在表格之外进行对齐,因此简单地忽略对齐信息。

我们可以使用原始的LaTeX。

经过反复试验(和谷歌搜索),我发现这个TeX语法按预期工作:

\rightline{Address 1}
\rightline{Address 2}
\rightline{etc}

LaTeX等效物也可以:

\begin{flushright}

Address 1\\
Address 2\\
etc

\end{flushright}

基于LaTeX命令raggedleft的侵入性较小的语法很遗憾不起作用:

{\raggedleft
Address 1\\
Address 2\\
etc\\
}

这是因为大括号是逐字传递的(\{\})而不是原始的LaTeX。

参考中心对齐,我发现user声称markdown支持这种原生(漂亮)语法:

-> This is center align <-

但我没有找到支持它的编辑器/转换器。

确实,我的工作范例都反对John Gruber markdown philosophy

  

Markdown格式的文档应该像普通文本一样可以发布,而不会看起来像是标记了标签或格式说明。

你能找到更好的方法吗?

特别是可以简单地编写Pandoc模板来重新定义标题的对齐方式,例如:###### Right aligned

2 个答案:

答案 0 :(得分:8)

对于那些正在寻找类似问题的人来说,如何在同一行上保持对齐/右对齐:

**Some bolded text** **\hfill some right aligned on same line bolded text**

您必须想象结果,因为我不确定如何在SO上重新创建它。

答案 1 :(得分:3)

处理此问题的最佳方法是将地址放在YAML元数据块中(由pandoc 1.12+支持),并在自定义模板中进行对齐。然后您的源文档将是干净的,没有原始LaTeX,您可以修改模板以获得任何输出格式的所需外观。

源文档可能如下所示:

---
address:
  | 23 Main St.
  | Somewhere, MT 23434
...

Dear so and so,

然后在你的LaTeX模板中你会有类似的东西:

\begin{flushright}
$address$
\end{flushright}

但是,如果您正在写一封信,那么使用LaTeX字母类编写模板可能会更好。