05_LaTeX之排版样式设定

news/2025/3/12 19:28:15/文章来源:https://www.cnblogs.com/Invinc-Z/p/18691090

05_\(\LaTeX{}\) 之排版样式设定

目录
  • 05_\(\LaTeX{}\) 之排版样式设定
    • 字体和字号
      • 字体样式
      • 字号
      • 选用字体宏包
      • 字体编码
      • 使用 fontspec 宏包更改字体
      • ctex 宏包或文档类中更改中文字体
      • 使用 unicode-math 宏包配置 Unicode 数学字体
    • 文字装饰和强调
    • 段落格式和间距
      • 长度和长度变量
      • 行距
      • 段落格式
      • 水平间距
      • 垂直间距
    • 页面和分栏
      • 利用 geometry 宏包设置页面参数
      • 页面内容的垂直对齐
      • 分栏
    • 页眉页脚
      • 基本的页眉页脚样式
      • 手动更改页眉页脚的内容
      • fancyhdr 宏包

本文主体内容来自一份 (不太) 简短的 LATEX2ε 介绍。

本章内容将一览如何修改 \(\LaTeX{}\) 的排版样式。

字体和字号

\(\LaTeX{}\) 根据文档的逻辑结构(章节、脚注等)来选择默认的字体样式以及字号。需要更改字体样式或字号的话,可以使用 下表 中列出的命令。

image-20250121100704497 image-20250121101016109 image-20250121101037202

字体样式

\(\LaTeX{}\) 提供了两组修改字体的命令,见上表。其中诸如 \bfseries 形式的命令将会影响之后所有的字符,如果想要让它在局部生效,需要用花括号分组,也就是写成\bfseries <some text> 这样的形式;对应的 \textbf 形式带一个参数,只改变参数内部的字体,更为常用。

在公式中,直接使用\textbf 等命令不会起效,甚至报错。\(\LaTeX{}\) 提供了修改数学字母样式的命令,如 \mathbf 等。

字号

字号命令实际大小依赖于所使用的文档类及其选项。下表列出了这些命令在标准文档类中的绝对大小,单位为 pt。

image-20250121102202770

使用字号命令的时候,通常也需要用花括号进行分组,如同 \rmfamily 那样。

image-20250121102848593

\(\LaTeX{}\) 还提供了一个基础的命令 \fontsize 用于设定任意大小的字号:

\fontsize{<size>}{<base line-skip>}

\fontsize 用到两个参数,<size> 为字号,<base lineskip> 为基础行距。表 \ref{tbl:ptsizes} 中的命令也都各自设定了与字号对应的基础行距,大小为字号的 1.2 倍。如果不是在导言区,\fontsize 的设定需要 \selectfont 命令才能立即生效,而表 5.2 的字号设定都是立即生效的。

选用字体宏包

下表 列出了较为常用的字体宏包,其中相当多的宏包还配置了数学字体,或者文本、数学字体兼而有之。

image-20250121105449196

字体编码

常见的正文字体编码有 \(\texttt{OT1}\)\(\texttt{T1}\) 等。\LaTeX{} 默认使用兼容 plainTeX 的 \(\texttt{OT1}\) 编码,使用起来有诸多限制:高德纳在设计 Computer Modern 字体时认为一些符号,如大于号、小于号等,原则上都应该在公式里出现,所以在正文字体里这些符号所在的位置被其它符号所占据(\(\texttt{OT1}\) 字体编码、\(\texttt{rmfamily}\)\(\texttt{sffamly}\) 字体族下, \(\texttt<\) 和 $\texttt> $ 排版 \(!\)\(¿\) 两个倒立的标点符号,正常的大于号和小于号可用命令 \textgreater\textless 输入;\(\texttt{ttfamily}\) 字体族下是正常的大于号和小于号)。扩展的 \(\texttt{T1}\) 字体编码则更加靠近 ASCII 文本编码,不会出现上述的大于号、小于号的问题。

