编辑

编辑

这个问题导致了一个新的方案的出现:
duckuments

LaTeX 中有很多很酷的示例图片。据我所知,没有任何好的鸭子图像示例 ;-(

当然,在示例图像中加入鸭子对于增加整个 Tex.SE 的 MWE 的鸭性至关重要!

因此我想知道:如何让鸭子位于示例图像的中心?

\documentclass[border=5pt]{standalone}
\usepackage{tikzducks}
\usepackage{graphicx}


\begin{document}
\includegraphics{example-image-a}
\tikz\randuck;
\end{document}

可能会产生:

在此处输入图片描述

然而,把鸭子放在图片旁边有一个问题:它看起来像一只更永久的鸭子,不是作为例子,而是永远存在。虽然每一篇好的鸭子纪录片都会有一只或十几只鸭子,但让读者能够区分永久的鸭子和例子鸭子似乎是必不可少的!

然而,目前

\documentclass[border=5pt]{standalone}
\usepackage{tikzducks}
\usepackage{graphicx}


\begin{document}
\includegraphics{example-image-duck} %or with randuck
\tikz\randuck;
\end{document}

生成一条错误消息(提示没有所需示例图像的文件):

在此处输入图片描述

这里没有灰色边框告诉读者不要在鸭子文献的最终版本中期待鸭子。

有什么办法可以得到这两个命令:

\includegraphics{example-image-duck}
\includegraphics{example-image-randuck}

制作一个与第一个例子中的图像类似,但用鸭子代替 a 吗?

编辑

这真的很酷,但是可能无法实现全部tikzducks功能:

\includegraphics{example-image-duck[options]}

从而起到期权的作用。

Torbjørn T. 也发布了命令:

\newcommand\ExampleDuck{ \begin{tikzpicture} \node [inner sep=0] {\includegraphics{example-image}}; \begin{scope}[shift={(-1,-1)}] \randuck \end{scope} \end{tikzpicture}}

只需要一个空的示例图像即可。现在唯一的大障碍是, \ExampleDuck如果example-image-randuck正在加载命令,则向 includegraphics 提供命令的结果。

答案1

写一个文档示例-duck:

\documentclass[tikz,multi]{standalone}
\usepackage{tikzducks}
\begin{document}
\foreach\x in {1,2,...,100}
{\tikz\randuck;}
\end{document}

并编译它。

然后你可以像这样使用它:

\documentclass{article}
\usepackage{xfp,graphicx}
\newcommand\getduck{\fpeval{randint(1,100)}}

\begin{document}

\includegraphics[page=\getduck]{example-duck}

\includegraphics[page=\getduck]{example-duck}

\includegraphics[page=\getduck]{example-duck}

\end{document}

在此处输入图片描述或者在此处输入图片描述

编辑

正如评论中所要求的那样,这里有一个更精致的例子 - 鸭子(女巫的尖头需要相当大的背景):

\documentclass[tikz,multi]{standalone}
\usepackage{tikzducks}
\begin{document}
\foreach\x in {1,2,...,100}
{\begin{tikzpicture}
 \draw[fill=gray!50!white](-0.8,-0.8)rectangle(3,3);
 \draw[gray] (-0.8,-0.8)--(3,3)
             (3,-0.8)--(-0.8,3)
             (-0.8,1.1)--++(3.8,0)
             (1.1,-0.8)--++(0,3.8)
             ;
 \randuck;
 \node [anchor=center,rounded corners,draw=darkgray,opacity=0.5,fill=lightgray,rotate=30,font=\sffamily] at (1.1,1.1) {example duck};
 \end{tikzpicture}}
\end{document}

在此处输入图片描述

答案2

可以使用以下内容:

\documentclass[]{article}

\usepackage{tikzducks}
\usepackage{adjustbox}

\newcommand\exampleDuck[1][]
  {%
    \adjustbox{#1}{%
      \begin{tikzpicture}
        \draw[black,fill=gray!50,thick] (0,0) rectangle (6,4);
        \draw[gray] (0,0) -- (6,4);
        \draw[gray] (0,4) -- (6,0);
        \draw[gray] (3,0) -- (3,4);
        \draw[gray] (0,2) -- (6,2);
        \node at (3,2) {\tikz\randuck;};
      \end{tikzpicture}
    }%
  }

\begin{document}
\exampleDuck[width=2cm]

\exampleDuck[height=5cm]

\exampleDuck
\end{document}

在此处输入图片描述

这个包您还可以使用以下(也可以在 github 上):

\documentclass[]{article}

\usepackage{graphicx}
\usepackage{duckuments}

\begin{document}
\noindent
\includegraphics[width=.5\textwidth]{example-image-duck}% takes a random page from the pdf
\includegraphics[width=.5\textwidth]{example-image-a}% still working

\blindduck% print one paragraph of text

\duckument% print a small duckument

\end{document}

结果: 在此处输入图片描述

相关内容