以下问题基本上已经被问到在此网站上(不是我提出的),但是没有一个答案能让我满意,所以我将再次提问,希望能得到有用的答案。
考虑以下包含两个句子的 LaTeX 文档。
\documentclass{article}
\usepackage{lipsum}
\title{}
\author{}
\date{}
\begin{document}
\lipsum[1][1]\lipsum[1][2]
\end{document}
当使用此代码进行编译时pdflatex
,会产生以下输出。
我想将一个 1cm 宽的 TikZ 正方形放置在大写字母 U 左下角下方 1cm 和右侧 1cm 处,如下图所示。(我用红点标出了参考点,但这个红点不应该出现在实际输出中。)
我怎样才能实现这个目标?
作为第一次尝试,我尝试了以下代码。
\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\newcommand{\mytikzrec}{%
\begin{tikzpicture}[baseline=2cm]%
\draw (0,0) rectangle (1,1);%
\end{tikzpicture}%
}
\title{}
\author{}
\date{}
\begin{document}
\lipsum[1][1]\mytikzrec\lipsum[1][2]
\end{document}
这产生了以下输出。
这有两个问题。首先,我设法将方块向下移动,但我不知道如何将方块向右移动。其次,正常的文本流被打乱了,这不是我想要的。文本应该像图片不存在一样流动,就像上面第一个代码示例的情况一样。
答案1
您可以使用tikzmark
Ti钾Z 库:
\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\usetikzlibrary{tikzmark}
\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \tikzmarknode{U}{U}t purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
\begin{tikzpicture}[remember picture,overlay]
\draw (U.south west) ++ (1,-1) rectangle ++ (1,-1);
% just for showing the distances
\draw[red,-latex] (U.south west) |- ++ (1,-1);
\end{tikzpicture}
\end{document}
答案2
我想建议一个变化Juan Castaño 的回答,它使用\tikzmark
而不是\tikzmarknode
,从而产生更简洁的代码。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{lipsum}
\title{}
\author{}
\date{}
\begin{document}
\lipsum[1][1]\tikzmark{x}\lipsum[1][2]
\begin{tikzpicture}[remember picture,overlay]%
\draw (pic cs:x) ++ (1,-1) rectangle ++(1,-1);%
\end{tikzpicture}
\end{document}
答案3
虽然Juan Castaño 回答更通用(学会使用\tikzmark
真的很有用),更简单的答案是---隐藏你的Ti的大小钾Z 图片overlay
,这样 LaTeX 就会认为它是 0 尺寸的东西:
\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\newcommand{\mytikzrec}{%
\begin{tikzpicture}[overlay]%
\draw (1,-1) rectangle ++(1,-1);%
\end{tikzpicture}%
}
\title{}
\author{}
\date{}
\begin{document}
\lipsum[1][1]\mytikzrec\lipsum[1][2]
\end{document}
(请注意,Ti 使用的单位钾默认情况下,Z 在两个轴上都是 1cm,尽管您可以通过多种方式对其进行调整。
使用起来\tikzmark
功能更强大,但通常需要多次编译才能完成。