texinfo - 在代码中换行

texinfo - 在代码中换行

我发现一个提示来自 Karl Berry 4 年前撰写的关于如何在代码示例中输出换行的文章texi2pdf。我在下面演示了该解决方案。但是,想知道是否有一种方法可以做到这一点而不需要手动调整要打印的表达式,这将很有趣。

我想到的一个可能的解决方法是根据需要进行手动调整并将其包装在@ifpdf标签中。但这似乎明确不可能

目前,Texinfo 不提供像其他输出格式那样的“@ifpdf”或“@pdf”命令,因为 PDF 文档包含许多内部低级偏移量和引用,这些偏移量和引用在 Texinfo 源级别很难或不可能正确获取。

\input texinfo   @c -*-texinfo-*-      
@c %**start of header
@setfilename longline.info
@settitle Long Line Sample
@c %**end of header

@node    Top
@chapter Long line example

Here is an example of a code block, it is formatted using a pair of matching @code{@@example} and @code{@@end example} tags.

@example
(["lessfrequentword" java.lang.string]
["mostfrequentword" java.lang.string]
["wordstupleswithfrequency" 
#<parameterizedtypeimpl java.util.arraylist<java.lang.string[]>>]
["words" #<parameterizedtypeimpl
 java.util.arraylist<ccg.flow.processnodes.text.retrievers.dictionary.dictionaryitem>>])
@end example

As you can see, there is no linewrapping.  What I would like is something that looks more like this:

@quotation
@t{(["lessfrequentword" java.lang.string]}@*
@t{["mostfrequentword" java.lang.string]}@*
@t{["wordstupleswithfrequency"}@*
@t{#<parameterizedtypeimpl java.util.arraylist<java.lang.string[]>>]}@*
@t{["words" #<parameterizedtypeimpl}@*
@t{ java.util.arraylist<ccg.flow.processnodes.text.retrievers.dictionary. dictionaryitem>>])}@*
@end quotation

But ideally without the need to hand-tweak the text (note extra space introduced in the
second listing in particular).

@bye

在此处输入图片描述

答案1

类似这样的事情可能是一个开始

启动文件

\input texinfo   @c -*-texinfo-*-
@iftex
@input texinfoextras
@end iftex

然后使用以下方法进行编译(例如 Info)

makeinfo --no-iftex texinfo.texi

隐藏来自该处理器的输入命令。

对于处理texi2pdf,一个明智的texinfoextras.tex做法是

@catcode`@\=0
\let\oldexample\example
{
\gdef\example{\oldexample
\relax
\catcode46=\active
\def\normaldot{\string.\hfil\penalty0\hfilneg}}
}
@catcode`@\=13

允许换行,.结果为

在此处输入图片描述

相关内容