我有两个问题。
- 我有一个机制。它能给我正确的行数,我应该把这些行数缩小(我有这个机制
\setcounter{ct}{...}
)。我想教授\addpicture
这项技能,并将其用作默认第一个可选参数。我该怎么做?
简而言之,我希望\addpicture
每次运行此宏时根据函数的强制参数计算可选参数的默认值\addpicture
。
但我发现在这种情况下我不会成功,因为的第三个论点\addpicture
不是许多窄线。所以,
的第三个参数
\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}