切换字体编码要用到 fontenc 宏包:

\usepackage[T1]{fontenc}

如果使用 \(\texttt{xelatex}\) 编译方式,并使用 fontspec 宏包调用 \(\texttt{ttf}\)\(\texttt{otf}\) 格式字体,就不要再使用 fontenc 宏包。

使用 fontspec 宏包更改字体

\(\texttt{xelatex}\)\(\texttt{lualatex}\) 编译命令能够支持直接调用系统和 \(\TeX{}\) 发行版中的 \(\texttt{.ttf}\)\(\texttt{.otf}\) 格式字体(Linux 下的 TeXLive 为了令 XeTeX 使用 OpenType 字体,需要额外的配置)。相比于前文介绍的字体宏包,我们有了更多自由修改字体的余地。

\(\texttt{xelatex}\)\(\texttt{lualatex}\) 命令下支持用户调用字体的宏包是 fontspec。宏包提供了几个设置全局字体的命令,设置 \rmfamily 等对应命令的默认字体:

\setmainfont{<font name>}[<font features>] \\
\setsansfont{<font name>}[<font features>] \\
\setmonofont{<font name>}[<font features>]

其中 <font name> 使用字体的文件名(带扩展名)或者字体的英文名称。<font features> 用来手动配置对应的粗体或斜体,比如为 Windows 下的无衬线字体 Arial 配置粗体和斜体(通常情况下自动检测并设置对应的粗体和斜体,无需手动指定):

\setsansfont{Arial}[BoldFont={Arial Bold}, ItalicFont={Arial Italic}]

<font features> 还能配置字体本身的各种特性,这里不再赘述,感兴趣的读者请参考 fontspec 宏包的帮助文档。

需要注意的是,fontspec 宏包会覆盖数学字体设置。需要调用 上表 中列出的一些数学字体宏包时,应当在调用 fontspec 宏包时指定 \(\texttt{no-math}\) 选项。fontspec 宏包可能被其它宏包或文档类(如 ctex 文档类)自动调用时,则在文档开头的 documentclass 命令里指定 $\texttt{no-math} $选项。

ctex 宏包或文档类中更改中文字体

前文已经介绍过的 ctex 宏包或文档类提供了和fontspec 宏包非常类似的语法设置中文字体(使用 \(\texttt{xelatex}\) 编译时,这几个命令实际上由 xeCJK 宏包提供;使用 \(\texttt{lualatex}\) 编译时,则是由 ctex 宏包或文档类对 luatexja 宏包提供的类似命令进行额外封装)。:

\setCJKmainfont{<font name>}[<font features>] \\
\setCJKsansfont{<font name>}[<font features>] \\
\setCJKmonofont{<font name>}[<font features>] 

由于中文字体少有对应的粗体或斜体,<font features> 里多用其他字体来配置,比如在 Windows 中设定基本字体为宋体,并设定对应的 \(\texttt{BoldFont}\) 为黑体, \(\texttt{ItalicFont}\) 为楷体:

\setCJKmainfont{SimSun}[BoldFont=SimHei, ItalicFont=KaiTi]

使用 unicode-math 宏包配置 Unicode 数学字体

Unicode 数学字体是一类 OpenType 字体,包含了 Unicode 字符集中的数学符号部分,字体中也设定了数学公式排版所需的一些参数。在 \(\texttt{xelatex}\) 或者 \(\texttt{lualatex}\) 编译命令下,借助 unicode-math 宏包可以调用 Unicode 数学字体配置数学公式的字体风格。

在导言区使用\usepackage{unicode-math} 后,使用 \setmathfont 命令即可:

\setmathfont{<font name>}[<font features>] 

绝大多数时候,只需要给定字体名称 <font name> 即可。Unicode 数学字体相比于正文字体的选择余地不多。下表 给出了较为常用的 Unicode 数学字体。

