买者自负 ...

买者自负 ...

我希望文本从与图片相同的高度开始,但我希望图片向右对齐。它与文本没有直接关联,而更像是文本的可视化工具。

不用担心节点标签太糟糕。这只是一个“黑客行为”,直到我真正费心修复图片以使标签合适。

\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}

相关内容