拖放图像

拖放图像

我将在下个学期教授一门课程,并正在尝试尽快找到一种准备演示文稿的方法。

我使用 LaTeX beamer 已有多年,甚至还为其贡献了一些主题。我喜欢在各种情况下使用 LaTeX。

然而,我的情况有点特殊,我很乐意得到一些建议:

  1. 我正在编写一本教科书,部分内容将基于本课程的内容。为此,我希望尽可能多地保留数学知识(而且数量相当可观),使其可重复使用。

  2. 我的演讲重的使用拖放来自各种来源的图像(当然要有适当的归属)。任何涉及保存图像然后在 \includegraphics 块中使用它的工作流程都是无法启动。这需要太多的打字和点击开销,而且我为这门课程所做的演示很可能包含大量的图形(一些是使用 TikZ 自行创建的,其余的则借用了上述内容)。

  3. TeXmacs 在 Mac 上无法用于此目的,因为尽管有补丁,但它的拖放支持并不存在,因为他们出于显而易见的原因选择了 Qt。否则,它对我来说可能是完美的解决方案。

  4. 我不确定 LyX 是否适合我。据我所知,他们有剪切和粘贴功能,但没有拖放功能。另外,我不会用 LyX 写书。我觉得它……令人窒息……当我多年前最后一次使用 LyX 时,我并没有用太多,我发现它的 LaTeX 导出很乱。

  5. 到目前为止,我一直在使用 Keynote 和 LaTeXIt 的组合来排版数学。问题是 - 由于没有覆盖层,因此无法充分利用 beamer 的功能。本课程将涉及一些表达式的长推导,其中“与我的观众一起玩脱衣舞”并不是一个坏主意。另一种方法是排版单独的方程式对象并使用 Keynote 自己的过渡来创建效果。有点痛苦(我在之前教授的一门课程中使用过它,这门课程对数学的要求要低得多)。

  6. 在 LaTeX 上完整地输入文字会产生巨大的标记开销(与撰写文章或书籍相比)。我一直在研究 orgmode 和 multimarkdown,但我宁愿不学习它们,除非我确定它们符合所有要求(而且我认为它们对我的拖放功能没有帮助)。在我过去的每一次经历中,LaTeX/beamer 的处理时间都比 Keynote 长(对于较长的以文本为主的文档,LaTeX 和 MS Word 的情况正好相反)。

理想的解决方案是使用 beamer 进行简化(我定义了一些新命令等,可以让框架定义输入起来不那么麻烦),但同时也支持拖放。如果坚持使用传统的 LaTeX,那么这本身就是矛盾的。

如果 LaTeXIt 能够利用 beamer 的功能并进行叠加(当然是在内部,因为我怀疑他们是否会允许与外部 Keynote 转换同步发生的叠加 - 比如显示图像或隐藏它等),那么就可以接近解决这个问题。

任何有助于解决这套有点杂乱的要求的建议都会受到欢迎。

答案1

另一个选择是花一些时间掌握任何不错的文本编辑器或特定于 latex 的编辑器。两者中的任何一个肯定都能解决您的图像问题。

unicode-math.sty在 LaTeX 中输入数学公式是最便携的解决方案。我发现使用处理数学公式更容易xelatex

既然你已经知道了 beamer,我认为它是你最好的选择。在我看来,Inkscape 或 Libreoffice impress 对数学的支持很不完善,而且难以维护。


编辑

我正在使用 Emacs。它的 LaTeX 模式 AUCTeX、RefTeX 已经很棒了,但你可能想写一些额外的东西来加快工作流程。

拖放图像

可以用来ido-completion-read插入图像。为此,将图像保存在单独的文件夹中很方便。这是一个 TeX-doc 树示例:

doc/
├── img/
└── slides.tex

下面的 defun 可以让用户使用 ido-completion 来选择一个图像:

(defun tex-image-from-./img (image)
  "You are editing a TeX file. The images are in the ./img folder.
   Call this defun to select the one to insert. Default image width is 
   0.45\\columnwidth. You can provide the width with C-u arg."
  (interactive
   (list
    (replace-regexp-in-string 
     "^.+/img" "img" 
     (ido-read-file-name "Image file: " "./img"))))

  (let (
        scale
        )

    (if current-prefix-arg
        (setq scale current-prefix-arg)
      (setq scale "0.45"))

    (insert (format 
             "\\includegraphics[width=%s\\columnwidth]{%s}"
             scale image))))

这是一个简单的 defun,可以进一步调整以匹配所需的行为。

例如,我们可以轻松编写一个 defun,它将要求两个图像,并将它们放在列中。

至于确切的拖放行为——人们可能会用它将图像复制到./img文件夹。例如,evince允许将给定的光栅图像从 pdf 文件拖放到文件管理器。