image-20250125120819345

文字装饰和强调

强调文字的方法,或者是添加下划线等装饰物,或者是改变文字的字体。

\(\LaTeX{}\) 定义了 \underline 命令用来为文字添加下划线:

An \underline{underlined} text.

\[An \ \underline{underlined} \ text. \]

\underline 命令生成下划线的样式不够灵活,不同的单词可能生成高低各异的下划线,并且无法换行。ulem 宏包提供了更灵活的解决方案,它提供的 \uline 命令能够轻松生成自动换行的下划线:

image-20250125121752045

前一节介绍了 \emph 命令,它将文字变为斜体以示强调,而如果在已强调的文字中嵌套使用 \emph 命令,命令内则使用直立体文字:

Some \emph{emphasized words,
including \emph{double-emphasized}
words}, are shown here.
image-20250125121906215

段落格式和间距

长度和长度变量

在本节首先统一介绍长度和长度变量。长度的数值 <length> 由数字和单位组成。常用的单位见下表。

image-20250125124002209

在一些情况下还会用到可伸缩的“弹性长度”,如 \(\texttt{12pt plus 2pt minus 3pt}\) 表示基础长度为 \(\texttt{12pt}\),可以伸展到 \(\texttt{14pt}\),也可以收缩到 \(\texttt{9pt}\)
也可只定义 \(\texttt{plus}\) 或者 \(\texttt{minus}\) 的部分,如 \(\texttt{0pt plus 5pt}\)

长度的数值还可以用长度变量本身或其倍数来表达,如 \(\texttt{2.5\\parindent}\) 等。

\(\LaTeX{}\) 预定义了大量的长度变量用于控制版面格式。如页面宽度和高度、首行缩进、段落间距等。如果需要自定义长度变量,需使用如下命令:

\newlength{\<length command>}

长度变量可以用 \cmd{setlength} 赋值,或用 \cmd{addtolength} 增加长度:

\setlength{\<length command>}{<length>} 
\addtolength{\<length command>}{<length>}

行距

前文中我们提到过 \fontsize 命令可以为字号设定对应的行距,但很少那么用。更常用的办法是在导言区使用 \linespread 命令。

\linespread{<factor>}

其中 <factor> 作用于基础行距而不是字号。缺省的基础行距是 1.2 倍字号大小(参考 \fontsize 命令),因此使用 \linespread{1.5} 意味着最终行距为 1.8 倍的字号大小。

如果不是在导言区全局修改,而想要局部地改变某个段落的行距,需要用 \selectfont 命令使 \linespread 命令的改动立即生效:

image-20250125130505191

字号的改变是即时生效的,而行距的改变直到文字分段时才生效。如果需要改变某一部分文字的行距,那么不能简单地将文字包含在花括号内。注意下面两个例子中 \par 命令的位置:

image-20250125130826941

段落格式

以下长度分别为段落的左缩进、右缩进和首行缩进:

\setlength{\leftskip}{<length>}  
\setlength{\rightskip}{<length>}
\setlength{\parindent}{<length>}

它们和设置行距的命令一样,在分段时生效。

控制段落缩进的命令为:

\cmd{indent} 
\cmd{noindent}

\(\LaTeX{}\) 默认在段落开始时缩进,长度为用上述命令设置的 parindent。如果需要在某一段不缩进,可在段落开头使用\noindent 命令。相反地,\indent 命令强制开启一段首行缩进的段落。在段落开头使用多个 \indent 命令可以累加缩进量。

\(\LaTeX{}\) 还默认在 \chapter\section 等章节标题命令之后的第一段不缩进(ctex 宏包和文档类默认按照中文习惯保持标题后第一段的首行缩进)。如果不习惯这种设定,可以调用 indentfirst 宏包,令第一段的首行缩进照常。

段落间的垂直间距为 parskip,如设置段落间距在 \(\texttt{0.8ex}\)\(\texttt{1.5ex}\) 变动:

