神秘的LyX程序。 第三部分

我的博客复制来创建有关此主题的另一种俄语信息来源。

本文是单个周期中以下文章的延续:

第一条
第二条

LyX:分支


插入菜单有一个名为Branch的子菜单。 这是什么 所以我进入了这个子菜单,它打开了。 用鼠标左键单击“ 添加新的分支”项(有2个点,我单击底部的一个)。 在出现的对话框中,输入要创建的分支的名称,然后单击“ 确定” 。 据我了解,所创建分支的名称中不应包含空格。 在完成所有步骤的LyX窗口中单击“ 确定”后,将显示以下区域:



该分支显示为非活动状态 。 这意味着,如果我在分支的前面写一些东西,然后在分支的矩形中写一些文本,然后在分支之后继续旁白,那么在由该.lyx文件形成的.pdf中,红色矩形中的文本部分将是只是缺席。 为了将这一部分包含在.pdf ,我将鼠标悬停在单词Vetka上,然后在该单词旁边加上或减去,我右键单击并用鼠标左键选择“ 激活分支 ”。 根据所用的.mo文件,此项目的名称可能有所不同,但始终在下拉菜单中排在第一位。

LyX:数学预览


工具>首选项>视图中,第二个是一个下拉列表 。 根据界面元素名称的俄文翻译中使用的.mo文件,它具有不同的名称。 在我以前使用的LyX程序的那个副本中,如果我没记错的话,它被称为Preview数学 。 在LyX的当前副本中,它称为Instant Preview 。 其实质如下。 如果我将此列表的值设置为 ,则在光标离开数学(线性公式)或off模式后,LyX窗口中的公式如下所示:



启用此列表的值后公式开始如下所示:



但这本身没有什么意义。 将此下拉列表与“ 预览大小”计数器一起使用看起来更加有趣。 即,将下拉列表的值设置为on ,并将计数器值设置为大于1的某个值,例如3.8,单击“ 保存”按钮。 然后,重新启动LyX公式后,开始显示如下:



但这是东西。 例如,当我在研究群论的一个定理的证明时画了多层分数指数时,便用到了这一点:事实证明这是手工造成的混乱,但事实证明在使用这种乳液的LyX中它恰好是正确的。

如何在LyX中使用Asymtote?


但是很简单:打开LyX程序。 转到“ 文档”>“设置”>“ LaTeX前同步码” 。 我们进入那里

 \usepackage{asymptote} 

也许有一些渐近包选项,请点击
保存 。 就是这样,我们开始在LyX程序主窗口中编写所需的文本。 插入渐近线代码后,立即插入分支,将其激活(请参阅LyX:本文的分支部分),将Tex代码插入分支( Ctrl + l ),然后仅开始写入该块

 \begin{asy} ... \end{asy} 

在省略号的位置,我们以与在某些.asy文件中执行的方式完全相同的方式编写渐近线代码。 例如,它可能看起来像这样:



图片是在第一次导出为PDF(pdflatex)之后拍摄的。 注意在LyX程序窗口底部以红色圈出的文件夹的路径。 那也是我在其他普通编辑器中处理普通.tex文件的时候  大号ŤËX例如,在TeXworks中,同时出现的所有文件(例如.log.aux等)都与此.tex文件位于同一文件夹中。 在LyX程序中导出为某种格式的情况下,在与已处理的.lyx文件位于同一文件夹中的.lyx ,仅生成由此产生的所有其他文件.pdf (并首先导出到.tex ,然后将一些.tex到此文件上计算机上可用的二进制实现  ŤËX(虽然是可选的)连接到LyX程序。 例如,这次我在MiKTeX程序之后安装了LyX。 因此,LyX与MiKTeX的连接表现为,当我安装LyX时,我进入了Tools> Settings ...> Paths ,在PATH前缀文本框中:除其他外,还有一个路径C:\Program Files\MiKTeX 2.9\miktex\bin我在计算机上安装的上述二进制文件文件夹的路径  ŤËX。 但是,此文本字段中的此文件夹的路径不是必需的:当尚未安装MiKTeX时,我在以前的系统(也是Windows7)中安装了LyX,因此尽管该文本字段中没有该文件夹的路径在安装和配置MiKTeX之前,以及在完成这些操作之后,LyX均正常运行。 因此,当二进制文件.tex文件处理时,所有同时发生的所有文件(例如.log.aux等)也将与此.tex文件放在同一文件夹中。)放置在该文件夹中,即单击View> View Source之后,出现在LyX程序窗口中的窗口。 为了演示此文件夹的路径格式,我在该路径周围绘制了一个红色边框。 我们转到此文件夹,从该文件夹运行命令行,在此行中执行命令

asy *.asy