这还有一个额外的好处,就是可以让事情保持井然有序:当你准备写一本书时,把所有的图像放在 latex doc 文件夹中会很方便。

模板

例如,以下是幻灯片的 defun 插入模板:

(defun tex-insert-beamer-slide-template ()
  (interactive)
  (insert "\\frame{
  \\frametitle{}\n\n}")
  (search-backward "frametitle{}")
  (forward-char 11))

这只是一个基本的 defun,但任意复杂的脚本都离我们不远了。

可以轻松模板化数学输入(例如方程组模板)或其他内容。模板可以减少要输入(和查找)的 tex 代码,从而加快工作流程。

自定义构建脚本

为了加快工作流程,应该真正使用单个命令来构建 LaTeX 文档。latexmk可能很好,但我个人更喜欢简单的 bash 脚本。您可以为所有情况制作一个复杂的 bash 脚本,或者为每个文档制作一个单独的 bash 脚本(保存在文档的文件夹中,类似make.bash)。

使用自定义构建脚本,可以轻松地在 LaTeX 中插入 svg 图像。只需让构建脚本转换file.svg为,file.pdf如果前者比后者更新,或者后者根本不存在(更好的是:可以自动化导出到 latexinkscape 功能可以在 svg 图像上获取与 latex 文档中相同的字体)。


编辑2

互联网上的图像

如果想要的图像在互联网上,则可以复制其 URL 并将 URL 提供给小型 elisp defun,该程序会将其下载到互联网上,./img并将类似于上面发布的代码插入到您的 tex 文件中。使用 Firefox 的 Pentadactyl 扩展或 Chrome 的 cVim 扩展,可以快速复制图像的 URL。您可能还想使用热键在浏览器和 emacs 之间切换。因此总共需要三个按键:复制 URL、切换到 emacs、调用 defun。

答案2

对于拖放,我假设你的意思是之内应用程序,而不是之间应用程序,因为拖放功能很少在不同的程序之间起作用,例如,我甚至无法将图像从 Internet Explorer 网页拖到 Word 文档中,而这两个程序都是微软开发的。我知道这不是您要的建议,但是更换您使用的应用程序以及由此产生的所有巨大影响似乎与剪切和粘贴(您可以使用鼠标通过上下文菜单或工具栏执行此操作)与拖放之间的差异极不相称。我怀疑它没有在 LyX 中实现的原因是因为很难想象有人会关心这么小的便利。也许您应该习惯剪切和粘贴,然后专注于更重要的事情。

另一条未经提示的建议,但您可能更欣赏它:如果您确实选择了 LyX,请注意它处理 Beamer 演示文稿的方式在最新版本 (2.1.0) 中完全改变了。这不会直接影响您,因为听起来您没有在旧版本中创建的任何 Beamer 演示文稿,但请注意,任何不是专门针对 2.1 的在线说明(例如关于如何开始新幻灯片或制作叠加层)都已过时。

为了更接近回答您实际提出的问题:是的,您必须为 LyX 中的图像选择文件名;图像不能像在 Word 文档中那样嵌入 LyX 文件中。但是,如果您首先将 LyX 文件放在其自己的目录中,并在 LyX 提示您时(当您粘贴时)为图像随机命名,那么您基本上可以忘记这种情况正在发生。这种策略的唯一缺点是,如果您从文档中删除图像,它仍会存在于磁盘上。

虽然我认为 LyX 是最佳选择,但我还是想给你一个相当激进的替代方案:PowerPoint。Office 的最新版本有一个全新的公式编辑器,它出奇地好用。它只支持一小部分公式(比 LaTeX 窄得多),但它支持的功能做得很好(符号质量很高,间距与 LaTeX 一样好,有时甚至更好)。因此,请查看它是否支持足够的公式功能来满足你的目的。

答案3

答案4

我意识到自己有点迟到了。与上一个答案类似,我使用 Inkscape 和 JessyInk(或 sozi)制作大量依赖数学和导入图形的演示文稿。但是,(可能与 OP 不同)我真的不愿意打字代码精心制作演示文稿,我更喜欢以端到端的方式创建可视化的所见即所得。我的数学也是用 Texmacs 的 Inkscape 扩展而不是上面建议的 Textext (Latex) 完成的。对于那些碰巧知道的人来说,工作流程类似于 Windows 中的 MathType 方程式编辑器(除了更好的 Tex 式排版!)。此外,Texmacs 是一款出色的方程式编辑器,具有智能快捷键、完整菜单、Latex 输入、脚本化等选择。作为奖励,Texmacs Inkscape 扩展与使用 textext 输入的公式双向兼容!

相关内容