此后问题,我需要在包含文件条目后添加一些内容,以确保接下来的内容从下一行开始。我不想跳过源代码中的空白行,我希望命令能帮我完成。
一位 MWE 表示:
一个更现实的例子,n10 和 n11 之间的问题:
\begin{filecontents*}{typea.tex}
here latex stuff
\end{filecontents*}
\begin{filecontents*}{typeb.tex}
\begin{minipage}{5cm}
\item here latex stuff
more stuff
\end{minipage}
\end{filecontents*}
\documentclass{article}
\usepackage{xparse,l3regex}
% #### tarassinput pour les item dans les minipages
\ExplSyntaxOn
\NewDocumentCommand{\tarassinput}{om}
{
\tl_set_from_file:Nnn \l_tarass_input_tl { } { #2 }
% \A matches the start
% \c{begin} matches \begin
% \cB. matches any "group begin" token
% \cE. matches any "group end" token
\regex_match:nVF
{ \A \c{begin} \cB. minipage \cE. }
\l_tarass_input_tl
{ \IfValueTF{#1}{ \item[#1] }{ \item } }
\tl_use:N \l_tarass_input_tl
}
\cs_generate_variant:Nn \regex_match:nnF { nV }
\ExplSyntaxOff
\begin{document}
\begin{itemize}
\item Start
\tarassinput{typea}
\tarassinput{typeb}
\end{itemize}
\end{document}
答案1
你的迷你页面应该是这样的
\begin{minipage}[b]{\linewidth}
Material\par\xdef\tpd{\theprevdepth}
\end{minipage}
那么正则表达式匹配代码可以是
\NewDocumentCommand{\tarassinput}{om}
{
\tl_set_from_file:Nnn \l_tarass_input_tl { } { #2 }
\regex_match:nVTF { \A \c{begin} \cB. minipage \cE. } \l_tarass_input_tl
{% true branch: input the minipage and restore \prevdepth
\tl_use:N \l_tarass_input_tl \par\prevdepth=\tpd\scan_stop:
}
{% false branch
\IfValueTF{#1}{ \item[#1] }{ \item }
\tl_use:N \l_tarass_input_tl
}
}
\cs_generate_variant:Nn \regex_match:nnTF { nV }
答案2
评论太长:问题与 latex 3 或输入法无关。可以用下面的 MWE 显示。如你所见,小页面扰乱了间距。虽然可以通过仔细分析代码找到合适的值来纠正间距,但我会不惜一切代价避免这种结构。它看起来不自然,而且是错误的。
\documentclass{article}
\begin{document}
\begin{itemize}
\item Start
\item
here latex stuff
\begin{minipage}[t]{5cm}
\item here latex stuff
more stuff
\item more stuff
\end{minipage}
\item outside minipage
\item outside minipage
\end{itemize}
\end{document}
我认为你走错了路。你为什么要把 \item 放在 minipage 里面?当它在外面时一切都很好:
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\begin{itemize}
\item Start
\item
here latex stuff
\item \begin{minipage}[t]{5cm}
\lipsum*[1]
more stuff\strut
\end{minipage}\quad
\begin{minipage}[t]{3cm}\vspace{0pt}\rule{1cm}{3cm}
\end{minipage}
\item more stuff
\item outside minipage
\item outside minipage
\end{itemize}
\end{document}
您还可以使用 addmargin 环境(来自 KOMA 类)来缩小文本。