Emacs 如何在组织模式下创建不间断空格(联系),以便正确导出到LaTeX
在(La)TeX中,不间断空格称为ties,由Emacs 如何在组织模式下创建不间断空格(联系),以便正确导出到LaTeX,emacs,latex,whitespace,org-mode,Emacs,Latex,Whitespace,Org Mode,在(La)TeX中,不间断空格称为ties,由~构成。例如,在缩略语之后使用连字,这样就不会在缩略语之后直接换行,也就不会将以缩写结尾的点视为结束句。后一种用法很重要,因为标准的乳胶在点后比单词之间留有更长的空间 从组织模式导出到LaTeX时,~被视为显式字符,而不是领带。忽略不间断空格的使用不是一种选择,因为它会导致错误的空格(参见上面示例中的第二句)。另一种方法是强制组织模式将~视为LaTeX with,但它是冗长的,并导出为其他格式。最后,如中所建议的,使用UTF-8非中断空间不起作用,因
~
构成。例如,在缩略语之后使用连字,这样就不会在缩略语之后直接换行,也就不会将以缩写结尾的点视为结束句。后一种用法很重要,因为标准的乳胶在点后比单词之间留有更长的空间
从组织模式导出到LaTeX时,~
被视为显式字符,而不是领带。忽略不间断空格的使用不是一种选择,因为它会导致错误的空格(参见上面示例中的第二句)。另一种方法是强制组织模式将~
视为LaTeX with,但它是冗长的,并导出为其他格式。最后,如中所建议的,使用UTF-8非中断空间不起作用,因为LaTeX没有将其视为一个空间。那么,如何在组织模式下使用正确导出到LaTeX的非中断空格呢
下面是一个需要澄清的例子。第一个句子失败,因为~
被视为显式字符。显然,第二个句子失败了,因为最后一个点被视为LaTeX结束了一个句子。第三句话正确地导出,但内容冗长,无法导出为其他格式。第四行(由C-x 8空格插入的UTF-8非中断空格分隔)失败,因为LaTeX未将其视为空格:
#+title:Title
e.g.~example
e.g. example
#+BEGIN_LaTeX
e.g.~example
#+END_LaTeX
e.g. example
这会将(C-x C-e L)导出为以下代码:
例如\~{}示例
e、 g.例子
e、 g.~例如
e、 g.例子
其呈现为:
我正在Emacs 23.3.1中运行组织模式7.6。答案在您链接的gmane线程中暗示。特别是说要使用
\nbsp
作为非中断空间。这本身不起作用,因为在\nbsp
后面需要一个空格,以便它将其识别为命令,而不仅仅是文本的一部分
但是,以下方法有效(添加到您的尝试列表中):
#+title:Title
* Test
1) e.g.~example
2) e.g. example
3)
#+BEGIN_LaTeX
e.g.~example
#+END_LaTeX
4) e.g. example
5) e.g.\nbsp example
(non-breaking \240 space between \nbsp and example)
输出到LaTeX的内容如下:
E.g.~a, b, c
\item例如\~{}示例
\项目,例如示例
\项目,例如~示例
\项目,例如示例
\项目,例如~example%\240不在~example和~example之间中断
这表现为:
编辑 我刚刚重新测试了我的结果,不知何故,我的非中断空格第一次没有正确导出,我的结果发生了变化(朝着应该预期的方向,而不是显示的方向)。下面是新的结果,以保留历史并使评论有意义 组织机构 乳胶
\item例如\~{}示例
\项目,例如示例
\项目,例如~示例
\项目,例如,示例%空间不中断
\项目,例如~example%的空间未中断
提供
这对应于规定的双间距(以及正确导出的非中断间距)上,我找到了双间距问题的解决方案:
组织机构
乳胶
我在文档/模板/框架的标题中包括以下内容:
\#+LaTeX_HEADER: \DeclareUnicodeCharacter{00A0}{~}
我使用C-x8spc
在文本中插入unicode不间断空格。这应该可以导出到LaTeX或HTML
说明:
宏DeclareUnicodeCharacter
在文件utf8.def
中定义(该文件由inpuntec
用于定义utf8映射)以定义Unicode字符的含义。第一个参数是字符的十六进制代码,第二个参数是替换代码
非中断空间是U+00A0
,因此第一个参数是00A0。在LaTeX中,非中断空间是用一个瓷砖生成的,因此第二个参数是一个瓷砖
- 发件人:
(setq组织实体用户)
(((“空格”~“零”))
以下组织来源:
E.g.\space{}a, b, c
导出到LaTeX,作为:
E.g.~a, b, c
并将其导出为HTML:
<p>
E.g. a, b, c</p>
例如a、b、c
属于on。@larsmans我不同意。这主要不是关于LaTeX,而是关于组织模式,这是一种Emacs模式。这是一个关于如何使用组织模式的问题,可能涉及如何通过elisp代码正确配置它。当我导出例如。\nbsp example
我得到了呈现的例如~example
。我做错什么了吗?我知道了st从您处复制了该代码段。是否需要以特殊方式输入特殊空间?正如我试图提到的(我将进行编辑以使其更清晰)\nbsp
和示例之间的空间是C-x 8空格
(非中断空格)。遗憾的是,它没有复制到堆栈溢出。我使用了正确的空间,文档进行了编译,输出是正确的,但有一个错误:导出为PDF…完成,有一些错误:[未定义的控制序列]
。更具体地说:!Package inpuntec错误:Unicode字符\u8:未设置为与LaTeX一起使用。
不确定为什么会出现这种情况。刚刚在我的上再次测试了它,我的状态是导出为PDF…完成了
。这可能是LaTeX、Emacs版本的问题(在我的情况下是24个版本)或者Org-Mode。它似乎是LaTeX连接的。我使用今天更新的TeX Live 2011。不知何故,C-x 8 SPC
可以与HTML和LaTeX导出器一起工作,即使不显式声明宏。我在Windows上使用TexLive 2013,使用的是latexmk-shell escape-pdf-f
。
E.g.~a, b, c
<p>
E.g. a, b, c</p>