而且,我们还可以导出到PDF(pdflatex)。 现在一切准备就绪:打开创建的.pdf ,享受图形的质量,这在使用渐近线的情况下通常可以预期。 我们需要在整个故事中进行分支,因为有时没有图形, .pdf图形就不在.lyx生成它的代码所在的.lyx 。 但是,我最近想出了一种在不使用分支的情况下将渐近线代码插入.lyx文件的方法,但是我将在更接近该主题的页面上讨论这一点。

LyX:更改名称,界面元素的工具提示


现在,当您使用英语以外的其他语言使用LyX时,一个菜单中各种菜单,菜单项,工具栏等的显示名称用一个词显示,几乎所有界面元素的显示名称,除了环境下拉列表以及可能的其他内容之外, LyX从与所使用语言相对应的.mo文件中获取各种消息的翻译。 因此,无论我如何放置各种LyX副本,这些.mo文件在任何情况下都将在用于不同语言的所用LyX副本的框架内具有相同的名称。 在我现在使用的程序的副本中,这些文件称为LyX2.0.mo。 这些用于不同语言的文件,除了它们的内容之外,还因为它们位于同一文件夹的不同子文件夹中而有所不同。 对于俄语,相应的LyX2.0.mo文件位于
C:\Program Files\LyX 2.0\Resources\locale\ru\LC_MESSAGES 。 但是,如果出于试图替换程序窗口中的LyX的目的,显示了该菜单项的任何工具栏的名称,请在保存后更改.mo文件中的相应位置(以下介绍如何找到该位置),重新启动LyX时,.mo文件中的更改与预期相反,这不会导致更改相应接口元素的名称,而是导致以英语显示所有名称和工具提示:通常,直接编辑.mo文件是没有意义的。 并且,您需要编辑.po文件,随后,在进行每次更改(随后保存此更改)之后,使用gettext程序从中编辑.po文件,然后再次获取.mo文件,并将新接收的.mo文件移动到上面替换的文件夹中。 让我们关注这个过程。 首先,获取gettext。 我单击了上面的链接,以下载32位静态文件,而不是带有计算机和磁盘的图标,而是带有拉链的文件夹图标。 下载存档,可在任何地方解压缩。 为了避免由于这种琐事而添加该程序的bin文件夹,我们将执行以下操作:转到此处 。 从这里下载文件lyx-2.3.2.tar.gz。 打开它,将ru.po文件从po文件夹复制到以前解压缩的gettext程序的bin文件夹中,将其重命名为LyX2.0.po。 接下来,我们在某些文本编辑器中打开此.po文件。 所以 因此,我们想更改例如“书签导航:更改的显示”的“书签”项目的显示名称。 是的,打开“导航”菜单,在“ 书签”旁边查看此菜单上的项目名称。 例如,这些项目如下: 下一个注释下一个更改,...这是必需的,因为在.po文件中,可能会在几个不同的位置对各种接口元素的显示名称进行相同的转换,因为它们在结果文件中将相同.mo ,这将导致以下事实:在LyX窗口中,位于不同位置的多个界面元素将具有相同的显示名称。 因此,为了更改.po文件中某些界面元素的翻译,以使需要在.mo文件中更改其显示名称的那些界面元素的显示名称,我们需要查看与这些界面元素相邻的元素的显示名称,我们将更改显示的名称。 如果任何元素在LyX程序窗口中都有工具提示,则在.po文件中以相应语言显示的该工具提示的文本将与该界面元素的显示名称相距不远。 .po文件位置的另一个标记,需要编辑,以便导致界面元素的显示名称发生更改,需要更改其显示名称。 因此,我们转到带有打开文件LyX2.0.po的编辑器窗口,在此处找到“ 书签” ,并查看俄语中的相邻部分。 这是与您的环境一起的搜索结果之一:

 #: src/frontends/qt4/ui/PDFSupportUi.ui:249 msgid "Bibliographical backreferences" msgstr "  " #: src/frontends/qt4/ui/PDFSupportUi.ui:252 msgid "B&ackreferences:" msgstr "& :" #: src/frontends/qt4/ui/PDFSupportUi.ui:281 msgid "&Bookmarks" msgstr "&" #: src/frontends/qt4/ui/PDFSupportUi.ui:293 msgid "G&enerate bookmarks (toc)" msgstr "& " #: src/frontends/qt4/ui/PDFSupportUi.ui:314 msgid "&Numbered bookmarks" msgstr "& " 

发现的书签单词与数字3144一致。从俄语中的相邻单词来看,这不是您所需要的。 这是Bookword单词的另一个搜索结果,以及LyX2.0.po文件中的某些周围环境:

  #: lib/ui/stdmenus.inc:559 msgid "Reject All Changes|e" msgstr "  " #: lib/ui/stdmenus.inc:560 msgid "Show Changes in Output|S" msgstr "   " #: lib/ui/stdmenus.inc:567 msgid "Bookmarks|B" msgstr "|" #: lib/ui/stdmenus.inc:568 msgid "Next Note|N" msgstr " |" #: lib/ui/stdmenus.inc:569 msgid "Next Change|C" msgstr " |" 

