第二个问题的解答。

第二个问题的解答。

我有两个问题。

  1. 我有一个机制。它能给我正确的行数,我应该把这些行数缩小(我有这个机制\setcounter{ct}{...})。我想教授\addpicture这项技能,并将其用作默认第一个可选参数。我该怎么做?

简而言之,我希望\addpicture每次运行此宏时根据函数的强制参数计算可选参数的默认值\addpicture

但我发现在这种情况下我不会成功,因为的第三个论点\addpicture不是许多窄线。所以,

  1. 的第三个参数\InsertBoxL是附加行数,这些行数也应该更窄。在文档中说更正。但在我的功能中,由于一些神秘的事情,它被破坏了。那么,现在是什么情况,我该怎么做才能纠正它?

    在此处输入图片描述

    \documentclass{article}
    \usepackage{graphicx}              
    \usepackage{forloop}
    \usepackage{caption}
    \usepackage{xargs}
    \usepackage{mwe}    
    \input{insbox.tex}
    \usepackage{threeparttable}
    \newcounter{ct}
    
    \newlength\imageheight
    
    \newcount\narrowlinect
    \narrowlinect=0\relax
    
    \newcommandx\addpicture[4][1=5,3=0]{%
    \InsertBoxL{#3}{\begin{threeparttable}%
    \begin{tabular}{c@{}}\includegraphics[width=#4\textwidth]{#2}\end{tabular}%
    \captionof{figure}{}\end{threeparttable}}[#1]}
    
    \begin{document}
    \settoheight\imageheight{\includegraphics[width=0.45\textwidth]{example-image-a}}
    \narrowlinect=\imageheight\relax
    \setcounter{ct}{\numexpr((\narrowlinect)/\baselineskip+2)\relax}
    
    \arabic{ct}
    
    \addpicture[0]{example-image-a}[0]{0.45}
    \forloop{ct}{1}{\value{ct} < 30}{\arabic{ct}\newline }
    \end{document}
    

答案1

第二个问题的解答。

第一个参数是未受影响行,第二个参数是要插入的对象,可选参数是一个校正项:其数量supplementary lines 应该更窄(相对于 TeX 计算的行数) - 就像在环境中一样wrapfigure

我建议使用这个简单的代码,它对于单行字幕来说效果很好。对于较长的字幕,您必须使用以下命令更正补充行数: \myInsertBoxL[no of supplementary lines]{width}{graphic file}{caption text}

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{mwe}
\input{insbox.tex}

\newcommand\myInsertBoxL[4][]{\InsertBoxL{0}{%
\parbox[t]{#2}{%
\includegraphics[width=#2]{#3}
\captionof{figure}{#4}
}}%
[\numexpr#1 + 3\relax]}

\usepackage{lipsum}

\begin{document}

\myInsertBoxL{0.45\textwidth}{example-image-a}{}
\noindent\lipsum[1-2]

\myInsertBoxL[2]{0.45\textwidth}{example-image-b}
{A useful caption. A useful caption. A useful caption.}%
\noindent\lipsum[3-5]

\end{document} 

在此处输入图片描述

相关内容