我知道,这很丑陋,看起来很愚蠢,但我需要重新定义。我尝试了很多方法(\edef
,\expandafter
...)似乎都不起作用。没有换行符。
\documentclass{article}
\usepackage{ulem}
\def\texteSouligne#1{\uline{#1}}
\def\texteGras#1{{\textbf{#1}}}
\def\texteItalique#1{{\it #1}}
\begin{document}
Voici du texte \texteSouligne{souligné \texteItalique{et eded e defn même temps italique bla blabla blabla blabla blabla blabla blabla blabla bla.}}
Voici du texte \texteSouligne{souligné \texteGras{et en même bla blabla blabla blabla blabla blabla blabla blabla blabla blabla bla temps gras.}}
\texteSouligne{Voici du texte souligné, bla bla blabla bla blabla bla blabla bla blabla bla blabla bla blabla bla bla \texteGras{en gras \texteItalique{et en même temps italique.}}}
\end{document}
答案1
这是软件包的限制ulem
。从其文档,“3 并发症”一节:
大括号和宏替换的一个重要不兼容性:所有括号内的文本或来自宏的文本都排版在一个框中(如同在 中一样
\mbox
)。因此,括号将抑制其所括文本的拉伸和换行。
包裹soul
问题中的示例可以使用包进行排版soul
。它有自己的局限性,请参阅其文档。以下示例使用包soulutf8
为 8 位 TeX 引擎添加 UTF-8 支持。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{soulutf8}
\newcommand{\texteSouligne}[1]{\ul{#1}}
\newcommand{\texteGras}[1]{\textbf{#1}}
\newcommand{\texteItalique}[1]{\textit{#1}}
\soulregister{\texteGras}{1}
\soulregister{\texteItalique}{1}
\begin{document}
Voici du texte \texteSouligne{souligné \texteItalique{et eded e defn même
temps italique bla blabla blabla blabla blabla blabla blabla blabla bla.}}
Voici du texte \texteSouligne{souligné \texteGras{et en même bla blabla
blabla blabla blabla blabla blabla blabla blabla blabla bla temps gras.}}
\texteSouligne{Voici du texte souligné, bla bla blabla bla blabla bla
blabla bla blabla bla blabla bla blabla bla bla \texteGras{en gras
\texteItalique{et en même temps italique.}}}
\end{document}