cutwin、pstricks 没有定义行数或如何在段落左上角放置一张小图片

cutwin、pstricks 没有定义行数或如何在段落左上角放置一张小图片

我想在某些需要多行的段落开头放一张小图片。就我而言,我喜欢一张需要两行的二次图。所以我尝试缩进第一行和第二行。

我曾尝试使用 wrapfigure 来解决这个问题,但这也有自己的问题。无论如何,我最成功的方法是使用 cutwin 来定义段落的边距(例如,参见使用shapepar进行文本换行(在文本之间插入图像))。

经过多次尝试后我最终得到了以下结果,这几乎就是我想要的。

\documentclass[10pt,a4paper, twocolumn, onepage]{report}
\usepackage[utf8]{inputenc}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}

\usepackage{cutwin}
\usepackage{pstricks}

\usepackage{lipsum}

% cut for own flavor paragraph
\opencutleft
\newcommand*{\cutcut}{%
0.92\columnwidth,
0.92\columnwidth}
\renewcommand\putstuffinpic{%
  \rput(0,-3pt){%
    \includegraphics[width=0.05\textwidth, height=0.05\textwidth]{example.png}}}

% own flavor paragraph
\newenvironment{para}[1]{
    \vspace{10pt}
    \begin{shapedcutout}{0}{2}{\cutcut} \noindent
    \textbf{#1}
    }{
    \end{shapedcutout}
    }

\begin{document}

\chapter{Title}

\section{Title}

\lipsum[1]
\begin{para}{Title}
\lipsum[2]
\end{para}
\begin{para}{Title}
\lipsum[3]
\end{para}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt 

\begin{para}{Title}
\lipsum[4]
\end{para}
\begin{para}{Title}
\lipsum[5]
\end{para}
\begin{para}{Title} 
\lipsum[1]
\end{para}

\begin{para}{Title} 
\lipsum[2]
\end{para}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt 

\begin{para}{Title}
\lipsum[5]
\end{para}



\end{document}

结果

但是,它有时会产生细微的间距错误。在此示例中,您可以观察到第二个“para”段落的第二行和第三行之间的间距错误(以及以下“para”段落中的间距错误)。您可以在给定的图像中观察到此错误。它是以“Title”开头的段落。

我同意我没有 100% 正确地使用 cutwin 包。我应该定义所有行的边距并定义行的总数。我只是声明了前两行的边距。但是,我希望有一个解决方案,这样我就不必手动计算行数。我也对解决我的问题的其他方法感到满意。非常感谢!

编辑:关于wrapfig/关于Arash Esbati的建议:

您的代码可以正常工作。但是,如果我尝试使用 wrapfigure 中的图像执行此代码,图像会向下移动一行。

\documentclass[10pt,a4paper,twocolumn]{report}
\usepackage[utf8]{inputenc}
\usepackage{wrapfig,lipsum}
\usepackage[demo]{graphicx}

\begin{document}

\textbf{Title} \lipsum[2]

\noindent
\begin{wrapfigure}[2]{l}{20pt}
    \includegraphics[width=0.05\textwidth, height=0.05\textwidth]{image.png}
  %\vspace{-1\intextsep}\rule{20pt}{20pt}
\end{wrapfigure}
\textbf{Title} \lipsum[2]
\begin{wrapfigure}[2]{l}{20pt}
    \includegraphics[width=0.05\textwidth, height=0.05\textwidth]{image.png}
  %\vspace{-1\intextsep}\rule{20pt}{20pt}
\end{wrapfigure}\noindent
\textbf{Title} \lipsum[2]

\end{document}

当我尝试自己使用 wrapfig 时也遇到了同样的问题。

答案1

使用时您面临哪些问题wrapfig?以下代码有效:

\documentclass[10pt,a4paper,twocolumn]{report}
\usepackage[utf8]{inputenc}
\usepackage{wrapfig,lipsum}

\begin{document}

\textbf{Title} \lipsum[2]

\noindent
\begin{wrapfigure}[2]{l}{20pt}
  \vspace{-1\intextsep}\rule{20pt}{20pt}
\end{wrapfigure}
\textbf{Title} \lipsum[2]

\end{document}

编辑1:

我不认为以下问题存在:

\documentclass[10pt,a4paper,twocolumn]{report}
\usepackage[utf8]{inputenc}
\usepackage{wrapfig,lipsum,calc}
\usepackage{graphicx}

\begin{document}

\textbf{Title} \lipsum[2]

\begin{wrapfigure}[2]{l}{20pt}
  \vspace{-1\intextsep}%
  \includegraphics[height=20pt,keepaspectratio]{example-image-1x1}
\end{wrapfigure}
\noindent \textbf{Title} Lorem ipsum dolor sit amet, consetetur sadipscing
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua. At vero eos et accusam et
justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt.

\end{document}

在此处输入图片描述

答案2

我建议使用lettrine专为此目的而设计的。虽然它主要设计用于装饰性首字母和下拉大写字母,但它也可以用于代替字母的图像。它假设您的图像将以它们在段落首字母中替换的字母命名。但是,只要您可以自由重命名图像,这并不是什么大问题,只要您为此目的需要的不同图像不超过 26 张即可。在本例中,我只是创建了符号链接而不是重命名图像,所以我的图像被命名为A.epsX.png

那么我可以说:

\documentclass[10pt,a4paper,twocolumn]{report}
\usepackage[utf8]{inputenc}
\usepackage{lettrine,lipsum}
\usepackage{graphicx}
\renewcommand\LettrineTextFont{\bfseries}
\title{Title}
\author{}
\begin{document}
\maketitle% do NOT format this manually!

\lipsum[2]

\lettrine[image]{A}{ Title} % use image named A.eps or A.pdf or...
\lipsum[2]

\lettrine[image]{X}{ Title} % use image named X.eps or X.pdf or...
\lipsum[2]

\end{document}

产生类似的东西

花哨的段落开头

相关内容