我希望文本从与图片相同的高度开始,但我希望图片向右对齐。它与文本没有直接关联,而更像是文本的可视化工具。
不用担心节点标签太糟糕。这只是一个“黑客行为”,直到我真正费心修复图片以使标签合适。
\begin{flushright}
\begin{tikzpicture}
\coordinate (a) at (0,0,0);
\coordinate (b) at (1.5,0,0);
\coordinate (c) at (0,1.5,0);
\coordinate (d) at (0,0,1.5);
\coordinate (e) at (1.5,1.5,0);
\coordinate (f) at (1.5,0,1.5);
\coordinate (g) at (0,1.5,1.5);
\coordinate (h) at (1.5,1.5,1.5);
\draw[thick] (e)--(c)--(g)--(h)--(e)--(b)--(f)--(d)--(g);
\draw[thick] (h)--(f);
\draw[gray] (b)--(a)--(c);
\draw[gray] (a)--(d);
\node at (a) [left] {$d$};
\node at (b) [right] {$c$};
\node at (c) [above] {$h$};
\node at (d) [left] {$a$};
\node at (e) [above] {$g$};
\node at (f) [right] {$b$};
\node at (g) [above] {$e$};
\node at (h) [above] {$f$};
\end{tikzpicture}
\end{flushright}
Let $G \subgr S_8$ and $X = \{\{a,g\},\{b,h\},\{c,e\},\{d,f\}\}$
答案1
请注意,如果不提出许多警告和限制、警告和抗议、禁令和警告,就不能推荐此代码。我不仅不知道自己在做什么,而且它依赖于 LaTeX 3 开发人员标记为实验的代码。与我不同,他们做知道他们在做什么,所以如果他们说他们是不知道什么他们是做,那一定是真的。
此外,使用此代码不仅会破坏您放置图片的段落。它还会破坏您的整个文档。其影响不能局限于局部范围。破坏是彻底的,厄运是普遍的,毁灭是肯定的。
买者自负 ...
但它确实看起来运行得很好。
这是基于我的答案到这个问题它明确要求在expl3
语法中提供一种方法来执行此操作xgalley
。
请注意,正是使用 才xgalley
使得这令人毛骨悚然。这里使用的其他expl3
材料被认为是稳定的。
或者,更准确地说,它的使用xgalley
使这个答案比我的典型答案更加可疑,这可能已经令人毛骨悚然,因为正如我可能提到的,我不知道自己在做什么。
代码定义了两个新的宏
\putright[<untouched lines>](<contents for wrap>}
\putleft[<untouched lines>](<contents for wrap>}
如果指定了可选参数,则给出换行图开始之前段落开头的完整文本行数。默认值为 2。
我稍微修改了 MWE,但关键是未触及的线数被给出为,0
并且图片被指定为\putright
或的第二个参数\putleft
。
\putright[0]{%
\begin{tikzpicture}
\newcommand*\len{1.5}
\draw [thick] (0,0,\len) coordinate (a) \foreach \i/\j in {(\len,0,\len)/b,(\len,0,0)/c,(\len,\len,0)/g,(0,\len,0)/h,(0,\len,\len)/e,(\len,\len,\len)/f} {-- \i coordinate (\j)} -- (g) (f) -- (b) (a) -- (e);
\coordinate (d) at (0,0,0);
\draw [gray] (a) -- (d) edge (c) -- (h);
\foreach \i/\j in {a/left,b/right,c/right,d/left,e/left,f/right,g/above,h/above} \node at (\i) [\j] {\i};
\end{tikzpicture}}
Let $G S_8$ and $X = \{\{a,g\},\{b,h\},\{c,e\},\{d,f\}\}$\par
\kant[1-2]
我添加了一些额外的康德以满足感兴趣的人的形而上学好奇心。
这是我之前的回答中的另一个例子。
\putright[4]{\includegraphics[width=.3\textwidth]{duck}}
\kant[3-4]
结果如下:
双页跨页:
完整代码
\documentclass{article}
\usepackage{kantlipsum,xgalley,tikz}
\ExplSyntaxOn
\box_new:N \l_xwrapfig_fig_box
\box_new:N \l_xwrapfig_vfig_box
\box_new:N \l_xwrapfig_hfig_box
\dim_new:N \l_xwrapfig_wd_dim
\dim_new:N \l_xwrapfig_totalht_dim
\dim_new:N \l_xwrapfig_adjwd_dim
\clist_new:N \l_xwrapfig_indents_clist
\int_new:N \l_xwrapfig_lines_int
\int_new:N \l_xwrapfig_totallines_int
\int_new:N \l_xwrapfig_adjlines_int
\fp_new:N \l_xwrapfig_adjfig_fp
\dim_set:Nn \l_xwrapfig_adjwd_dim { 2ex }
\int_set:Nn \l_xwrapfig_adjlines_int { 1 }
\cs_generate_variant:Nn \galley_cutout_right:nn { nV }
\cs_generate_variant:Nn \galley_cutout_left:nn { nV }
\cs_new_protected:Nn \xwrapfig_prewrap:n
{
\clist_clear:N \l_xwrapfig_indents_clist
\vbox_set:Nn \l_xwrapfig_vfig_box { #1 }
\dim_set:Nn \l_xwrapfig_totalht_dim { \box_ht:N \l_xwrapfig_vfig_box + \box_dp:N \l_xwrapfig_vfig_box }
\hbox_set:Nn \l_xwrapfig_hfig_box { #1 }
\dim_set:Nn \l_xwrapfig_wd_dim { \box_wd:N \l_xwrapfig_hfig_box + \l_xwrapfig_adjwd_dim }
\int_set:Nn \l_xwrapfig_totallines_int { ( \l_xwrapfig_totalht_dim / \baselineskip ) + \l_xwrapfig_adjlines_int }
\int_zero:N \l_xwrapfig_lines_int
\int_do_while:nn { \l_xwrapfig_lines_int < \l_xwrapfig_totallines_int }
{
\int_incr:N \l_xwrapfig_lines_int
\clist_put_right:Nn \l_xwrapfig_indents_clist { \l_xwrapfig_wd_dim }
}
}
\cs_new_protected:Nn \xwrapfig_postwrap:
{
\box_set_ht:Nn \l_xwrapfig_fig_box { 0pt }
\box_set_dp:Nn \l_xwrapfig_fig_box { 0pt }
\box_use:N \l_xwrapfig_fig_box
}
\cs_new_protected:Nn \xwrapfig_putright:nn
{
\xwrapfig_prewrap:n { #2 }
\galley_cutout_right:nV { #1 } \l_xwrapfig_indents_clist
\vbox_set:Nn \l_xwrapfig_fig_box
{
\fp_set:Nn \l_xwrapfig_adjfig_fp { ( #1 + .5\l_xwrapfig_adjlines_int ) * \baselineskip }
\skip_vertical:n { \fp_to_dim:N \l_xwrapfig_adjfig_fp }
\hbox_to_wd:nn { \linewidth } { \skip_horizontal:n { \linewidth - \l_xwrapfig_wd_dim + .5\l_xwrapfig_adjwd_dim } #2 }
}
\xwrapfig_postwrap:
}
\cs_new_protected:Nn \xwrapfig_putleft:nn
{
\xwrapfig_prewrap:n { #2 }
\galley_cutout_left:nV { #1 } \l_xwrapfig_indents_clist
\vbox_set:Nn \l_xwrapfig_fig_box
{
\fp_set:Nn \l_xwrapfig_adjfig_fp { ( #1 + .5\l_xwrapfig_adjlines_int ) * \baselineskip }
\skip_vertical:n { \fp_to_dim:N \l_xwrapfig_adjfig_fp }
\hbox_to_wd:nn { \l_xwrapfig_wd_dim } { \skip_horizontal:n { .5\l_xwrapfig_adjwd_dim } #2 }
}
\xwrapfig_postwrap:
}
\NewDocumentCommand\putright { O { 2 } +m }
{
\xwrapfig_putright:nn { #1 } { #2 }
}
\NewDocumentCommand\putleft { O { 2 } +m }
{
\xwrapfig_putleft:nn { #1 } { #2 }
}
\ExplSyntaxOff
\begin{document}
\putright[0]{%
\begin{tikzpicture}
\newcommand*\len{1.5}
\draw [thick] (0,0,\len) coordinate (a) \foreach \i/\j in {(\len,0,\len)/b,(\len,0,0)/c,(\len,\len,0)/g,(0,\len,0)/h,(0,\len,\len)/e,(\len,\len,\len)/f} {-- \i coordinate (\j)} -- (g) (f) -- (b) (a) -- (e);
\coordinate (d) at (0,0,0);
\draw [gray] (a) -- (d) edge (c) -- (h);
\foreach \i/\j in {a/left,b/right,c/right,d/left,e/left,f/right,g/above,h/above} \node at (\i) [\j] {\i};
\end{tikzpicture}}
Let $G S_8$ and $X = \{\{a,g\},\{b,h\},\{c,e\},\{d,f\}\}$\par
\kant[1-2]
\putleft[3]{\includegraphics[width=.3\textwidth]{duck}}
\kant[3]
\clearpage
\putleft[0]{%
\begin{tikzpicture}
\newcommand*\len{1.5}
\draw [thick] (0,0,\len) coordinate (a) \foreach \i/\j in {(\len,0,\len)/b,(\len,0,0)/c,(\len,\len,0)/g,(0,\len,0)/h,(0,\len,\len)/e,(\len,\len,\len)/f} {-- \i coordinate (\j)} -- (g) (f) -- (b) (a) -- (e);
\coordinate (d) at (0,0,0);
\draw [gray] (a) -- (d) edge (c) -- (h);
\foreach \i/\j in {a/left,b/right,c/right,d/left,e/left,f/right,g/above,h/above} \node at (\i) [\j] {\i};
\end{tikzpicture}}
Let $G S_8$ and $X = \{\{a,g\},\{b,h\},\{c,e\},\{d,f\}\}$\par
\kant[4]
\putright{\includegraphics[width=.3\textwidth]{duck}}
\kant[5]
\end{document}