\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}

水平间距

\(\LaTeX{}\) 默认为将单词之间的“空格”转化为水平间距。如果需要在文中手动插入额外的水平间距,可使用 \hspace 命令:

image-20250125143708280

\hspace 命令生成的水平间距如果位于一行的开头或末尾,则有可能因为断行而被舍弃。可使用 \hspace* 命令代替\hspace 命令得到不会因断行而消失的水平间距。

命令 \stretch{<n>} 生成一个特殊弹性长度,参数 <n> 为权重。它的基础长度为 0pt,但可以无限延伸,如果同一行内出现多个 \stretch{<n>},这一行的所有可用空间将按每个 \stretch 命令给定的权重 <n> 进行分配。

命令 \fill 相当于 \stretch{1}(注意不要用 \(\texttt{1.5\\fill}\) 这样的用法,它生成的长度只有基础长度 0pt 而没有延伸部分)。

image-20250125160138870

在正文中用 \hspace 命令生成水平间距时,往往使用 \(\texttt{em}\) 作为单位,生成的间距随字号大小而变。在数学公式中见过 \quad\qquad 命令,它们也可以用于文本中,分别相当于 \hspace{1em}\hspace{2em}

image-20250125160343041

垂直间距

在页面中,段落、章节标题、行间公式、列表、浮动体等元素之间的间距是 \(\LaTeX{}\) 预设的。比如 \parskip,默认设置为 \(\texttt{0pt plus 1pt}\)

如果我们想要人为地增加段落之间的垂直间距,可以在两个段落之间的位置使用 \vspace 命令:

image-20250125160614418

\vspace 命令生成的垂直间距在一页的顶端或底端可能被“吞掉”,类似 \hspace 在一行的开头和末尾那样。对应地,\vspace* 命令产生不会因断页而消失的垂直间距。\vspace 也可用 \stretch}设置无限延伸的垂直长度。

在段落内的两行之间增加垂直间距,一般通过给断行命令 \\ 加可选参数,如 \\[6pt]\\*[6pt]
\vspace 也可以在段落内使用,区别在于 \vspace 只引入垂直间距而不断行:

image-20250125161039548

另外 \(\LaTeX{}\) 还提供了\bigskip, \medskip, \smallskip 来增加预定义长度的垂直间距。

image-20250125161301100

页面和分栏

\(\LaTeX{}\) 允许用户通过为文档类指定选项来控制纸张的大小,包括 \(\texttt{a4paper}\)\(\texttt{letterpaper}\)等等,并配合字号设置了适合的页边距。

控制页边距的参数由 下图 里给出的各种长度变量控制。可以用 \setlength 命令修改这些长度变量,以达到调节页面尺寸和边距的作用;反之也可以利用这些长度变量来决定排版内容的尺寸,如在 \(\texttt{tabularx}\) 环境或 \includegraphics 命令的参数里,设置图片或表格的宽度为 0.8\textwidth

image-20250125162000736

页边距等比较直观的参数则必须间接设置。根据 上图 将各个方向的页边距计算公式给出(以奇数页为例):

image-20250125162309991

如果需要设置合适的 <left-margin><right-margin>,就要通过上述方程组把\oddsidemargin\textwidth 等参数解出来!

幸好 geometry 宏包提供了设置页边距等参数的简便方法,能够帮我们完成背后繁杂的计算。

利用 geometry 宏包设置页面参数

geometry 宏包的调用方式类似于 graphicx,在 \(\texttt{latex}\) + \(\texttt{dvipdfmx}\) 命令下需要指定选项 \(\texttt{dvipdfm}\)\(\texttt{dvipdfmx}\)\(\texttt{pdflatex}\)\(\texttt{xelatex}\) 编译命令下不需要。

既可以调用 geometry 宏包,然后用其提供的 \geometry命令设置页面参数:

\usepackage{geometry}
\geometry{<eometry-settings>}

