我的 LyX 文档的序言中有这个 LaTeX 命令:
\newcommand{\scenebreak}{% \par \vspace{\baselineskip} \填充 {\大的 * * *} \填充 \vspace{\baselineskip} \par}
我可能做错了。在 PDF 导出中,我得到了我想要的:3 个居中的大星号,上面和下面有一点垂直空间,用于场景之间的间隔。
在 XHTML 导出中:什么都没有。嗯,我认为是一个空段落。在纯文本导出中,只有一个额外的空白行。
这可以做到吗?还是我每次都必须自己输入这些星号?
我正在使用 XHTML 导出作为 Calibre 的源来制作 MOBI 和 EPUB 文件,因此我也会投票支持以更好的方式满足该目标的答案。
答案1
原因是使用 LyXHTML 时,LyX 会直接导出为 HTML。它无法将 ERT 导出为 HTML,因为LyX 不会将 LaTeX 转换为 HTML。例如,LyX 知道什么是粗体文本(如果您使用 LyX 机制而不是 ERT),如果输出是 LaTeX,它会导出\textbf
,如果是 HTML,它会导出<b>
。LyX 不知道您的 ERT 中有什么,因为那是您添加的自定义 LaTeX。LyX 不会解析它。它只是输出它。但对于 LyXHTML 来说,输出它是没有意义的。
答案2
我认为你可能发现了 LyX 中的一个 bug,可以考虑报告。我认为这可能是一个错误,因为没有什么我在 LyX 中插入的 Evil Red Text 由 LyXHTML 导出。
但您不必每次都输入星号,因为 LyX 有一个非常强大的快捷模式,您可以使用它来避免使用 ERT。
转到Tools > Preferences > Editing > Shortcuts > New
并插入为函数
command-sequence paragraph-break; inset-insert vspace medskip; paragraph-params \align center; font-size larger; math-insert * * *; char-forward; inset-insert vspace medskip; paragraph-break; paragraph-params \align default
这将插入非常接近您要查找的内容,尽管星号处于数学模式并且空格medskip
。我无法立即弄清楚如何插入纯文本星号,但为此,您可以检查Help > LyX Functions
。
我希望这足以修复错误:)
答案3
我有一个部分解决方法,将其插入到“文档”>“设置”>“本地布局”中
Style Scenebreak
Font
Size Large
EndFont
Align center
LatexType paragraph
TopSep 1.5
BottomSep 1.5
NextNoIndent 1
HTMLStyle
div.scenebreak {
font-size: 150%;
text-align: center;
}
EndHTMLStyle
End
这给了我一个“Scenebreak”样式,我只需在其中输入星号或其他内容即可。我需要做更多的工作才能使其在 LaTeX 中正确显示,但 XHTML 输出已经足够了。