You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Org-mode编写信函地址块 解决导出PDF/HTML/ODT缩进失效问题

Org-mode 信函地址块跨导出格式布局保留方案

手动使用indent to功能插入的行首缩进属于编辑阶段的临时空白字符,Org-mode导出为HTML、PDF、ODT格式时,默认会过滤这类无语法标记的空白,因此无法保留布局。要实现发件人地址居左、收件人地址居右且三类格式导出均生效,可直接使用以下三种兼容方案:

方案1:无框表格实现(原生兼容,配置成本最低)

  • 插入1行2列的无框表格,左列默认居左放置发件人信息,右列设置右对齐放置收件人信息,Org原生支持三类导出格式的表格对齐属性识别,不会出现格式丢失问题。
  • 可直接复用如下示例代码:
#+ATTR_HTML: :border 0 :cellpadding 0 :cellspacing 0 :width 100%
#+ATTR_LATEX: :align p{0.45\textwidth}p{0.45\textwidth} :border 0
#+ATTR_ODT: :rel-width 100% :border 0
| *发件人*          |                     *收件人* |
| 张三              |                           李四 |
| XX市XX区XX路123号 |                 YY市YY区YY路456号 |
| 邮编:100000      |                       邮编:200000 |
| 电话:13xxxxxxx   |                 电话:13xxxxxxx   |
  • 右列内容前可手动补空格调整视觉位置,导出时单元格对齐规则会自动生效,无需额外写样式代码。

方案2:自定义块+全局样式配置(纯文本编辑体验最优)

  • 不需要插入表格,在文档头部预先配置三类导出格式的对齐样式,给发件人、收件人地址块分别套上自定义标签,导出时会自动应用对齐规则。
  • 配置示例如下:
#+HTML_HEAD: <style>.sender{width:45%;float:left;text-align:left}.receiver{width:45%;float:right;text-align:right}.clear{clear:both}</style>
#+LATEX_HEADER: \newenvironment{sender}{\begin{flushleft}}{\end{flushleft}}
#+LATEX_HEADER: \newenvironment{receiver}{\begin{flushright}}{\end{flushright}}
#+ODT_EXTRA_STYLES: <style:style style:name="Sender" style:family="paragraph"><style:paragraph-properties fo:text-align="start"/></style:style><style:style style:name="Receiver" style:family="paragraph"><style:paragraph-properties fo:text-align="end"/></style:style>

#+BEGIN_sender
*发件人*
张三
XX市XX区XX路123号
邮编:100000
电话:13xxxxxxx
#+END_sender

#+BEGIN_receiver
*收件人*
李四
YY市YY区YY路456号
邮编:200000
电话:13xxxxxxx
#+END_receiver

#+HTML: <div class="clear"></div>
  • 该方案编辑界面无表格分隔线等冗余元素,纯文本写作观感和普通信函一致,适合高频撰写正式信函的场景。

方案3:分格式导出块适配(适合短文档快速调整)

  • 如果只是单篇短文档需要调整,不想做全局配置,可以直接在地址位置插入对应格式的导出块,写入对应格式的对齐代码,Org导出时会自动将块内内容嵌入目标文件。
  • 示例代码如下:
#+BEGIN_EXPORT html
<div style="width:45%;float:left;text-align:left">
<p><strong>发件人</strong><br>张三<br>XX市XX区XX路123号<br>邮编:100000<br>电话:13xxxxxxx</p>
</div>
<div style="width:45%;float:right;text-align:right">
<p><strong>收件人</strong><br>李四<br>YY市YY区YY路456号<br>邮编:200000<br>电话:13xxxxxxx</p>
</div>
<div style="clear:both"></div>
#+END_EXPORT

#+BEGIN_EXPORT latex
\begin{flushleft}
\textbf{发件人}\\
张三\\
XX市XX区XX路123号\\
邮编:100000\\
电话:13xxxxxxx
\end{flushleft}
\begin{flushright}
\textbf{收件人}\\
李四\\
YY市YY区YY路456号\\
邮编:200000\\
电话:13xxxxxxx
\end{flushright}
#+END_EXPORT

#+BEGIN_EXPORT odt
<text:p text:style-name="Sender"><text:span text:style-name="Bold">发件人</text:span><text:line-break/>张三<text:line-break/>XX市XX区XX路123号<text:line-break/>邮编:100000<text:line-break/>电话:13xxxxxxx</text:p>
<text:p text:style-name="Receiver"><text:span text:style-name="Bold">收件人</text:span><text:line-break/>李四<text:line-break/>YY市YY区YY路456号<text:line-break/>邮编:200000<text:line-break/>电话:13xxxxxxx</text:p>
#+END_EXPORT

注意:所有靠手动输入空格、Tab凑出来的行首缩进,都会被Org导出器判定为无意义的编辑辅助字符过滤,无论缩进量设置多大,都无法在导出文件中保留。

内容的提问来源于stack exchange,提问作者Michel Lecomte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:36:27