也可以直接在宏包选项中设置:

\usepackage[<geometry-settings>]{geometry}

其中 <geometry-settings> 多以 <key>=<value> 的形式组织。

比如,符合 Microsoft Word 习惯的页面设定是 A4 纸张,上下边距 1 英寸,左右边距 1.25 英寸,于是我们可以通过如下两种等效的方式之一设定页边距:

\geometry{a4paper,left=1.25in,right=1.25in,top=1in,bottom=1in}
% or like this:
\geometry{a4paper,hmargin=1.25in,vmargin=1in}

又比如,需要设定周围的边距一致为 1.25 英寸,可以用更简单的语法:

\geometry{margin=1.25in}

对于书籍等双面文档,习惯上奇数页右边、偶数页左边留出较大的页边距,而靠近书脊一侧的奇数页左边、偶数页右边页边距较小。可以这样设定:

\geometry{inner=1in,outer=1.25in}

需要指出的是,通过 geometry 宏包设置的纸张大小是输出 PDF 文件的真实大小,而在文档类选项中设置的参数实际上只影响输出区域。geometry 宏包还能够修改页眉页脚高度、边注宽度等参数,并且能比较好地处理各参数之间的依赖关系。更详细的用法不再赘述,感兴趣的用户可查阅其帮助文档。

页面内容的垂直对齐

\(\LaTeX{}\) 默认将页面内容在垂直方向分散对齐。对于有大量图表的文档,许多时候想要做到排版匀称的页面很困难,垂直分散对齐会造成某些页面的垂直间距过宽,还可能报大量的 \(\texttt{Underfull \\vbox}\) 警告。\(\LaTeX{}\) 还提供了另一种策略:将页面内容向顶部对齐,给底部留出高度不一的空白。

以下命令分别令页面在垂直方向向顶部对齐/分散对齐:

\raggedbottom
\flushbottom

分栏

\(\LaTeX{}\) 支持简单的单栏或双栏排版。标准文档类的全局选项 \(\texttt{onecolumn}\)\(\texttt{twocolumn}\) 可控制全文分单栏或双栏排版。\(\LaTeX{}\) 也提供了切换单/双栏排版的命令:

\onecolumn
\twocolumn[<one-column top material>]

\twocolumn 支持带一个可选参数,用于排版双栏之上的一部分单栏内容。

切换单/双栏排版时总是会另起一页(\clearpage)。在双栏模式下使用 \newpage 会换栏而不是换页;\clearpage 则能够换页。

双栏排版时每一栏的宽度为 \columnwidth,它由\textwidth 减去 \columnsep 的差除以 2 得到。两栏之间还有一道竖线,宽度为 \columnseprule,默认为零,也就是看不到竖线。

一个比较好用的分栏解决方案是 multicol,它提供了简单的 \(\texttt{multicols}\) 环境自动产生分栏,如以下环境将内容分为 3 栏:

\begin{multicols}{3}
...
\end{multicols}

multicol 宏包能够在一页之中切换单栏/多栏,也能处理跨页的分栏,且各栏的高度分布平衡。但代价是\(\texttt{multicols}\) 环境中无法正常使用 \(\texttt{table}\)\(\texttt{figure}\) 等浮动体环境,它会直接让浮动体丢失。multicols 环境中只能用跨栏的 \(\texttt{table*}\)\(\texttt{figure*}\) 环境,或者用 float 宏包提供的 \(\texttt{H}\) 参数固定浮动体的位置。

页眉页脚

基本的页眉页脚样式

\(\LaTeX{}\) 中提供了命令 \pagestyle 来修改页眉页脚的样式:

\pagestyle{<page-style>}

命令 \thispagestyle 只影响当页的页眉页脚样式:

\thispagestyle{<page-style>}

<page-style> 参数为样式的名称,在 \(\LaTeX{}\) 里预定义了四类样式,见 下表。

