这个问题可能不太严肃,但为了纪念\pi
这一天,我想收集一组 LaTeX 谜语。目的是鼓励新手学习一些非常基本的 LaTeX 命令。以下是一个例子:
\documentclass{article}
\usepackage{tikz}
\usepgfmodule{nonlineartransformations}
\usetikzlibrary{shapes}
\usetikzlibrary{patterns}
\makeatletter
% from https://tex.stackexchange.com/q/56353/121799
\newcommand{\gettikzxy}[3]{%
\tikz@scan@one@point\pgfutil@firstofone#1\relax
\global\edef#2{\the\pgf@x}%
\global\edef#3{\the\pgf@y}%
}
% from the manual section 103.4.2
% \pgf@x will contain the \xout{radius} angle
% \pgf@y will contain the distance \pgfmathsincos@{\pgf@sys@tonumber\pgf@x}%
% pgfmathresultx is now the cosine of \xout{radius} radius and
% pgfmathresulty is the sine of radius
% \pgf@x=\pgfmathresultx\pgf@y%
% \pgf@y=\pgfmathresulty\pgf@y%
% what the thing in the pgf manually is probably doing it to express the x coordinate in pt
% then take the cos and sin of x/pt (i.e. if x=50pt then it will return cos(50))
% and multiply the outcome by a the y coordinate
% (x_new,y_new) = (y_old cos(x_old/pt), y_old sin(x_old/pt))
% now comes a slightly modified version
\def\marmotransformation{% modified version of the manual 103.4.2 Installing Nonlinear Transformation
\advance\pgf@x by -\xC% relative
\advance\pgf@y by -\yC% coorinates
\edef\relX{\the\pgf@x}%
\edef\relY{\the\pgf@y}% Yes, there is a more elegant solution based on \pgfpointadd
\pgfmathsetmacro{\relNx}{\xN-\xC}%
\pgfmathsetmacro{\relNy}{\yN-\yC}%
\pgfmathsetmacro{\angleN}{atan2(\relNy,\relNx)}%
\pgfmathsetmacro{\LeN}{veclen(\relNx,\relNy)}%
\pgfmathsetmacro{\myp}{(\relX*\relNx+\relY*\relNy)/(\LeN*28.3465)}
\pgfmathsetmacro{\myo}{(((\relY*\relNx-\relX*\relNy))/(\myp*\LeN*(28.3465*pi/180)))+\angleN)}
\pgfpointadd{\pgfqpoint{\xC}{\yC}}{\pgfpointpolarxy{\myo}{\myp}}
} % I have no idea why the factor 5 is needed
% I'm using https://tex.stackexchange.com/a/167109/121799
\newcommand{\apple}[1][ball color=red]{\hspace*{-0.5cm}
\ensuremath{\vcenter{\resizebox{0.4cm}{!}{\begin{tikzpicture}[#1]
%\path[use as bounding box](-0.1,-0.1) rectangle (0.1,0.1);
\coordinate (C) at (0,3) {};
\gettikzxy{(C)}{\xC}{\yC}
\coordinate (N) at (0,0) {};
\gettikzxy{(N)}{\xN}{\yN}
\begin{scope}[transform shape nonlinear=true]
\pgftransformnonlinear{\marmotransformation}
\shade[shading=ball,opacity=1] (0,0) circle (2);
\end{scope}
\draw[smooth,fill=black](-0.15,3) .. controls (-0.15,2.5) .. (0,2) to
(0.1,2) .. controls (-0.05,2.5) .. (-0.05,3) --cycle;
\end{tikzpicture}
}}}}
\begin{document}
\resizebox{!}{4cm}{$\pi\ne\apple$}
\end{document}
(提示:答案是不应该放在 \pi\zz{a} 上的东西。)
问题:您知道类似的谜语吗?可以发布一下吗?
澄清:要学习的基本 LaTeX 命令是\pi
和\ne
,而不是非线性变换。
感谢大家!我对这个“问题”得到的所有精彩答案感到非常震惊。不幸的是,这个论坛的规则让我只能接受其中一个。最后我决定接受 Paulo Cereda 的答案,因为我希望通过这种方式获得的声誉能让他花更多时间在他的论文上。;-)
答案1
当然,用鸭子来表示圆周率的最好方式就是用鸭子。:)
例如,5 只相同颜色的鸭子代表数字 5,等等。但是,这个系统必须依靠一只鸭子来表示没有鸭子,所以我用一种美国黑鸭来做相应的反应。
以下代码必须使用 LuaLaTeX 执行,数字生成器由罗塞塔密码。请注意,此代码运行缓慢。如果您要指定数字(和鸭子)的数量,请n
在 Lua 代码范围内更改变量。:)
更新:该算法从零开始。:)
\documentclass[12pt]{article}
\usepackage{tikzducks}
\usepackage{xparse}
\usepackage[margin=1cm]{geometry}
\usepackage{luacode}
\ExplSyntaxOn
\NewDocumentCommand{\ducks}{mm}{
\int_compare:nTF { #1 != 0 }
{ \prg_replicate:nn { #1 } { \tikz[scale=.25]{ \duck[body=#2]; } \hspace{.16667em} } }
{ \tikz[scale=.25]{ \duck[body=black]; } \hspace{.16667em} }
}
\ExplSyntaxOff
\setlength{\parindent}{0pt}
\pagestyle{empty}
\begin{document}
\raggedright
\begin{luacode}
a = {}
n = 1000
cl = false
len = math.modf( 10 * n / 3 )
for j = 1, len do
a[j] = 2
end
nines = 0
predigit = 0
for j = 1, n do
q = 0
for i = len, 1, -1 do
x = 10 * a[i] + q * i
a[i] = math.fmod( x, 2 * i - 1 )
q = math.modf( x / ( 2 * i - 1 ) )
end
a[1] = math.fmod( q, 10 )
q = math.modf( q / 10 )
if q == 9 then
nines = nines + 1
else
if q == 10 then
tex.print('\\ducks{' .. (predigit + 1) .. '}{' ..
(cl and 'light' or '') .. 'gray}')
cl = not cl
for k = 1, nines do
tex.print('\\ducks{1}{black}')
end
predigit = 0
nines = 0
else
tex.print( '\\ducks{' .. predigit .. '}{' ..
(cl and 'light' or '') .. 'gray}' )
cl = not cl
predigit = q
if nines ~= 0 then
for k = 1, nines do
tex.print('\\ducks{9}{' ..
(cl and 'light' or '') .. 'gray}')
cl = not cl
end
nines = 0
end
end
end
end
tex.print( '\\ducks{' .. predigit .. '}{' ..
(cl and 'light' or '') .. 'gray}' )
\end{luacode}
\end{document}
圆周率日快乐!嘎嘎!:)
答案2
几乎随机的字符生成器,用 XeTeX 编译:
\font\forpi="[FreeSans.otf]"
\forpi
\def\printpi3.{3.\otherpi}
\def\otherpi#1#2#3{%
\iffontchar\font"#1#2
\char"#1#2
\else
\char"1#1#2
\fi
\ifx#3\end\else\expandafter\otherpi\fi#3
}
\printpi
3.
243F
6A88
85A3
08D3
1319
8A2E
0370
7344
A409
3822
299F
31D0
082E
FA98
EC4E
6C89
4528
21E6
38D0
1377
BE54
66CF
34E9
0C6C
C0AC
\end
练习。
- 所有的空间都到哪里去了?
- 为什么代码仅具有一个
%
?
π 的十六进制展开式来自http://turner.faculty.swau.edu/mathematics/materialslibrary/pi/pibases.html
答案3
编辑:为非英语母语人士提供翻译。
以下是两个简单的谜语:
\documentclass{article}
\begin{document}
\noindent
You better watch out,\\
$u\beta \not \pi\dots$\\
Q: Who is coming to town?
\end{document}
引用圣诞节的诗句“你最好小心,你最好不要哭,最好不要生气,我告诉你为什么,圣诞老人要来镇上了。”这里的“u beta not pi”与“你最好不要哭”的节奏相同。
\documentclass{article}
\parindent 0pt
\begin{document}
Clue: {3\tiny$\pi\gg$s}\\
Q: Who is the bad guy in this story?
\end{document}
“三只小猪”指的是童话故事“三只小猪”,其中大灰狼是反派角色。
以下是解密游戏。通过读取图像构建 LaTeX 代码。
\documentclass{article}
\begin{document}
The doctor says...$\pi\ss \in a \cup$
\end{document}
也许是针对老年人群,当被要求提供尿液样本时,口语描述是“在杯中撒尿”。
\documentclass{article}
\parindent0pt
\begin{document}
\def\you{8}
$\if \you 8 a \pi\ll\you'\ll b \fi\ne$,\\
but\\
$\if \you 8 5 \pi\ll{s}\you'\ll \not b \fi\ne$!
\end{document}
“如果你 [吃] 一颗药丸,你会没事,但如果你 [吃] 五颗药丸,你就不会没事了” 代码本质上就是这么写的。当然,LaTeX 版本是最微妙的,测试和排版文本也是如此。它进一步依赖于设置为 的\if...\fi
宏。\you
8
\documentclass{article}
\begin{document}
$a \big(\pi\ll) {\wedge}d \in a \cup$.
\end{document}
这里只有一行愚蠢的语句,“杯子里塞着一颗大药丸”就是代码的样子。
\documentclass{article}
\parindent0pt
\begin{document}
The Mama circle asked her child what time ($t$) is it?\\
The reply: $t = 2 (\mathrm{Go})^{\pi D}$
\end{document}
知道t
就是时间,数学上可能读作“去便盆(又称浴室)的时间了”。
答案4
好吧,我敢。这是法国工程师学校“预备班”学生数学水平的著名测试。法语版,配有英语翻译和 IPA 发音。
\documentclass{article}
\usepackage[safe]{tipa}
\usepackage{amsmath}
\begin{document}
\paragraph*{Question:}\leavevmode
Show that
\[
\frac{\text{cheval}}{\text{oiseau}} = \pi.
\]
(``$\text{\textsl{horse}}/\text{\textsl{bird}} = \pi$''.)
\paragraph*{``Proof'':}\leavevmode
$\text{oiseau} = \beta\ell$ (\text{b\^ete \`a ailes}, [\textipa{bEt a El}],
$\text{\textsl{winged beast}}$),
so
\[
\frac{\text{cheval}}{\text{oiseau}} = \frac{\text{cheva}\ell}{\beta\ell}
= \frac{\text{cheva}}{\beta}.
\]
But $\text{cheva} = \text{vache}$ (product is commutative) and
$\text{vache} = \beta\pi$ (b\^ete \`a pis, [\textipa{bEt a pi}];
``$\text{\textsl{cow}} = \text{\textsl{beast with udders}}$''),
so
\[
\frac{\text{cheva}}{\beta} = \frac{\beta\pi}{\beta} = \pi.
\]
C.Q.F.D. -- sorry, Q.E.D.
\end{document}