相关问题:
为什么我的自定义 wrapfig 环境乱了?及其后续问题wrapfig 与 intextsep
在上述问题中,提供了几种解决方案来消除wrapfigure
环境上方插入的空白。最明显的方法是\intextsep
全局设置为零。不幸的是,这也会影响正常数字周围的间距,使用 0 填充看起来相当糟糕。
新环境定义在为什么我的自定义 wrapfig 环境乱了?并不能解决该问题,正如后续问题所指出的那样。
现在,无论是\begingroup
还是{\setlength{\intextsep}\begin{wrapfigure}...}
(如后续文章中所述)对我来说都不太管用,因为我\paragraph{}
大多数时候都在使用上面的包装图,这会产生错误。此外,我使用了很多分项列表,因为我主要使用 TeX 来编写讲义/摘要,尽可能将文本缩减为关键点。因此,这些解决方案会产生一系列新问题,而这些问题是我想要避免的。
使用 的解决方案\vspace{-\baselineskip}
是我迄今为止处理该问题的方法。虽然这确实有效,但将其添加到每个包装图中很麻烦。直接将 插入 的选项vspace
也不wrapfigure
是最优的,因为图像的大小和比例差异很大。此外,vspace
如果将包装图的宽度指定为{0}
(自动调整为图像/表格宽度),则会被忽略。
所以我得出了(可能是错误的)结论,最好的选择是设置\intextsep
为零全球但仅适用于包装图(不是图形)。不幸的是,我找不到任何答案来解释如何实现这一点。
有什么办法可以做到这一点 - 调整\intextsep
仅有的用于包装图形?
我将添加从我的一份摘要中复制的 MWE,希望它能有所帮助:
\documentclass[11pt,a4paper]{article}
\usepackage[headheight=13.6pt,left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{quoting,polyglossia}
\setmainlanguage[spelling=new]{german}
\usepackage{unicode-math}
\setmathfont{xits-math.otf}
\usepackage{multirow,
tabularx,booktabs,array,
multicol,
wrapfig,float,subcaption}
\setlength{\multicolsep}{3.0pt plus 2.0pt minus 1.5pt}
\setlength{\floatsep}{0.0pt plus 2.0pt minus 2.0pt} %default: \setlength{\floatsep}{12.0pt plus 2.0pt minus 2.0pt}
\setlength{\textfloatsep}{0.0pt plus 2.0pt minus 4.0pt} %default: \setlength{\textfloatsep}{20.0pt plus 2.0pt minus 4.0pt}
\setlength{\intextsep}{0.0pt plus 2.0pt minus 2.0pt} %default: \setlength{\intextsep}{12.0pt plus 2.0pt minus 2.0pt}
\usepackage[skip=2pt,figurename=Abb.,tablename=Tab.]{caption}
\usepackage[export]{adjustbox}
\captionsetup[figure]{font=footnotesize,labelfont=it}
\captionsetup[subfigure]{skip=2pt,font=scriptsize,labelfont=it}
\usepackage[compact]{titlesec}
\usepackage[inline]{enumitem}
\setitemize{noitemsep,topsep=2pt,parsep=0pt,partopsep=2pt,leftmargin=*}
\setenumerate{noitemsep,topsep=2pt,parsep=0pt,partopsep=2pt,leftmargin=*}
\newcommand{\arr}{$\rightarrow{}$}
\begin{document}
\begin{figure}[ht]
\centering
\includegraphics[frame,width=0.92\linewidth]{Path2-Pictures/3-6.png}
\caption{Basissymptome nach Kolsterkötter, 1992; 2012}
%\vspace{-0.5\baselineskip} --> a vspace I inserted before I set \intextsep to 0; this figure still has sufficient padding (why is unclear to me though)
\end{figure}
Diese Rückkehrhemmung ist bei Schizophrenen gestört \arr Aachen-Studien mit Covert Orienting of Attention Task; Gouzoulis-Mayfrank (2004, 2006, 2007): Gemessen wurde die RT beim Auffinden bestimmter Objekte an der alten Position \arr Schizophrene sind \emph{schneller}
Interpretation: Schizophrene können verschiedene Filter nicht anwenden, weshalb sie immer wieder auf basale Information zurückkehren müssen \arr Rückkehrhemmung bei Schizophrenen
\begin{wrapfigure}[7]{r}{0.3\textwidth}
%\vspace{-\baselineskip} --> this wrapfigure is now where I want it with \intextsep 0
\centering
\includegraphics[frame,width=0.99\linewidth]{Path2-Pictures/3-8.png}
\caption{Moritz, 2006}
\end{wrapfigure}
\paragraph{Gedächtnisfehler \& Korrektheitskonfidenz} Studie von Moritz (2006): Bild wird gezeigt, dann entfernt; Frage: Erinnern sie sich an ...? Wie sicher sind sie sich?
\begin{itemize}
\item Gesunde Kontrollen waren sich nicht signifikant sicherer bei korrekten Antworten \arr gesehene Objekte erkennen bzw. nicht gesehene als solche bezeichnen
\item Schizophrene Patienten sind sich viel sicherer, wenn die Antwort \emph{inkorrekt ist} \arr signifikanter Unterschied
\begin{itemize}
\item Falsche Korrektheitskonfidenz \arr Gedächtnisfehler
\item Alles Nicht-Wahn Inhalte in Studie
\end{itemize}
\end{itemize}
\subsubsection{Basissymptome als Verlaufstest}
\paragraph{Hypothese:} Overinclusion als "symptomnahe Basisstörung" ist bei akuter Psychose besonders ausgeprägt \& wird im Verlauf schwächer \arr \textbf{Overinclusion:} Irrelevante Konzept-Merkmale werden integriert \arr Übereinschluss in Konzepte; Begriffe, Sachverhalte, Figuren, Schemata.
%\vspace{-0.8\baselineskip} --> this figure now is way too close to the text above with \intextsep 0
\begin{figure}[hb]
\begin{subfigure}{0.52\linewidth}
\includegraphics[frame,width=0.99\linewidth]{Path2-Pictures/3-11.png}
\caption{Maercker, 1987; Kawohl, 2010}
\end{subfigure}
\begin{subfigure}{0.47\linewidth}
\includegraphics[frame,width=0.99\linewidth]{Path2-Pictures/3-12.png}
\caption{Maercker, 1987; Kawohl, 2010}
\end{subfigure}
\end{figure}
\end{document}
编译结果如下:
注意:我正在使用 XeLaTeX,如果有任何区别的话。
答案1
设置\intextsep
,但是仅有的对于wrap figure
环境来说,将从包\BeforeBeginEnvironment
中使用etoolbox
。
\usepackage{etoolbox}
\BeforeBeginEnvironment{wrapfigure}{\setlength{\intextsep}{0pt}}
这前
和后\BeforeBeginEnvironment
适用范围:
笔记:
- 在下面的 MWE 中,我注释掉了您对 的手动调整
\setlength{\intextsep}{0.0pt plus 2.0pt minus 2.0pt}
。 - 您可以取消注释
\showthe\intextsep
来查看效果。 - 由于我没有您所包含的数字,因此在包装
demo
上使用了这个选项。graphicx
代码:
\documentclass[11pt,a4paper]{article}
\usepackage[headheight=13.6pt,left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage{etoolbox}
\BeforeBeginEnvironment{wrapfigure}{\setlength{\intextsep}{0pt}}
\usepackage{quoting,polyglossia}
\setmainlanguage[spelling=new]{german}
\usepackage{unicode-math}
\setmathfont{xits-math.otf}
\usepackage{multirow,
tabularx,booktabs,array,
multicol,
wrapfig,float,subcaption}
\setlength{\multicolsep}{3.0pt plus 2.0pt minus 1.5pt}
\setlength{\floatsep}{0.0pt plus 2.0pt minus 2.0pt} %default: \setlength{\floatsep}{12.0pt plus 2.0pt minus 2.0pt}
\setlength{\textfloatsep}{0.0pt plus 2.0pt minus 4.0pt} %default: \setlength{\textfloatsep}{20.0pt plus 2.0pt minus 4.0pt}
%\setlength{\intextsep}{0.0pt plus 2.0pt minus 2.0pt} %default: \setlength{\intextsep}{12.0pt plus 2.0pt minus 2.0pt}
\usepackage[skip=2pt,figurename=Abb.,tablename=Tab.]{caption}
\usepackage[export]{adjustbox}
\captionsetup[figure]{font=footnotesize,labelfont=it}
\captionsetup[subfigure]{skip=2pt,font=scriptsize,labelfont=it}
\usepackage[compact]{titlesec}
\usepackage[inline]{enumitem}
\setitemize{noitemsep,topsep=2pt,parsep=0pt,partopsep=2pt,leftmargin=*}
\setenumerate{noitemsep,topsep=2pt,parsep=0pt,partopsep=2pt,leftmargin=*}
\newcommand{\arr}{$\rightarrow{}$}
\begin{document}
\begin{figure}[ht]
\centering
\includegraphics[frame,width=0.92\linewidth]{Path2-Pictures/3-6.png}
\caption{Basissymptome nach Kolsterkötter, 1992; 2012}
%\vspace{-0.5\baselineskip} --> a vspace I inserted before I set \intextsep to 0; this figure still has sufficient padding (why is unclear to me though)
\end{figure}
Diese Rückkehrhemmung ist bei Schizophrenen gestört \arr Aachen-Studien mit Covert Orienting of Attention Task; Gouzoulis-Mayfrank (2004, 2006, 2007): Gemessen wurde die RT beim Auffinden bestimmter Objekte an der alten Position \arr Schizophrene sind \emph{schneller}
Interpretation: Schizophrene können verschiedene Filter nicht anwenden, weshalb sie immer wieder auf basale Information zurückkehren müssen \arr Rückkehrhemmung bei Schizophrenen
\begin{wrapfigure}[7]{r}{0.3\textwidth}
%\vspace{-\baselineskip} --> this wrapfigure is now where I want it with \intextsep 0
\centering
%\showthe\intextsep% <-- uncomment to see the change
\includegraphics[frame,width=0.99\linewidth]{Path2-Pictures/3-8.png}
\caption{Moritz, 2006}
\end{wrapfigure}
\paragraph{Gedächtnisfehler \& Korrektheitskonfidenz} Studie von Moritz (2006): Bild wird gezeigt, dann entfernt; Frage: Erinnern sie sich an ...? Wie sicher sind sie sich?
\begin{itemize}
\item Gesunde Kontrollen waren sich nicht signifikant sicherer bei korrekten Antworten \arr gesehene Objekte erkennen bzw. nicht gesehene als solche bezeichnen
\item Schizophrene Patienten sind sich viel sicherer, wenn die Antwort \emph{inkorrekt ist} \arr signifikanter Unterschied
\begin{itemize}
\item Falsche Korrektheitskonfidenz \arr Gedächtnisfehler
\item Alles Nicht-Wahn Inhalte in Studie
\end{itemize}
\end{itemize}
\subsubsection{Basissymptome als Verlaufstest}
\paragraph{Hypothese:} Overinclusion als "symptomnahe Basisstörung" ist bei akuter Psychose besonders ausgeprägt \& wird im Verlauf schwächer \arr \textbf{Overinclusion:} Irrelevante Konzept-Merkmale werden integriert \arr Übereinschluss in Konzepte; Begriffe, Sachverhalte, Figuren, Schemata.
%\vspace{-0.8\baselineskip} --> this figure now is way too close to the text above with \intextsep 0
\begin{figure}[hb]
\begin{subfigure}{0.52\linewidth}
\includegraphics[frame,width=0.99\linewidth]{Path2-Pictures/3-11.png}
\caption{Maercker, 1987; Kawohl, 2010}
\end{subfigure}
\begin{subfigure}{0.47\linewidth}
\includegraphics[frame,width=0.99\linewidth]{Path2-Pictures/3-12.png}
\caption{Maercker, 1987; Kawohl, 2010}
\end{subfigure}
\end{figure}
\end{document}
答案2
在一个回答另一个问题(其中包括一个示例),@Ulrike Fischer 建议在序言中使用以下代码,避免intextsep
全局设置,从而避免改变正常图形的间距。
\usepackage{wrapfig}
\usepackage{etoolbox}
\makeatletter
\patchcmd\WF@putfigmaybe{\lower\intextsep}{}{}{\fail}%
\AddToHook{env/wrapfigure/begin}{\setlength{\intextsep}{0pt}}
\makeatother