如何定义一个可以换行的LaTeX抄录代码命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何定义一个可以换行的LaTeX抄录代码命令相关的知识,希望对你有一定的参考价值。
让空格可以断行同时不被吃掉,可以重定义 \\@xobeysp 为 \\hspace0pt\\mbox \\hspace0pt允许连字符,可以重设 \\hyphenchar
在 \\verb 开始处增加 \\hspace*0pt 设置一个虚拟词,以允许第一个词后断开。
不过呢,这个要求比较怪。主要是连字符。需要使用特殊字符的代码中所有字符都可能是有特别意义的,通常都不能接受混入多余的连字符,以免与减号之类的混淆。
而如果只是允许空格断行的话,不需要上面的方式,很多宏包就可以完成了。例如 listings 可以全局或局部设置 breaklines 选项,如果你仔细读文档了的话。
\\documentclassarticle
\\usepackageetoolbox
\\makeatletter
\\def\\@xobeysp\\hspace0pt\\mbox \\hspace0pt
\\appto\\verbatim@font\\hyphenchar\\font`-\\relax
\\apptocmd\\@sverb\\hspace*0pt
\\makeatother
\\usepackagelistings
\\lstsetbasicstyle=\\normalfont\\sffamily,breaklines
\\begindocument
\\parindent=0pt
\\hsize=4em
\\verb|#Hyphenation# and %allowlinebreak%|
\\lstinline|this is also breakable|
\\enddocument
\\documentclassarticle
\\usepackageetoolbox
\\makeatletter
\\def\\@xobeysp\\hspace0pt\\mbox \\hspace0pt
\\appto\\verbatim@font\\hyphenchar\\font`-\\relax
\\apptocmd\\@sverb\\hspace*0pt
\\makeatother
\\usepackagelistings
\\lstsetbasicstyle=\\normalfont\\sffamily,breaklines
\\begindocument
\\parindent=0pt
\\hsize=4em
\\verb|#Hyphenation# and %allowlinebreak%|
\\lstinline|this is also breakable|
\\enddocument
verb-linebreak
注意 listings 的断行规则可能严一些,空格也是可伸缩的。
此外,如果是 url、文件路径之类东西,用 url 宏包的 \\url 更好。它的实现原理与 \\verb 之类命令不大一样,断行规则也不同。 参考技术A 让空格可以断行同时不被吃掉,可以重定义 \@xobeysp 为 \hspace0pt\mbox \hspace0pt
允许连字符,可以重设 \hyphenchar
在 \verb 开始处增加 \hspace*0pt 设置一个虚拟词,以允许第一个词后断开。
不过呢,这个要求比较怪。主要是连字符。需要使用特殊字符的代码中所有字符都可能是有特别意义的,通常都不能接受混入多余的连字符,以免与减号之类的混淆。
而如果只是允许空格断行的话,不需要上面的方式,很多宏包就可以完成了。例如 listings 可以全局或局部设置 breaklines 选项,如果你仔细读文档了的话。
\documentclassarticle
\usepackageetoolbox
\makeatletter
\def\@xobeysp\hspace0pt\mbox \hspace0pt
\appto\verbatim@font\hyphenchar\font`-\relax
\apptocmd\@sverb\hspace*0pt
\makeatother
\usepackagelistings
\lstsetbasicstyle=\normalfont\sffamily,breaklines
\begindocument
\parindent=0pt
\hsize=4em
\verb|#Hyphenation# and %allowlinebreak%|
\lstinline|this is also breakable|
\enddocument
\documentclassarticle
\usepackageetoolbox
\makeatletter
\def\@xobeysp\hspace0pt\mbox \hspace0pt
\appto\verbatim@font\hyphenchar\font`-\relax
\apptocmd\@sverb\hspace*0pt
\makeatother
\usepackagelistings
\lstsetbasicstyle=\normalfont\sffamily,breaklines
\begindocument
\parindent=0pt
\hsize=4em
\verb|#Hyphenation# and %allowlinebreak%|
\lstinline|this is also breakable|
\enddocument
verb-linebreak
注意 listings 的断行规则可能严一些,空格也是可伸缩的。
此外,如果是 url、文件路径之类东西,用 url 宏包的 \url 更好。它的实现原理与 \verb 之类命令不大一样,断行规则也不同。本回答被提问者采纳
Latex 表格内公式换行方法
Latex 表格内的公式实现换行的方法
简单的两步走:
- 1.先将下面的语句放在latex正文的导言区:
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#[email protected]{}}#2\end{tabular}} %放在导言区
- 2.然后在tabular内的格子内使用 \tabincell{c}{} 插入相应内容, 就可以在表格中自动换行
以下为一例子,可直接存为.tex文件编译运行:
\documentclass[a4paper,12pt]{article}
\begin{document}
\begin{document}
%-------------------------------------------------------------------------------------------------
\begin{table}
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#[email protected]{}}#2\end{tabular}} %导言区
\centering
\begin{table}
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#[email protected]{}}#2\end{tabular}} %导言区
\centering
\begin{tabular}{|c|c|c|}
\hline
1 & \tabincell{c}{the first line \\ the next\\the next\\ last} & \tabincell{c}{one \\ one}\\ %换行,单元格内的每个元素用\tabincell{c}{放表格内容}
1 & \tabincell{c}{the first line \\ the next\\the next\\ last} & \tabincell{c}{one \\ one}\\ %换行,单元格内的每个元素用\tabincell{c}{放表格内容}
%--------------------------------------------------------------------------------------------------
\caption{longtitle}
\end{table}
\caption{longtitle}
\end{table}
\end{document}
结果如下图:
以上是关于如何定义一个可以换行的LaTeX抄录代码命令的主要内容,如果未能解决你的问题,请参考以下文章