我有一个独立的 tikzpicture,我想把它放在由缩进段落创建的左边距(空白处),同时满足以下所有条件:
我不想在主 tex 文件中定义 tikzpicture,我想使用来导入它
\includestandalone[width=.3\textwidth]{mytikz}
我的主 tex 文件有 0.5 英寸左边距,
\geometry{left=.5in}
以及 指定的额外 2.25 英寸边距\begin{adjustwidth}{2.25in}{0pt}
;我不希望我的图片进入 0.5 英寸边距,我的图片必须仅放在 2.25 英寸缩进边距中图形的位置必须由
\begin{figure}[h!]
我不想浮动其位置来控制我的图形需要在 2.25 英寸缩进边距中添加标题
此外,我不想因为数字而中断我的段落以产生间隙
这是独立的 tikzpicture:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);
\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);
\draw[ultra thick, ->] (6.5,0) arc (0:220:1);
\end{tikzpicture}
\end{document}
这是我的主要 tex 文件:
\documentclass[openany]{book}
\usepackage{tikz}
\usepackage{standalone}
\usepackage{changepage}
\usepackage{geometry}
\geometry{paperheight=9.8125in,paperwidth=8in, left=.5in,
right=.5in,top=.75in,bottom=.4375in }
\usepackage{fancyhdr}
\fancypagestyle{plain}{\fancyhf{} \fancyhead[EL,OR]{\textbf
{\thepage}}\renewcommand{\headrulewidth}{0pt}}
\pagestyle{plain}
\renewcommand{\rmdefault}{pag}
\begin{document}
\begin{adjustwidth}{2.25in}{0pt}
\section{Introduction}\label{Intro}
\chapter {Dogs}
Dogs\\
Dogs.................
\section{Cats}
I put some words before the figure\\
I put some words before the figure\\
\begin{figure}[h!]
\includestandalone[width=.3\textwidth]{mytikz}
\caption{My TikZ picture}
\label{fig:tikz:my}
\end{figure}
Do not want to break the words because of the figure. I like to put my
figure at the indented margin.\\
Do not want to break the words because of the figure. I like to put my
figure at the indented margin.
\end{adjustwidth}
\end{document}
答案1
图形环境总是占据整个列或页面。您需要使用 wrapfig 或 minipage。此解决方案使用 minipage 并使用 重叠边距\llap
。
虽然\noindent
这里并不严格需要,但\leavevmode
在 之前需要某种形式的\llap
。 \raisebox
也起到两个作用,此时将图像的顶部与文本的顶部对齐,并垂直重叠文本。
最后,我将其替换\includestandalone
为\includegraphics
,因为图像文件可用。我还删除了 tikz 和 standalone 包,但添加了 graphicx(通常由 tikz 加载)和 caption(需要\captionof
)。我添加了[showframe]
geometry 选项以使边距可见。
\documentclass[openany]{book}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{changepage}
\usepackage{geometry}
\geometry{paperheight=9.8125in,paperwidth=8in, left=.5in,
right=.5in,top=.75in,bottom=.4375in,showframe}
\usepackage{fancyhdr}
\fancypagestyle{plain}{\fancyhf{} \fancyhead[EL,OR]{\textbf
{\thepage}}\renewcommand{\headrulewidth}{0pt}}
\pagestyle{plain}
\renewcommand{\rmdefault}{pag}
\begin{document}
\begin{adjustwidth}{2.25in}{0pt}
\section{Introduction}\label{Intro}
\chapter {Dogs}
Dogs\\
Dogs.................
\section{Cats}
I put some words before the figure\\
I put some words before the figure\\
\noindent\llap{\raisebox{\dimexpr \ht\strutbox-\height}[0pt][0pt]{% overlaps starting here
\begin{minipage}{.3\textwidth}
\includegraphics[width=\textwidth]{test5}% local filename
\captionof{figure}{My TikZ picture}
\label{fig:tikz:my}
\end{minipage}}\hspace{\columnsep}}% add gap inside \llap
Do not want to break the words because of the figure. I like to put my
figure at the indented margin.\\
Do not want to break the words because of the figure. I like to put my
figure at the indented margin.
\end{adjustwidth}
\end{document}