书签字词的此项与号码19619一致,并且根据俄语单词来判断,这是您所需要的。 我们用该短语代替该单词的出现,这是我们要用作相应界面元素的显示名称的句子。 因此,这段代码及其在LyX2.0.po文件中的某些周围环境开始看起来像这样:

 #: lib/ui/stdmenus.inc:559 msgid "Reject All Changes|e" msgstr "  " #: lib/ui/stdmenus.inc:560 msgid "Show Changes in Output|S" msgstr "   " #: lib/ui/stdmenus.inc:567 msgid "Bookmarks|B" msgstr ":  |" #: lib/ui/stdmenus.inc:568 msgid "Next Note|N" msgstr " |" #: lib/ui/stdmenus.inc:569 msgid "Next Change|C" msgstr " |" 

将更改保存到LyX2.0.po。 我们在所在的bin文件夹中启动命令行。 在此行的窗口中,输入以下命令:

 msgfmt LyX2.0.po --o LyX2.0.mo 

,按Enter键。 此后,如预期的那样, LyX2.0.mo文件出现在bin文件夹中。 就个人而言,为了不在命令行中输入同一命令一百次,我在gettext程序的bin文件夹中创建了以下内容的批处理文件:

 cd /d %0\.. msgfmt LyX2.0.po --o LyX2.0.mo 

现在,当我将更改保存到LyX2.0.po文件后将其打开时,将在bin文件夹中创建完全相同的LyX2.0.mo文件,就好像我是从命令行获取的一样。 接下来,移动,重复替换,将所得的.mo文件放入文件夹中
C:\Program Files\LyX 2.0\Resources\locale\ru\LC_MESSAGES 。 重新启动LyX之后,我们得到以下信息:



LyX:关于default.def文件


C:\Program Files\LyX 2.0\Resources\commands有一个default.def文件。 这个文件是做什么用的? 在8月19日,我发现我在19年6月12日对该文件所做的更改仅生效。 在6月,此文件的这些更改没有出现。 显然,在这段时间里,我做了一些与LyX程序有关的事情,但是我不能确切说出什么。 但是随后他们立即进入,更改现在在具有相同名称的文件中生效,但仅位于不同的文件夹中-在文件夹C:\Users\\AppData\Roaming\LyX2.0\commands 。 因此,需要使用该文件来命名我们通常在该文件的命令缓冲区中使用的命令组合,以便我们可以使用分配给该组合的名称通过命令缓冲区再次调用这些命令组合中的任何一个。 以下是在此文件中为此类组合定义此类名称的示例:

  \define "corpi" "command-sequence math-mode; math-insert {\displaystyle \intop_{-\infty}^{\infty}e^{-x^{2}}dx=\dfrac{\sqrt{\pi}}{2}}; char-right; char-right;" \define "vstgr" "command-sequence vc-command U \"$$p\" \"vstavka-grafiki.bat\"" 

对特定命令(例如vstgr)的调用在命令缓冲区中执行,如下所示:

 call vstgr 

使用此命令,无需将手从键盘上移到LyX程序窗口中即可插入图形。 文件vstavka-grafiki.bat开始起作用 。 我将在本系列文章的另一篇文章中向您介绍该文件中的内容以及它的工作方式:与我在这里所说的内容几乎没有任何关系。 我也只在这里指出,据我所知,团队

 command-sequence 

当在某种命令组合中有多个命令用于将这些命令组合为一个整体时,可以使用此命令,但通常,当需要在一个输入中执行多个命令时,该命令可以直接用于将命令手动输入缓冲区的相同目的热键被分配给一系列命令。

LyX:向菜单,工具栏添加按钮


