(我的第一篇帖子 - 请让我知道我将来是否/如何改进我的问题!)(已修改以包含完整的示例文件)
有问题的代码是通过脚本自动生成的。还有大约十几个其他相同的代码片段(只有文件名不同)。十二个代码段中的三个在节的末尾显示了意外的额外缩进。
\documentclass[11pt, oneside,american]{book}
\usepackage[margin=1in]{geometry} % See geometry.pdf to learn the layout options. There are lots.
\geometry{letterpaper} % ... or a4paper or a5paper or ...
\usepackage{graphicx}
\usepackage{float}
\usepackage[verbose]{wrapfig}
\usepackage[american]{babel}
\usepackage[babel]{csquotes}
\usepackage{etoolbox,xkeyval,ifthen,url}
\usepackage{enumitem}
\usepackage[
backend=biber,
annotation,
loadfiles=true % this forces load of external annotations - based on naming convention
]{biblatex-chicago}
\usepackage{filecontents}
\usepackage[all]{nowidow}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}
\usepackage{hyperref}
\input{bibs_index.tex}
\renewcommand*{\finentrypunct}{}%
\DeclareFieldFormat{citehyperref}{%
\DeclareFieldAlias{bibhyperref}{noformat}% Avoid nested links
\bibhyperref{#1}}
\savebibmacro{cite}
\renewbibmacro*{cite}{%
\printtext[citehyperref]{%
\restorebibmacro{cite}%
\usebibmacro{cite}}}
\usepackage{fontspec}
\input{fonts.tex}
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-1}
\setlist{nosep} %tighten up lists
\begin{document}
\mainmatter
\section{The Contributors}
\subsection{Jane~Smith}
\textsf{Washington, DC, USA}
\par \setlength{\columnsep}{0pt}
\begin{wrapfigure}{l}{0.25\textwidth} \centering \includegraphics[width=0.18\textwidth]{bios/iglazer.jpg}
\end{wrapfigure}
\textsf{ \input{random.txt} }
\WFclear
\subsubsection{Recommendations}\begin{enumerate}
\item \cite{Clippinger2007}
\item \cite{Richer2017}
\end{enumerate}\noindent\rule{\textwidth}{0.2pt}
\printbibliography
\end{document}
答案1
最简单的方法是不使用浮点数。纯文本宏包 可以实现这一点insbox
,它定义了\InsertBoxL
和\InsertBoxR
命令,并带有两个强制参数:段落开头保持不变的行数和要插入的框。还有一个可选参数:应缩短的补充行数,以防 TeX 计算错误。
\documentclass[english]{article}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{lipsum}
\input{insbox}
\makeatletter
\@InsertBoxMargin = 10pt
\makeatother
\begin{document}
\subsection*{Ian~Glazer} \textsf{Washington, DC, USA} \smallskip
\InsertBoxL{0}{\includegraphics[width=0.18\textwidth]{PepeLePew}}[-1]
\sffamily \lipsum[2-10]
\subsubsection{Recommendations}
\begin{enumerate}
\item \cite{Clippinger2007}
\item \cite{Richer2017}
\end{enumerate}\noindent\rule{\textwidth}{0.2pt}
\end{document}
答案2
该软件包lettrine
主要针对首字母缩减设计,但也允许在段落开头放置一个左环绕图像,代码非常简单。此外,\lettrine
还有多个选项允许对图像位置进行微调。
不幸的是,对于这种情况,它是为单个段落设计的,没有第一行的缩进。但对于第一个问题很容易制作,\fakepar
对于第二个问题,\lettrine
选项就足够了,如下例所示:
\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{lettrine}
\usepackage{graphicx}
\usepackage{lipsum} % only for dummy text
\renewcommand\familydefault{\sfdefault}
\parskip1em
\parindent2em
\def\fakepar{\hfill\mbox{}\vspace{\parskip}\newline\mbox{}\hspace{\parindent}}
\begin{document}
\subsection*{Robert Conway}
Shangri-La, Lost Horizons, Kunlun Mountains\par\bigskip
\lettrine[
lines=13,
lraise=-.1,
findent=5em,
nindent=-2em,
lhang=-.2,
depth=1,
image=true]{example-image-golden-upright}{}%
\lipsum[1][1-4]
\lipsum[2][1-4]\fakepar
\lipsum[3-7]
\end{document}