LyX 安装错误 - 未找到文本类 - 出现“重新配置”或“不使用 latex”选项

LyX 安装错误 - 未找到文本类 - 出现“重新配置”或“不使用 latex”选项

我使用 win-7,64 位。我下载了与 miktex 2.9 一起打包的 lyx bundle 2.1.4。安装后,当我运行该程序时,弹出一个窗口,上面写着-‘lyx:未找到文本类’详细来说,它告诉我们——“lyx 将仅具有基本功能,因为未找到任何文本类。您可以尝试正常重新配置 Lyx,尝试在不检查 latex 安装的情况下重新配置,或者继续。”

此后 Lyx 打开,但错误消息如“未找到文档类”不断出现。似乎我无法将 lyx 上准备的文档保存为 .lyx 以外的任何格式。Lyx 本身似乎工作正常。数学方程式编辑似乎运行正常。但如何以 .lyx 以外的格式保存文档?请注意,我是 Latex 的新手,还不太了解。

在 lyx 教程中,它说你可以通过以下方式创建 PDF文档进而看法.但是'看法' 选项 '文档' 根本没有回应。

我尝试了很多方法,但都没有成功。我尝试单独安装基本的 miktex 2.9lyx 我也尝试安装 lyx 以前的稳定版本。似乎没有什么效果。请帮助我让 lyx 正常工作。

编辑:我尝试重新配置,但出现另一条错误消息,告诉我再次重新配置......

谢谢。

答案1

我为此奋斗了整整一天,却一无所获,直到我找到了我认为是问题所在。以下是我所做的:

1)以管理员权限在 Windows 中打开命令提示符。

2) 导航到我的机器上包含 lyx.exe 的目录“c:\program files (x86)\lyx 2.1\bin”。

3)执行lyx.exe

4) 所有涉及 python 调用的操作都失败 - 重新配置(使用 configure.py)、打开旧文档(使用 lyx2lyx)等等。

5)退出 lyx 并返回命令提示符

6)在命令行上输入“set pythonpath=”,清除pythonpath。

7)在命令行上输入“set path=”,清除路径。

8) 输入 lyx.exe 重新进入 lyx

9)现在一切正常!

我不确定这里的所有相关信息,但我运行的是安装了 64 位 Python 的 Windows 10。我相信 lyx Python 调用正在尝试运行我的 Python 安装,而不是 Lyx 附带的 Python 安装,这就是问题所在 - 两者不兼容。通过清除路径和 Python 路径,它似乎强制 Lyx 找到它安装的 Python,并且一切正常。

我希望这对某些人和 Lyx 开发人员有所帮助。

答案2

我今天遇到了这个问题(Win 8.1-64 位,Lyx 2.2.2.4),最终弄清楚了如何让 Lyx 启动(至少在我的计算机上),所以我分享我的解决方案以防万一它可以提供帮助:

  • 打开控制面板/系统/高级(或类似的,我的窗口是本地化的)。
  • 创建一个名为 LyxDir 的环境变量,指向 Lyx 安装文件夹。我选择创建一个系统级变量,我想用户级变量也应该可以。
  • 现在 Lyx 应该可以完美启动了。
  • 在 Lyx 中,在 tools/preferences/paths 下,您可以看到“路径前缀”使用了此变量。看来安装程序尚未设置它。

答案3

我在 Windows 7-64 位、MikTeX 2.9 和 LyX 2.3.2-2 上遇到了这个问题。其他答案都对我不起作用。最后看来原因可能是 Windows 路径中的空格。我的观察如下:

  1. 最初我将 MikTeX 安装在“C:\Program Files”中,将 LyX 安装在“C:\Program Files (x86)”中。问题出现了。
  2. 卸载 LyX 并在“C:\lyx”中重新安装没有帮助。问题仍然存在。
  3. 卸载了 LyX 和 MikTeX。
  4. 在“C:\miktex”中安装了 MikTeX。
  5. 在“C:\lyx”中安装了 LyX。现在 LyX 已启动并运行正常。

将 MikTeX 安装在没有空格的路径下可能就足够了,我没有测试过。

不幸的是,许多程序安装在“C:\Program Files”中时无法正确运行,但在没有空格的路径中却可以正常运行。

答案4

就我而言,该问题属于 Windows 10 上已存在的 inkscape 安装。

函数中有一个错误检查Inkscape()

./资源/configure.py

脚本。

def checkInkscape():
''' Check whether Inkscape is available and return the full path (Windows only) '''
''' On Mac OS (darwin) a wrapper is used - therefore the version is checked '''
''' The answer of the real inkscape is validated and a fake binary used if this fails '''
if sys.platform == 'darwin':
    version_string = cmdOutput("inkscape --version")
    match = re.match('^Inkscape', version_string)
    if match:
        return 'inkscape'
    else:
        return 'inkscape-binary'
elif os.name != 'nt':
    return 'inkscape'
if sys.version_info[0] < 3:
    import _winreg as winreg
else:
    import winreg
aReg = winreg.ConnectRegistry(None, winreg.HKEY_CLASSES_ROOT)
try:
    aKey = winreg.OpenKey(aReg, r"inkscape.svg\DefaultIcon")
    val = winreg.QueryValueEx(aKey, "")
    print (val)


    # ---------------- Here the error line ----------------

    return str(val[0]).split('"')[1]

    # --------- the registry key value doesn't contains any quote
    # --------- it contains a comma to separate the file name from the icon #. 
    # --------- So the split() function won't return any array 
    # --------- and the index [1] cause an error stopping the python script.
    # ---------------- ----------------



except EnvironmentError:
    try:
        aKey = winreg.OpenKey(aReg, r"Applications\inkscape.exe\shell\open\command")
        val = winreg.QueryValueEx(aKey, "")
        return str(val[0]).split('"')[1]
    except EnvironmentError:
        return 'inkscape'

我将该行改为:

return str(val[0]).split(',')[1]

并重新启动 LyX,第一次尝试就成功了!

相关内容