首先,我将向您展示如何向菜单添加按钮。 例如,我将展示如何在“ 编辑”菜单中添加按钮,当您单击它时,将启动数学模式,并在此处输入公式

 ˚F[Rç sq[RŤ p2

然后光标向左移动2次,因此该命令完成后,光标开始向刚输入的公式的左侧闪烁。 同时,我希望该按钮位于“ 最近”按钮和“ 插入”按钮之间,在该按钮的顶部放置一个条,例如,菜单中有一些条将这些条分成以某种方式彼此连接的块朋友按钮。 并且此按钮的显示名称应为drob的chislitelem 。 为了完成此任务-本主题标题中所述任务的特殊情况,我们将需要编辑位于C:\Program Files\LyX 2.0\Resources\ui文件夹中的文件。 即,为了更改菜单,我们需要编辑此文件夹中的stdmenus.inc文件。 我们在某个编辑器中将其打开,而我在一个普通的记事本中将其全部打开。 在直观的地方,在查看代码并牢记我在LyX中使用的热键的地方,当我刚开始学习该程序时,对于创建自己的热键没有疑问,我意识到我需要编辑块该文件的代码以

 # # EDIT MENU # Menu "edit" 

即:后行

 Item "Paste" "paste" 

加2行

 Separator Item "drob' s chislstelem" "command-sequence math-mode; math-insert \dfrac{\sqrt{\pi}}{2}; char-left; char-left;" 

添加的第一行仅给出上述分隔条。 将更改保存到stdmenus.inc ,然后重新启动)LyX。 结果是这样的:



因此,现在让我们在任务栏上添加按钮。 我承认,如何在任务栏上添加按钮,我在这里窥探到了 。 在这种公认的材料的基础上,我已经考虑过将按钮添加到上述菜单的过程。 而且,当然,我不要求任何著作权。 好吧,现在...也许,本系列文章第二篇中的细心读者,关于浮动精简图纸,已经注意到我使用的LyX程序窗口中一个工具栏的区别(它是另一个面板,恰好位于照片中)。在我正在编写的工作空间中)(来自LyX仍未更改的程序中的类似工具栏)。 即,该面板之间的区别立即由一个巨大的按钮来触动 ,在该按钮上,照片中仅部分输入了Moyacom铭文[Ctrl + 0 1] 。 但是,我并不仅限于该按钮,因为尚不清楚如何将所需的图片附加到用户创建的按钮上。 所以我创建了另一个按钮。 在下一张照片中,我在此工具栏上创建的按钮由红色箭头指示:



首先,我将告诉您如何创建一个覆盖有所需图片的按钮( 图片必须具有.png扩展名 ),单击后,将在C:\Users\\AppData\Roaming\LyX2.0\commands\default.def定义以下命令C:\Users\\AppData\Roaming\LyX2.0\commands\default.def 。 因此,我们从新行中将以下内容输入此文件:

 \define "pina2" "command-sequence math-mode; math-insert \dfrac{\pi}{2}; char- right; char-right;" 

我们关闭default.def文件,保存更改。 接下来,在文件夹C:\Users\\AppData\Roaming\LyX2.0\images\commands复制照片(我重复, .png扩展名是必需的 ),在该照片下,我们希望创建的按钮出现在LyX程序窗口中,并将其重命名在pina2中的照片。 我们同意将按钮添加到“ 高级”面板中(上图显示了修改后的“ 高级”工具栏)。 但是LyX程序本身不知道带有该名称的工具栏。 在LyX的理解下,该面板称为Extra (我通过查看我的故事中反复提到的一系列故事中的消息发现了这一点,这些故事在通过View> Toolbars激活/禁用了LyX时放大了其窗口的Progress / debug消息区域)。

太好了 我们转到上面已经提到的文件夹C:\Program Files\LyX 2.0\Resources\ui 。 我们打开stdtoolbars.inc文件,在其中查找以Extra开头的单词(可能以大写字母开头)或类似的内容,标题或包含该单词的内容。为了不走太远,我们将在此命令的开头添加按钮。也就是说,这是在我介入之前该文件的代码片段:

 ................................................................... StickyPopupMenu "update-others" "Update other formats" End Toolbar "extra" "Extra" Item "Default" "layout" Item "Numbered list" "layout Enumerate" ................................................................... 

这是我编写这段代码的方式:

  ................................................................... StickyPopupMenu update-others Update other formats End Toolbar "extra" "Extra" Item "Privet moim chitatelyam" "call pina2" Item "Default" "layout" Item "Numbered list" "layout Enumerate" ................................................................... 

,其中省略号是stdtoolbars.inc文件的代码之前和之后的代码行。原则上,一切都通过保存stdtoolbars.inc文件关闭。然后,在重新启动LyX之后,当“ 高级”面板被激活时,该面板上会出现一个新的功能按钮,其中包含我们分配的图像并执行我们定义的功能。从上一张照片中可以看到,工具提示取决于我们在与相应项目相关的第一对引号中所写的内容。最后,我要说的是,我添加的第二个按钮是在没有default.def文件参与的情况下定义的 并且,正如我在上面说过的,无意为其分配图片,以便在LyX程序窗口中显示此按钮:我只是插入了一个空行,并在我刚刚描述了操作的代码块的最后一行之前插入了该空行该行是以下代码:

 item "Moyacom" "command-sequence math-mode; math-insert \dfrac{\sqrt{\pi}}{2}; char-left; char-left;" 

[CTRL + 0,1]组建家庭按钮,我的上面的照片看,因为我有一个命令的命令序列的数学模式; 数学插入\ dfrac {\ sqrt {\ pi}} {2}; 字符左; 字符左; Ctrl + 0 + 1(我必须承认我根本没在这个地方看到这个提示。

要继续...

Source: https://habr.com/ru/post/zh-CN484282/


All Articles