image-20250125170414339

其中 \(\texttt{headings}\) 的情况较为复杂:

  • \(\texttt{article}\) 文档类,\(\texttt{twoside}\) 选项: 偶数页为页码和节标题,奇数页为小节标题和页码;
  • \(\texttt{article}\)文档类,\(\texttt{oneside}\) 选项: 页眉为节标题和页码;
  • \(\texttt{report}\)\(\texttt{book}\) 文档类,\(\texttt{twoside}\) 选项: 偶数页为页码和章标题,奇数页为节标题和页码;
  • \(\texttt{report}\)\(\texttt{book}\) 文档类,\(\texttt{oneside}\) 选项: 页眉为章标题和页码。

\pagenumbering 命令令我们能够改变页眉页脚中的页码样式:

\pagenumbering{<style>}

<style> 为页码样式,默认为 \(\texttt{arabic}\)(阿拉伯数字),还可修改为 \(\texttt{roman}\)(小写罗马数字)、\(\texttt{Roman}\)(大写罗马数字)等。注意使用 \pagenumbering 命令后会将页码重置为 1。\(\texttt{book}\) 文档类的 \frontmatter\mainmatter 内部就使用了 \pagenumbering 命令切换页码样式。

手动更改页眉页脚的内容

对于 \(\texttt{headings}\) 或者 \(\texttt{myheadings}\) 样式,\(\LaTeX{}\) 允许用户使用命令手动修改页眉上面的内容,特别是因为使用了 \chapter* 等命令而无法自动生成页眉页脚的情况:

\markright{<right-mark>}
\markboth{<left-mark>}{<right-mark>}

在双面排版、\(\texttt{headings}\)\(\texttt{myheadings}\) 页眉页脚样式下,<left-mark><right-mark> 的内容分别预期出现在左页(偶数页)和右页(奇数页)。
事实上 \chapter\section 等章节命令内部也使用 \markboth 或者 \markright 生成页眉。

\(\LaTeX{}\) 默认将页眉的内容都转为大写字母。如需要保持字母的大小写,可以尝试以下代码(但是这不能改变页眉的斜体样式\slshape,斜体定义在 \(\texttt{headings}\) 样式里的。如不喜欢斜体,可在 markboth 等命令参数里先使用 \normalfont,再使用想要的字体样式命令,或直接尝试使用 fancyhdr 宏包):

