在 Beamer 文档中使用 tikz 进行绘图

在 Beamer 文档中使用 tikz 进行绘图

我需要进行 1D 抽取以进行随机游走。问题是 Beamer 不允许我使用与“报告”相同的代码。我不知道哪里出了问题,它与我使用的完全相同

它向我显示了以下消息:

抱歉,“MiKTeX 编译器驱动程序”未成功。希望日志文件包含让 MiKTeX 再次运行的信息:C:\Users\Sergio1\AppData\Local\MiKTeX\miktex\log\texify.log

我使用的代码:

\documentclass{beamer}
    
    \usepackage{tikz}
    \usetikzlibrary{babel}
    \usetikzlibrary{svg.path}
    
    
    \begin{document}
     \begin{frame}    
     \begin{tikzpicture}
         \draw (-6,0) -- (6,0) ; 
         \foreach \x/\y in  {-6/{$x-2h$},-3/{$x-h$},0/{$x$},3/{$x+h$},6/{$x+2h$}}              
         \draw[shift={(\x,0)},color=black] (0pt,3pt) -- (0pt,-3pt)node[below] {\y};
         \foreach \x/\y in {-6/-3,-3/0,0/3,3/6}
         \draw[bend left,looseness=1.4, shorten >=4pt,shorten <=4pt, blue, thick](\x,0)to node[ label=90: 1/2]{}(\y,0);
          \draw (-6,0) -- (6.5,0) node[right] {$h \mathbb{Z}$};
      \end{tikzpicture}
     \end{frame}
   \end{document}

编辑:我检查了日志,上面显示了这个,不知道这是什么意思

*2021-04-16 10:52:31,168+0200 INFO texify - 此进程 (12816) 由 'miktex-texworks' 使用命令行启动:“C:\Program Files\MiKTeX\miktex\bin\x64\texify.exe”--pdf --synctex=1 --clean TFG-diapositiva.tex

2021-04-16 10:52:31,213+0200 INFO texify.core - 启动进程:pdflatex --synctex=1 "C:/Users/Sergio1/Desktop/Cosas de la Uni/TFG/Mi trabajo\TFG-diapositiva.tex"

2021-04-16 10:52:34,075+0200 FATAL texify.core - TeX 引擎因某种原因失败(参见日志文件)。2021-04-16 10:52:34,076+0200 FATAL texify.core - 数据:

2021-04-16 10:52:34,076+0200 FATAL texify.core - 来源:Programs\MiKTeX\texify\mcd.cpp:1528

2021-04-16 10:52:34,080+0200 FATAL texify - TeX 引擎由于某种原因失败(参见日志文件)。

2021-04-16 10:52:34,080+0200 FATAL texify - 信息:

2021-04-16 10:52:34,080+0200 FATAL texify - 来源:Programs\MiKTeX\texify\mcd.cpp

2021-04-16 10:52:34,080+0200 严重 texify - 行数:1528

2021-04-16 10:52:34,082+0200 错误 texify - 小问题:MiKTeX 管理员已经很长时间没有检查更新了*

答案1

你当前的代码在 TeXLive 2021 上编译得很好。但我建议\foreach像这样重写

\documentclass{beamer}
    
    \usepackage{tikz}
    \usetikzlibrary{babel}
    \usetikzlibrary{svg.path}
    
    
    \begin{document}
     \begin{frame}    
     \begin{tikzpicture}
         \draw (-6,0) -- (6,0) ; 
         \foreach \x/\y in  {-6/{$x-2h$},-3/{$x-h$},0/{$x$},3/{$x+h$},6/{$x+2h$}}{              
           \draw[shift={(\x,0)},color=black] (0pt,3pt) -- (0pt,-3pt)node[below] {\y};
         }
         \foreach \x/\y in {-6/-3,-3/0,0/3,3/6}{
           \draw[bend left,looseness=1.4, shorten >=4pt,shorten <=4pt, blue, thick](\x,0)to node[ label=90: 1/2]{}(\y,0);
         }
          \draw (-6,0) -- (6.5,0) node[right] {$h \mathbb{Z}$};
      \end{tikzpicture}
     \end{frame}
   \end{document}

\x那么,何时和\y的定义就更加清楚了。

答案2

在一个循环中,使用 TiZ 库arrows.metaquotes

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
%                babel,     % not needed in this MWE
                quotes,
%                svg.path   % not needed in this MWE
                }


\begin{document}
\begin{frame}
    \begin{tikzpicture}
   \draw[-Straight Barb] 
        (-5,0) -- (5,0) node[right] {$h\in\mathbb{Z}$};
\foreach \i [count=\j from -2] in  {x-2h,x-h,x,x+h,x+2h}%
 {
 \draw  (2*\j,3pt) -- ++ (0,-6pt) node[below] {$\i$};
 \ifnum\j<2
 \draw [blue, thick, bend left=45, 
        shorten >=4pt,shorten <=4pt]
        (2*\j,0) to ["1/2"] ++ (2,0);
 \fi
 }
    \end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

答案3

好的。我知道如何做了。虽然有点乱,但这是我找到的唯一方法

我只是使用了报告文档上的代码,获取了图像所在的页面,使用 photospot 获取了绘制的 png,然后使用 \includegraphics 手动将其引入到 beamer

答案4

如果问题出在shift参数上,你可以尝试我的方法:

在此处输入图片描述

\documentclass{beamer}

\usepackage{tikz}
%\usetikzlibrary{babel}
%\usetikzlibrary{svg.path}

\tikzset{%
    every node/.style={font=\strut}, % <- same size for all nodes
}

\begin{document}
    \begin{frame}    
        \begin{tikzpicture}[scale=0.75] % scaling to fit the frame
%           \draw (-6,0) -- (6,0); <- you define it again below  
            \foreach \x/\y in  {-6/{$x-2h$},-3/{$x-h$},0/{$x$},3/{$x+h$},6/{$x+2h$}}{%
                \draw[color=black]  (\x,3pt) -- (\x,-3pt) node[below] {\y};
            }
            
            \foreach \x/\y in {-6/-3,-3/0,0/3,3/6}{%
                \draw[bend left,looseness=1.4,shorten >=4pt,shorten <=4pt,blue,thick](\x,0) to node[above]{1/2}(\y,0);
            }
            
            \draw[-stealth] (-6,0) -- (7,0) node[right] {$h \mathbb{Z}$};
        \end{tikzpicture}
    \end{frame}
\end{document}

相关内容