LyX 无法将特定文件输出到 pdflatex

LyX 无法将特定文件输出到 pdflatex

一位朋友给了我一份他的论文模板(对他有用),但是当我尝试自己使用它时,大多数 LaTeX“查看”选项都变灰了:

灰色的乳胶选项

奇怪的是,我的其他任何文档的选项都没有变灰,而且我可以编译我所有的其他文件(例如,包括 LyX 文档文件)。

我尝试过重新配置并重新启动,但没有什么区别,这并不奇怪,因为如果我在同一个 LyX 实例的不同选项卡中打开自己的文件,它们仍然可以被查看。

他确实在文档中使用了自定义布局和样式,这些布局和样式包含在同一目录中。但是,如果我将文档类切换为标准 Book 类,视图选项仍显示为灰色 - 尽管会发出警告,指出在新布局中找不到他的某些自定义环境,因此这也可能会导致问题。

他在主文档中包含了许多章节 lyx 文件,它们都是可以访问的,但它们都存在同样的问题。

...编辑...

@Torbjørn-T 您的评论是正确的,抓住机会之后我现在可以尝试渲染为 pdflatex。

根据 @scottkosty 的评论,当我尝试渲染使用我朋友的(显然有故障?)样式/布局文件的任何文件时,我在状态栏中收到消息“导出格式时出错:PDF(pdflatex)”,但没有对话框。在消息窗格中,它显示以下内容:

21:51:17.771: Exporting ...
21:51:17.820: (buffer-update: Ctrl+Shift+R)
21:51:17.828: pdflatex  "minimal.tex"
21:51:17.854: This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian)
21:51:17.855:  restricted \write18 enabled.
21:51:17.863: entering extended mode
21:51:17.864: (./minimal.tex
21:51:17.865: LaTeX2e <2011/06/27>
21:51:17.866: Babel <3.9h> and hyphenation patterns for 2 languages loaded.
21:51:17.866: 
21:51:18.042: Error while exporting format: PDF (pdflatex)support/Systemcall.cpp (292): Systemcall: 'pdflatex  "minimal.tex"' finished with exit code 1

当我从 /tmp 中的 lyx 缓冲区目录执行“pdflatex minimal.tex”时,我得到了相同的输出(直到 Babel 行)和退出代码。

我已设法将有问题的文件缩减到最小(标准模式下只有“foo”,但使用自定义布局),但问题仍然存在,因此几乎可以肯定是他的自定义布局/样式出了问题,我仍在努力解决。不过,LyX 应该给出一个对话框,说明 pdflatex 失败且无输出,而不是仅在状态栏中闪烁错误。

...编辑 2...

好的,我明白了是什么:自定义的 .sty 正在使用\usepackage{fontspec},如果在生成的 .tex 文件中删除\batchmode,则运行 pdflatex 时会出现此错误:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! Fatal fontspec error: "cannot-use-pdftex"
! 
! The fontspec package requires either XeTeX or LuaTeX to function.
! 
! You must change your typesetting engine to, e.g., "xelatex" or "lualatex"
! instead of plain "latex" or "pdflatex".
! 
! See the fontspec documentation for further information.
! 
! For immediate help type H <return>.
!............................................... 

这一切都很公平。下面是重现此内容的最小 lyx 文档 - 它是一个全新的、空的 lyx 文件,包含\usepackage{fontspec}序言。

#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\begin_preamble
\usepackage{fontspec}
\end_preamble
\use_default_options true
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard

\end_layout

\end_body
\end_document

答案1

简而言之,我给出的模板设计用于 xelatex,并使用了 fontspec 包,而 pdflatex 不支持该包。

joseph-wright 和 torbjørn-t 的评论解决了我遇到的第一个问题:

跟进 Joseph 的评论:转到文档 --> 设置 --> 字体,检查是否选中了使用非 TeX 字体。如果选中,则无法使用 pdflatex。

之后,它仍然无法编译,直到我\usepackage{fontspec}从模板的样式文件中删除。默认情况下不会报告错误的原因,但可以通过\batchmode从生成的 tex 文件中删除来阐明。

相关内容