我在这篇论文中使用 tikz 图片工具绘制一些图表,并使用 wrapfigure 环境将它们放置在文本中。
问题是,当我运行代码时,图片被放置在我想要的位置的下方,在第一行文本和图片之间留有一个空格。在我看来,这个空间的宽度与一行文本的宽度相同。
我的代码和文档在这里:
\documentclass[final, 12pt,oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{amsmath} % American Mathematics Society standards
\usepackage{graphicx} % Extended graphics package.
\usepackage{amsxtra}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{ dsfont }
\usepackage{latexsym}
\usepackage{spverbatim}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{biblatex}
\usepackage{csquotes}
%BIBLIOGRAFÍA
\addbibresource{bibliografia.bib}
\topmargin = -0.56in
\textheight = 8.60in
\textwidth = 6.46in
\oddsidemargin = 0.02in
%TEOREMAS
\newtheorem{theorem}{Theorem}[section]
\newtheorem{prop}{Proposición}
\newtheorem{corollary}{Corollary}[theorem]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem*{remark}{Observación}
\newtheorem{exmp}{Ejemplo}[section]
\def\proof{\paragraph{Demostraci\'on:\\}}
\def\endproof{\hfill$\square$}
\theoremstyle{definition}
\newtheorem{definition}{Definición}[chapter]
%WRAPFIGURE
\usepackage{wrapfig}
\usepackage{adjustbox}
%TIKZ
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetikzlibrary{shapes.geometric, arrows, angles, intersections, calc, math, quotes}
\usetikzlibrary{babel}
%COLORES
\usepackage{xcolor}
\definecolor{gualda}{RGB}{250,194,43}
\definecolor{rred}{RGB}{212,42,32}
\definecolor{bblue}{RGB}{14,99,142}
%ESPACIOS
\setlength{\parskip}{0.5 em}
\setlength{\baselineskip}{1.5 em}
\begin{document}
\noindent \textsc{Axiomas de Ordenación:}\par
\noindent \textbf{B1.} Si $B$ está entre $A$ y $C$, (escrito como $A*B*C$), entonces $A$, $B$, $C$ son tres puntos distintos que pertenecen a la misma recta, y también $C*B*A$.\par
\noindent \textbf{B2.} Para cualquiera dos puntos distintos $A$, $B$, existe un punto $C$ tal que $A*B*C$.\par
\noindent \textbf{B3.} Dados $A$, $B$, $C$, tres puntos distintos en una recta, uno y sólo uno de ellos está entre los otros dos. Es decir: $A*B*C$, o bien $A*C*B$, o bien $B*A*C$.\par
\begin{wrapfigure}[5]{r}{0pt}
\begin{tikzpicture}[>=stealth]
\coordinate (A) at (-1.2,0);
\coordinate (B) at (0,2.4);
\coordinate (C) at (3.6,0);
\draw[rred, line width=2.5pt, name path=AC] (A) -- (C);
\draw[bblue, line width=2.5pt, name path=AB] (A) -- (B);
\draw[black, line width=2.5pt, name path=CB] (C) -- (B);
\filldraw[black] (A) circle (2pt) node[anchor=north east]{$A$};
\filldraw[black] (B) circle (2pt) node[anchor=south west]{$B$};
\filldraw[black] (C) circle (2pt) node[anchor= west]{$C$};
\draw[->, gualda, line width=2.5pt, name path=l] (-1.25,2.25) -- node [black, above, near start]{$l$} (0.75,0.25);
\path[name intersections={of=AB and l, by=D}];
\filldraw[black] (D) circle (2pt) node[below=3pt,left=3pt]{$D$};
\end{tikzpicture}
\end{wrapfigure}
\noindent \textbf{B4.} (Axioma de Pasch). Dados $A$,$B$, $C$ tres puntos no alineados, y una recta $l$ que no contiene a ninguno de ellos. Si $l$ contiene a un punto $D$ tal que $A*D*B$, entonces debe contener también un punto entre $A$ y $C$, o bien, un punto entre $B$ y $C$, pero no ambos.
\newpage
\end{document}
但是,我以前也遇到过这个问题,虽然不是 tikz 图片。以前我曾设法在插入图片之前使用 \raisebox 修复了这个问题,就像一位用户在这篇文章中所说的那样:
但问题是,除了 overleaf 检测到的所有错误之外,我的图表的箭头消失了。我尝试了该帖子答案中的其他解决方案,但没有奏效(\vspace 等)。
有人知道如何在包装图环境中垂直调整 tikz 图片而不消除图表的箭头吗?谢谢
答案1
用于\setlength\intextsep{0pt}
消除包装图形的顶部和底部的多余空间。
\intextsep
是放置在所有浮动上方和下方的垂直空间,而不仅仅是环绕图形。若要仅影响它们,请将此代码添加到前言中。
\usepackage{etoolbox}
\BeforeBeginEnvironment{wrapfigure}{\setlength{\intextsep}{0pt}}
这是最小可编译代码。(图中分配了 9 行)
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\topmargin = -0.56in
\textheight = 8.60in
\textwidth = 6.46in
\oddsidemargin = 0.02in
%WRAPFIGURE
\usepackage{wrapfig}
%TIKZ
\usepackage{tikz}
\usepackage{tkz-euclide}
%COLORES
\usepackage{xcolor}
\definecolor{gualda}{RGB}{250,194,43}
\definecolor{rred}{RGB}{212,42,32}
\definecolor{bblue}{RGB}{14,99,142}
% ******************************************** added <<<<<<<<<<
\usepackage{etoolbox}
\BeforeBeginEnvironment{wrapfigure}{\setlength{\intextsep}{0pt}}
%****************************************************
\usepackage{kantlipsum}% ONLY for the dummy thext <<<
\begin{document}
\noindent \textsc{Axiomas de Ordenación:}\par
\noindent \textbf{B1.} Si $B$ está entre $A$ y $C$, (escrito como $A*B*C$), entonces $A$, $B$, $C$ son tres puntos distintos que pertenecen a la misma recta, y también $C*B*A$.\par
\noindent \textbf{B2.} Para cualquiera dos puntos distintos $A$, $B$, existe un punto $C$ tal que $A*B*C$.\par
\noindent \textbf{B3.} Dados $A$, $B$, $C$, tres puntos distintos en una recta, uno y sólo uno de ellos está entre los otros dos. Es decir: $A*B*C$, o bien $A*C*B$, o bien $B*A*C$.\par
\begin{wrapfigure}[9]{r}{0pt}% changed <<<<<<<<<<
\begin{tikzpicture}[>=stealth]
\coordinate (A) at (-1.2,0);
\coordinate (B) at (0,2.4);
\coordinate (C) at (3.6,0);
\draw[rred, line width=2.5pt, name path=AC] (A) -- (C);
\draw[bblue, line width=2.5pt, name path=AB] (A) -- (B);
\draw[black, line width=2.5pt, name path=CB] (C) -- (B);
\filldraw[black] (A) circle (2pt) node[anchor=north east]{$A$};
\filldraw[black] (B) circle (2pt) node[anchor=south west]{$B$};
\filldraw[black] (C) circle (2pt) node[anchor= west]{$C$};
\draw[->, gualda, line width=2.5pt, name path=l] (-1.25,2.25) -- node [black, above, near start]{$l$} (0.75,0.25);
\path[name intersections={of=AB and l, by=D}];
\filldraw[black] (D) circle (2pt) node[below=3pt,left=3pt]{$D$};
\end{tikzpicture}
\end{wrapfigure}
\noindent \textbf{B4.} (Axioma de Pasch). Dados $A$,$B$, $C$ tres puntos no alineados, y una recta $l$ que no contiene a ninguno de ellos. Si $l$ contiene a un punto $D$ tal que $A*D*B$, entonces debe contener también un punto entre $A$ y $C$, o bien, un punto entre $B$ y $C$, pero no ambos.
\noindent \textbf{B5.} (Dummy text). \kant[1]
\end{document}