从 LyX 中的 `\caption` 中删除 `tikzpicture`

从 LyX 中的 `\caption` 中删除 `tikzpicture`

底部有新信息!

上一個譽題:LyX "incomplete \iffalse"

前文:

我对 LyX 和 TeX 还不熟悉,所以这可能是一个非常简单的问题。

我曾将 TikZ 图像制作为文档中的图形,效果很好。我想添加标题,并了解到必须将其放在浮点数中才能做到这一点,所以我将其移到了浮点数中(我不完全确定浮点数是什么,但我认为这并不重要;我将 TeX 代码放在图形浮点数内的 TeX 代码块中)。突然,它完全不起作用了。

尝试渲染预览时,它会显示“外部程序 pdflatex 出现错误”。我查看了日志,正如它所建议的那样,它显示“!不完整 \iffalse;第 68 行之后的所有文本都被忽略了。”我在 notepad++ 中打开了文件并查看了第 68 行;这是它的邻近行:

 65 \quotes_language english
 66 \papercolumns 1
 67 \papersides 1
 68 \paperpagestyle default
 69 \tracking_changes false
 70 \output_changes false
 71 \html_math_output 0

然后我尝试按 ctrl-f 搜索“iffalse”,但没有结果。我还尝试搜索“if”,只找到了“d如果不同”和“规格如果ications”,以及第 55 行“\just如果ication true”——因此,这个东西中甚至没有任何地方有 if 语句会导致这个错误!

如果这个问题已经被问过了,请见谅。这里似乎有很多“不完整的 \iffalse”问题,但我对 TeX 了解不够,不知道哪些适用于我的情况;它们似乎都说“不完整的 \iffalse 和 \somefunctionidon'trecognise”,我不确定这些是否适用。

因此,在用户 Torbjørn T. 的建议下,我查看了 LyX 本身的 TeX 预览面板中的代码(我之前没有使用过它,因为它不显示行号;我没有意识到它不只是显示 .lyx 文件),发现 TikZ 代码已经进入了标题块,因此完整的图形代码如下

\begin{figure}
\caption{\begin{tikzpicture}
    \draw [fill] (0,0) circle [radius=65mm];;
    \draw [white, fill=white] (0,0) circle [radius=60mm];;
    \draw [brown, fill=brown] (0,0) circle [radius=50mm];;
    \draw [->, thick] (0,0) -- (50mm,0);
    \node [below] at (25mm,0) {$a=50\si{mm}$};
    \draw [<->, thick] (50mm,0) -- (60mm, 0);
    \node [above] at (55mm, 0) {$b$};
    \node [below] at (55mm, 0) {10mm};
\end{tikzpicture}}
\end{figure}

我无法在 TeX 预览面板中编辑此内容,并且我不确定如何tikzpicture\captionLyX 中解脱该块。有人可以解释一下如何做到这一点吗?

答案1

总结评论:

当在 LyX 中添加图形浮点数时,会得到以下结果:

在此处输入图片描述

此处,外框(插图)表示figureLaTeX 中的环境,因此是浮动。内框(位于“图 1:”右侧,即光标所在的位置)是标题插图。标题文本位于此内框中。

因此,当您要将图像tikzpicture或其他任何内容添加到图形中时,应先将光标移到标题插入之外。例如:

在此处输入图片描述

至于浮动是什么:浮动的目的是改善文档中的分页符。如果图形是静态的,并且太大而无法放在当前页面上,那么您最终会得到一页远未填满的页面。在浮动环境中,LaTeX 可以移动较大的不可分割的东西(如图像),因此您不会得到半空白的页面,而是得到一页满是文本的页面,而图形在下一页。

很多新 LaTeX 用户对此感到困惑,他们经常会问“我的图形不在原处”。但正如前面提到的,这样做是有目的的。

可以关闭图形的浮动机制,方法是进入图形插入的设置(右键单击浮动:图)并选择这里肯定还有其他选项,如果你想了解更多关于如何影响浮动定位的信息,有一个非常全面的答案如何影响 LaTeX 中图形和表格等浮动环境的位置?

相关内容