\renewcommand\chaptermark[1]{%\markboth{Chapter \thechapter\quad #1}{}}
\renewcommand\sectionmark[1]{%\markright{\thesection\quad #1}}

其中 \thechapter\thesection 等命令为章节计数器的数值。注意以上代码适用于 \(\texttt{report}\)\(\texttt{book}\) 文档类;对于 \(\texttt{article}\) 文档类,与两个页眉相关的命令分别为 \sectionmark\subsectionmark

fancyhdr 宏包

fancyhdr 宏包改善了页眉页脚样式的定义方式,允许将内容自由安置在页眉和页脚的左、中、右三个位置,还为页眉和页脚各加了一条横线。

fancyhdr 自定义了样式名称 \(\texttt{fancy}\)。使用 fancyhdr 宏包定义页眉页脚之前,通常先用 \pagestyle{fancy} 调用这个样式。在 fancyhdr定义页眉页脚的命令为:

\fancyhf[<position>]{...}
\fancyhead[<position>]{...}
\fancyfoot[<position>]{...}

其中 <position> 为 L(左)/ C(中)/ R(右)以及与 O(奇数页)/ E(偶数页)字母的组合。\fancyhf 用于同时定义页眉和页脚,习惯上使用 \fancyhf{} 来清空页眉页脚的设置。

下面的源代码 给出了 fancyhdr 基础用法的一个示例,效果为将章节标题放在和 headings 一致的位置,但使用加粗格式;页码都放在页脚正中;修改横线宽度,“去掉”页脚的横线。

image-20250125174255995

fancyhdr 还支持用 \fancypagestyle 为自定义的页眉页脚样式命名,或者重新定义已有的样式如 \(\texttt{plain}\) 等:

% 自定义 myfancy 样式
\fancypagestyle{myfancy}{%\fancyhf{}\fancyhead{...}\fancyfoot{...}
}
% 使用样式
\pagestyle{myfancy}

更多用法请参考 fancyhdr 宏包的帮助文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/875642.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十章 输入输出系统

第十章 输入输出系统 本文是对《操作系统真象还原》第十章学习的笔记,欢迎大家一起交流,目前所有代码已托管至 fdx-xdf/MyTinyOS 。 上一章遗留的问题 在上一节中,我们实现了多线程轮转调度,但是当我们运行一段时间后,就会发生GP异常 ​​ 待解决的几个问题:输出中,有些…

【每日一题】20250125

不等和等下去,同样苦涩。【每日一题】已知变量 \(x\) 和变量 \(y\) 的一组成对样本数据为 \((x_i,y_i)(i=1,2,3,\cdotp\cdotp\cdotp,8)\),其中 \(\overline{x}=\frac98\),其回归直线方程为 \(\hat{y}=2x-\frac14\),当增加两个样本数据 \((-1,5)\) 和 \((2,9)\) 后,重新得到…

云手机还是会被检测!还能用来多开吗?

云手机还是会被检测!还能用来多开吗? 云手机确实可以用于多开,但是否会被检测到以及是否安全,取决于多种因素,包括云手机服务提供商的技术、用户的操作方式以及目标应用(如微信、游戏等)的检测机制。以下是关于云手机多开的安全性和可行性的详细分析:云手机多开的原理 …

P1038神经网络

神经网络 题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向,兰兰同学在自学了一本神经网络的入门书籍后,提出了一个简化模型,…

Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能

大家好,我是编程乐趣。 我们都知道,要实现对结构化的数据(文本)搜索是比较容易的,但是对于非结构化的数据,比如图片,视频就没那么简单了。 但是现在有了AI模型,实现图片分类、搜索等功能,就变得容易很多。 在前面的文章里,我们有提到:Phi-vision 是一个拥有 42 亿参…

E95 01分数规划+树上背包 P1642 规划

视频链接: P1642 规划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 01分数规划+树上背包 复杂度:n*m*log(1e9) #include <bits/stdc++.h> using namespace std;int read(){int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c==-)f=-1;c=getchar();}while(is…

年级第一暗杀计划

[SDOI2008] 仪仗队 题目描述 作为体育委员,C 君负责这次运动会仪仗队的训练。仪仗队是由学生组成的 \(N \times N\) 的方阵,为了保证队伍在行进中整齐划一,C 君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。现在,C 君希望你告诉他队伍整齐…

Burp Suite Professional 2025.1 发布下载,新增功能简介

Burp Suite Professional 2025.1 发布下载,新增功能简介Burp Suite Professional 2025.1 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:https://sysin.org/blog/burp-suite-pro/ …

ubuntu配置核心转储文件路径并调试(nju ics PA)

调整 core pattern编辑 /etc/sysctl.conf sudo nano /etc/sysctl.conf修改kernel.core_pattern kernel.core_pattern=./core.%d.%f.%p.%t# %d 可执行文件目录名 # %f 可执行文件名 # %p 进程 ID # %t 时间的十进制值 (2) 可以自行修改格式,参考变量名和含义 使其生效 sudo sy…

solon-flow 你好世界!

solon-flow 是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有 “开放式” 驱动定制支持,像 jdbc 有 mysql 或 pgsql 等驱动,可为不同的应用场景定制不同的驱动处理。solon-flow 是一个基础级的流处理引擎(可用于业务规则、决策处…

1/25 遇到的问题

1.数据库连接报错 错误代码: nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBExceptionorg.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’ defined inclass path resource [org/s…