从 tlcontrib 更新到 ConTeXt / LuaTeX 的 Beta 版本会破坏 MacTeX

从 tlcontrib 更新到 ConTeXt / LuaTeX 的 Beta 版本会破坏 MacTeX

[以下是我的问题,已重写,包含更好的信息,并且经过了浓缩。]

我可能会忽略一些非常简单的事情,或者我可能会把一些非常简单的事情复杂化。

极其简短

在更新全新 MacTeX 安装(使用从其中一个主存储库安装的最新软件包)之前,ConTeXt 即使在 MK IV 中也能正常工作,只是我无法让字体选择正常工作。它似乎忽略了它或显示垃圾(Palatino)。因此,我使用 tlcontrib 软件包进行了更新tlmgr,现在,即使我尽力重建哈希/--generate(mtxtools)等,luatools 总是返回MTXrun | unknown script 'base.lua' or 'mtx-base.lua'

问题 1:怎么了?

问题 1 MK II::) 有没有叫做mtx-base.lua或 的东西base.lua,或者是一些脚本没有获取变量名而只是放在base那里,因为那是常量……或者别的什么?无论如何,我找不到这两个文件,所以我和 luatools.lua 的情况一样。:)

简短一点

  1. 在尝试使用更新的 ConTeXt 文件失败后,我重新安装了 MacTeX 2010。(从在先前的一个问题中
  2. 我使用普通树更新了所有包。
  3. 我将 /usr/local/texlive/2010/texmf.cnf 中的 TEXMFHOME 变量更改为~/src/texmf-trms,这是我保存自定义模块/模板/包的地方。(这通常在我们的 github 源代码控制范围内,但目前还没有。)并将内容从旧目录移动到新目录。
  4. 我绞尽脑汁,试图使用typescriptfile/typescript和 simplefont 来选择字体。我能做到的最接近的结果是使用 simplefont 和 Palatino 将垃圾文本喷入 PDF。虽然这不是这篇文章的主题,但如果有帮助的话,请输入sudo mtxrun --script fonts --list --name --pattern=*' always resulted inzsh: no matches found: --pattern=*`。
  5. 我决定尝试http://tlcontrib使用 tlmgr:

    sudo tlmgr--repositoryhttp://tlcontrib.metatex.org/2010全部更新

  6. sudo texconfig rehash编辑了(似乎还行),sudo mtxrun --generate(似乎还行)。然后我sudo luatools --generate得到了一个以MTXrun | unknown script 'base.lua' or 'mtx-base.lua'

  7. 只需输入luatools结果即可:MTXrun | unknown script 'base.lua' or 'mtx-base.lua'
  8. 根据我解决这个问题的尝试和在互联网上阅读的一些内容,我尝试使用以下命令编辑我找到的两个 texmfcnf.lua 文件(在和/usr/texlive/2010//usr/texlive/2010/texmf/web2c`中):

    返回 { 内容 = { TEXMFCACHE = '~/Library/texlive/2010/texmf-var', TEXMFHOME = '~/src/texmf-trms', }, TEXMFCACHE = '~/Library/texlive/2010/texmf-var', }

这没有任何影响,而且很可能与任何事情都无关,正如有人有益地指出的那样。

我尝试过的一些命令的输出

使用以下命令编译文档luatools

MTXrun | warning: no format found, forcing remake (commandline driven)
MTXrun | running command: luatools --generate
MTXrun | unknown script 'base.lua' or 'mtx-base.lua'

MTXrun | running command: luatools --make --compile cont-en
MTXrun | unknown script 'base.lua' or 'mtx-base.lua'

MTXrun | error, no format found with name: cont-en, aborting
MTXrun | total runtime: 0.321

输出自sudo luatex --generate --verbose

MTXrun | resolvers: variable 'SELFAUTOLOC' set to
'/usr/local/texlive/2010/bin/x86_64-darwin'
MTXrun | resolvers: variable 'SELFAUTODIR' set to '/usr/local/texlive/2010/bin'
MTXrun | resolvers: variable 'SELFAUTOPARENT' set to '/usr/local/texlive/2010'
MTXrun | resolvers: variable 'TEXMFCNF' set to ''
MTXrun | resolvers: variable 'TEXMF' set to ''
MTXrun | resolvers: variable 'TEXOS' set to 'bin'
MTXrun | resolvers
MTXrun | resolvers: loading configuration file
'/usr/local/texlive/2010/texmfcnf.lua'
MTXrun | resolvers
MTXrun | resolvers: loading configuration file
'/usr/local/texlive/2010/texmf/web2c/texmfcnf.lua'
MTXrun | resolvers
MTXrun | resolvers: locating list of '/Users/andrew/src/texmf-trms' (runtime)
MTXrun | resolvers: handler 'tree:////Users/andrew/src/texmf-trms' ->
'locators' -> 'path=/Users/andrew/src/texmf-trms | noscheme=false |
query= | scheme=tree | original=tree:////Users/andrew/src/texmf-trms |
fragment= | authority='
MTXrun | resolvers: hash 'tree:////Users/andrew/src/texmf-trms' appended
MTXrun | resolvers: skipping list of
'/usr/local/texlive/2010/texmf-project' (cached)
MTXrun | resolvers: skipping list of
'/usr/local/texlive/2010/texmf-fonts' (cached)
MTXrun | resolvers: skipping list of
'/usr/local/texlive/2010/texmf-local' (cached)
MTXrun | resolvers: skipping list of
'/usr/local/texlive/2010/texmf-context' (cached)
MTXrun | resolvers: locating list of '/usr/local/texlive/2010/texmf' (cached)
MTXrun | resolvers: tex locator '/usr/local/texlive/2010/texmf' found
MTXrun | resolvers: hash '/usr/local/texlive/2010/texmf' appended
MTXrun | resolvers: locating list of
'/usr/local/texlive/2010/texmf-dist' (cached)
MTXrun | resolvers: tex locator '/usr/local/texlive/2010/texmf-dist' found
MTXrun | resolvers: hash '/usr/local/texlive/2010/texmf-dist' appended
MTXrun | resolvers
MTXrun | resolvers: handler 'tree:////Users/andrew/src/texmf-trms' ->
'hashers' -> 'path=/Users/andrew/src/texmf-trms | noscheme=false |
query= | scheme=tree | original=tree:////Users/andrew/src/texmf-trms |
fragment= | authority='
MTXrun | resolvers: scanning path '/Users/andrew/src/texmf-trms'
MTXrun | resolvers: 596 files found on 114 directories with 62
uppercase remappings
MTXrun | resolvers: loading 'files' for
'/usr/local/texlive/2010/texmf' from
'/Users/andrew/Library/texlive/2010/texmf-var/luatex-cache/context/210a81d6dcb1059dc80fab3f5470ab7a/trees/1240e363db2f4c53de58379d2b0c6f6b'
MTXrun | resolvers: loading 'files' for
'/usr/local/texlive/2010/texmf-dist' from
'/Users/andrew/Library/texlive/2010/texmf-var/luatex-cache/context/210a81d6dcb1059dc80fab3f5470ab7a/trees/26993469c6208234eef0d0acf8456c4d'
MTXrun | resolvers: using suffix based filetype 'lua'
MTXrun | resolvers: using suffix based filetype 'lua'
MTXrun | resolvers: remembering file 'mtx-base.lua'
MTXrun | resolvers: using suffix based filetype 'lua'
MTXrun | unknown script 'base.lua' or 'mtx-base.lua'

答案1

米卡几乎是正确的,但我无法在评论中传达编辑内容,因此,如果更合适,他可以编辑他的,我会删除我的答案......

当前的 MacTeX 需要文件中以下行/usr/local/texlive/2010/texmfcnf.lua

return { TEXMFCACHE = '$HOME/Library/texlive/2010/texmf-var' }

太棒了!但是,这对 tlcontrib 上的测试版不起作用!Mica 的解决方案应该可行,只是测试版如何处理~超出我大脑能力的问题。因此,需要编辑文件以显示以下内容:

return {content={ TEXMFCACHE = '$HOME/Library/texlive/2010/texmf-var',
                  TEXMFHOME = '$HOME/src/texmf-trms'}, 
          TEXMFCACHE='$HOME/Library/texlive/2010/texmf-var'
       }

...相反。请注意最后一个后面没有逗号,TEXMFCACHE并注意使用$HOME而不是~

为了加快速度,我创建了两个文件。一个文件/usr/local/texlive/2010/texmfcnf-tlcontrib.lua包含新代码,另一个文件/usr/local/texlive/2010/texmfcnf-mactex.lua包含标准 MacTeX 安装代码。

然后,在我的 zsh 配置文件中(我认为 bash 也是一样的)我添加了以下实用程序命令:

alias tlc="sudo tlmgr --repository http://tlcontrib.metatex.org/2010"
function tlcontext {
  sudo cp -f -v /usr/local/texlive/2010/texmfcnf-tlcontrib.lua /usr/local/texlive/2010/texmfcnf.lua;
  sudo tlmgr --repository http://tlcontrib.metatex.org/2010 update context luatex metapost;
}

function tlmactex {
  sudo cp -f -v /usr/local/texlive/2010/texmfcnf-mactex.lua /usr/local/texlive/2010/texmfcnf.lua;
  sudo tlmgr install context luatex metapost --reinstall;  
}

function tlun { sudo tlmgr $1 --reinstall; }

tlcontext似乎可以完成我迁移到最新 ConTeXt 版本所需的一切。tlmactex似乎让我回过头来。如果我错了,我会告诉大家,但看起来这很完美。

答案2

好的,我们开始吧。

我和你一样,开始说道:哦,tlcontrib,太棒了。让我们开始吧。

起初我打开终端,并传递了与您相同的命令, sudo tlmgr --repository http://tlcontrib.metatex.org/2010 update -all

这让我遇到了与上述相同的错误。修复方法:

  1. 在终端中,sudo tlmgr reinstall context luatex metapost(注意:我认为我没有安装来自 tlcontrib repo 的任何其他软件包,如果我安装了其他软件包 [fontspec,也许] 我还没有测试它们是否有效...此修复仅使 context/luatex/metapost 再次工作。这里的想法是重新安装来自 texlive 2010 发行版的软件包并替换来自 tlcontrib 的软件包。)

  2. 在 /usr/local/texlive/2010/ 编辑 texmfcnf.lua: return { content = { TEXMFCACHE = '~/Library/texlive/2010/texmf-var', TEXMFHOME = '~/Library/texmf', }, TEXMFCACHE = '~/Library/texlive/2010/texmf-var', }

  3. 在终端中,sudo tlmgr --repository http://tlcontrib.metatex.org/2010 update context luatex metapost

  4. 在终端中运行sudo luatools --generate & mtxrun --generate

  5. context --version现在返回:

MTXrun | main context file: /usr/local/texlive/2010/texmf-dist/tex/context/base/context.tex MTXrun | current version: 2010.07.30 11:35

相关内容