Sagittarius Rover
Sagittarius Rover
这家伙很懒,什么也没写!

注册于 4年前

回答
573
文章
0
关注者
22

只是一些探索,可能不能算得上是答案...
其实这个问题和 tabularray 无关... 先简化一下问题MWE

\documentclass[fontset=fandol]{ctexbook}
% \usepackage{capt-of}
\usepackage{caption}
\usepackage{zhlipsum}
\begin{document}
\zhlipsum[1]

\captionof{table}{我的表哥}

\zhlipsum[1-2]

\end{document}

image.png

Finding A

如果只需要\captionof而不需要其他命令,可以使用capt-of包(只提供了\captionof这个命令)

\documentclass[fontset=fandol]{ctexbook}
\usepackage{capt-of}
\usepackage{zhlipsum}
\begin{document}
\zhlipsum[1]

\captionof{table}{我的表哥}

\zhlipsum[1-2]

\end{document}   

image.png

Finding B

如果确实需要caption的其他功能,可以使用 egreg 提供的方案

\documentclass[fontset=fandol]{ctexbook}
\usepackage{tabularray}
% \usepackage{capt-of}
\usepackage{caption}
\usepackage{zhlipsum}
\newenvironment{nobox}{\par}{\par}
\NewTblrTheme{notag}{
  \DefTblrTemplate{caption-tag}{default}{}
  \DefTblrTemplate{caption-sep}{default}{}
  \addtocounter{table}{-1}
}
\begin{document}
\zhlipsum[1]

\begin{nobox}
\captionof{table}{我的表哥}
\hfill 单位\underline{\hspace{4\ccwd}}m\phantom{单位}\\[-25pt]
\begin{longtblr}[
    theme = notag,
  ]{colspec = {*{6}{X[c]}},
    rowspec = {|Q[m]|*{3}{Q[m]|}},
    hline{1,Z} = {1pt},
    row{1-Z} = {font = \footnotesize},
  }
  记录 & & & & & & \\
  数量 & & & & & &
\end{longtblr}
\end{nobox}

\zhlipsum[1-2]

\end{document}

image.png

使用神秘代数结论(读者自证不难:P),可以得到利用重心坐标系的极简纯tikz版本:

\documentclass[tikz,border=3.14pt]{standalone}
\usepackage{fourier}
\begin{document}
\begin{tikzpicture}
  \coordinate (A) at (0,0);
  \coordinate (B) at (5,0);
  \coordinate (C) at (1,3);
  \draw (A) -- (B) -- (C) -- cycle;
  \draw[semithick,magenta]
    plot[domain=0:360,samples=144,smooth]
    (
        barycentric cs:A={1/3+cos(\x)/3},B={1/3+cos(\x-120)/3},C={1/3+cos(\x+120)/3}
    );
  \node[below left]  at (A) {$A$};
  \node[below right] at (B) {$B$};
  \node[above]       at (C) {$C$};
\end{tikzpicture}
\end{document}

image.png

事实上,这种经典问题早已被 tkz-elements 一网打尽了,斯坦纳内切椭圆外接椭圆两手都要抓两手都要硬😡

image.png

使用仿射变换略施小计可以避免复杂的求根操作:

\documentclass{standalone}
\usepackage{luadraw}
\usepackage[svgnames]{xcolor}
\usepackage{fourier-otf}
\begin{document}
    \begin{luadraw}{name=steiner_inellipse}
    local ld = luadraw
    local cpx = ld.cpx
    local g = ld.graph:new{window={-1,6,-1,4},size={10,10}
    }
    local i, Z = cpx.I, cpx.Z
    local sqrt, pi = math.sqrt, math.pi
    local A0,B0,C0 = Z(-1,0), Z(1,0), Z(0,sqrt(3))
    local A,B,C = Z(0,0), Z(5,0), Z(1,3)
    local MA1 = {A0, B0-A0, C0-A0}
    local MA2 = {A,  B-A,  C-A}
    local M = ld.composematrix(MA2, ld.invmatrix(MA1))
    local In, r = ld.incircle(A0,B0,C0)
 
    g:Savematrix();g:Setmatrix(M)
    g:Dpolyline({A0,B0,C0}, true)
    g:Dpolyline(ld.circle({In,r}), true, "semithick,magenta")
    g:Restorematrix()

    g:Dlabel(
        "$A$",A,{pos="SW"},
        "$B$",B,{pos="SE"},
        "$C$",C,{pos="N"}
    )
    g:Show()
\end{luadraw}
\end{document}

这里用到的原理是,deepseek告诉我「三角形之于其内切斯坦纳椭圆的关系」,正如「一个等边三角形之于其内切圆的关系」。因此只要知道「A0B0C0」到「ABC」的仿射矩阵(代码中以基矩阵作为媒介),便可以对内切圆进行仿射变换M,立刻得到目标的内切椭圆...

image.png

Some Notes:

KaoBook下载链接:https://github.com/fmarotta/kaobook

这里有一个 tricky 的方法恰好可以处理好这个左侧对齐的 \{, multirows有一个名为bigdelim的子宏包,可以完美实现OP的需求(唯一的代价是如果行高过大,需要微调其高度,见下例):

\documentclass{article}
\usepackage{bigdelim}
\usepackage{amsmath}

\begin{document}
\[
\arraycolsep=2pt
\begin{array}{r@{}rrrrr}
\ldelim\{{2}{*} &  x & + & 3y & = &  11 \\
                & 2x & - &  y & = &  -9 \\[2pt]
\ldelim\{{2.7}{*}[result ] &  x &   &   & = & x_1 \\
                &    &   &\dfrac23 y   & = &  y_1
\end{array}
\]
\end{document}

image.png

IEEEeqnarray有个\IEEEeqnarraymulticol似乎很适合这种情况,直接使用类似「align+\intertext」似乎不好处理「第三个公式只要左对齐而不需要"="处的对齐位点的情况」....

\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{kpfonts}
\usepackage{ieeetrantools}
\usepackage[margin=2cm,showframe]{geometry}
\begin{document}
\begin{IEEEeqnarray*}{rrCl}
    &\sum_{H, K \in \mathcal{A}_{1}} f(H, K)&=&s d\left(\frac{G}{N}\right)\left|L\left(\frac{G}{N}\right)\right|^{2}\\
    \noalign{Some text Some text}
    &\sum_{H, K \in \mathcal{A}_{2}} f(H, K) &=&\sum_{H, K \in \mathcal{A}_{2} \cup\{N\}} f(H, K)-2 \sum_{H \in \mathcal{A}_{2} \cup\{N\}} f(H, N)+1\\
    &&=&s d(N)|L(N)|^{2}-2|L(N)|+1 \\
    \noalign{Some text text}
    \IEEEeqnarraymulticol{4}{l}{2 \sum_{H \in \mathcal{A}_{1}} \sum_{K \in \mathcal{A}_{2}} f(H, K)=2\left|\mathcal{A}_{1}\right|\left|\mathcal{A}_{2}\right|=2\left|L\left(\frac{G}{N}\right)\right|(|L(N)|-1)}
\end{IEEEeqnarray*}
\end{document}

image.png

在左侧文件资源管理器右键PDF,查看打开方式:

image.png

检查你是否有 LaTeX Workshop 自带的 PDF viewer.

image.png

另外,编译完,点击这里按道理也能在右侧栏弹出PDF.

image.png

Update

可以考虑使用 lxgw-fonts 提供的「霞鹜字库」字体进行Fallback或者直接使用fontset=lxgw,需要TL>=2026(没有任何理由不更新对吗...)

\documentclass{article}
% \usepackage[fontset=windows]{ctex}
% \usepackage[fontset=fandol]{ctex}
% \usepackage[fontset=ubuntu]{ctex}
\usepackage[fontset=lxgw]{ctex}
\xeCJKsetup{AutoFallBack=true}%
\xeCJKDeclareCharClass{CJK}{"1D372->"1D376}
\setCJKfallbackfamilyfont{\CJKrmdefault}{LXGWNeoZhiSong}
\setCJKfallbackfamilyfont{\CJKsfdefault}{LXGWNeoXiHei}

\begin{document}

正字统计法\symbol{"1D372}\symbol{"1D373}\symbol{"1D374}\symbol{"1D375}\symbol{"1D376}正字统计法

正字统计法𝍲𝍳𝍴𝍵𝍶正字统计法

{

\sffamily

正字统计法\symbol{"1D372}\symbol{"1D373}\symbol{"1D374}\symbol{"1D375}\symbol{"1D376}正字统计法

正字统计法𝍲𝍳𝍴𝍵𝍶正字统计法

}

\end{document}

image.png

霞鹜新致宋、霞鹜新晰黑

image.png

中易宋体、中易黑体

fontset-windows-正.png

思源宋体、思源黑体

fontset-ubuntu-正.png

Fandol宋、Fandol黑

fontset-fandol-正.png

Convat

你说基线不对?自己看着办吧...

上传一个「报PDF不合法、损坏或正在生成」的PDF文件看看...

也可以考虑使用luadraw,提供了g:Shiftg:Rotate等方便的方法:

\documentclass{standalone}
\usepackage{luadraw}
\usepackage[svgnames]{xcolor}
\usepackage{fourier-otf}
\begin{document}
\begin{luadraw}{name=tilted_hyperbola}
local ld = luadraw
local Z, i = ld.cpx.Z, ld.cpx.I
local sinh, cosh = math.sinh, math.cosh

local g = ld.graph:new{window = {-6, 6, -4, 7}}

local left_branch = function(t) return Z(-2 * cosh(t), sinh(t)) end
local right_branch = function(t) return Z(2 * cosh(t), sinh(t)) end

local plot_hyperbola = function(opt)
    g:Dline({0, 1}, "-Latex,ultra thick")
    g:Dline({0, i}, "-Latex,ultra thick")
    g:Dparametric(right_branch, {t = {-2.5, 2.5}, nbdots = 100,draw_options = opt})
    g:Dparametric(left_branch, {t = {-2.5, 2.5}, nbdots = 100,draw_options = opt})
    g:Dline({0, Z(1, 1 / 2)}, "dashed,"..opt)
    g:Dline({0, Z(1, -1 / 2)}, "dashed,"..opt)
end

plot_hyperbola("teal")

g:Savematrix()
g:Shift(Z(-2, 2))
g:Rotate(45)
plot_hyperbola("magenta")
g:Restorematrix()

g:Show()
\end{luadraw}
\end{document}

image.png

基于tkz-elements的一个回答,优点是便于控制双曲线的各个指标,直接获得渐近线:

% lualatex needed
\documentclass[border=1cm]{standalone}
% \usepackage[times]{fontsetup}
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements}
\begin{document}
\directlua{
    z.p0 = point(-2, 2)
    local a, b = 2, 1
    L.axis = line(z.p0, z.p0 + point(2, 2))
    local c = math.sqrt(a * a + b * b)
    z.F1 = L.axis:report(c)
    z.F2 = L.axis:report(-c)
    CO.H = conic(HY_bifocal(z.F1, z.F2, a))
    z.V1 = CO.H.vertex
    z.V2 = z.V1:symmetry(z.p0)
    PA.H1 = CO.H:points(-10, 10, 100)
    PA.H2 = CO.H:points(-10, 10, 100, "swap")
    L.A1, L.A2 = CO.H:asymptotes()
    z.asym1u, z.asym1v = L.A1:get()
    z.asym2u, z.asym2v = L.A2:get()
    z.xpos = point(2, 6)
    z.xneg = point(-6, -2)
    z.ypos = point(-6, 6)
    z.yneg = point(3, -3)
}
    \begin{tikzpicture}[myarrow/.style={-latex,thick}]
    \tkzGetNodes
    \path[use as bounding box] (-6,-3) rectangle (3,6);
    \draw[myarrow] (-7,0) -- (4,0);
    \draw[myarrow] (0,-4) -- (0,6);
    \draw[myarrow] (xneg) -- (xpos);
    \draw[myarrow] (yneg) -- (ypos);
    \tkzDrawCoordinates[smooth,magenta](PA.H1)
    \tkzDrawCoordinates[smooth,magenta](PA.H2)
    \tkzDrawSegments[dashed](V1,V2)
    \tkzDrawLines[dashed,cyan,add=15 and 15](asym1u,asym1v asym2u,asym2v)
    \end{tikzpicture}
\end{document}

image.png

好消息

在LiamHuang的黑魔法下,最新版(>=v3.10.5-rc1)的xeCJKfntef已经修复了这个硬骨头:

\documentclass{article}
\parindent=0pt
\usepackage{xeCJK}
\usepackage{xeCJKfntef}
\begin{document}
    天地玄黄宇宙洪荒日月盈昃辰宿列张史记赵世家寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈
    \medskip

    天地玄黄宇宙洪荒日月盈昃辰宿列张\CJKunderwave-{史记}\CJKunderwave-{赵世家}寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈
    \medskip
    
    天地玄黄宇宙洪荒日月盈昃辰宿列张\CJKunderline-{史记}\CJKunderline-{赵世家}寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈
    \medskip
    
    天地玄黄宇宙洪荒日月盈昃辰宿列张\CJKunderdot{史记}\CJKunderline-{\CJKunderdot{赵世家}}寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈
    \medskip
    
    张\CJKunderwave-{史记}\CJKunderwave-{赵世家}寒
    \medskip
    
    张\CJKunderline-{史记}\CJKunderline-{赵世家}寒
    \medskip
    
    张\CJKunderdot{史记}\CJKunderline-{\CJKunderdot{赵世家}}寒
\end{document}

image.png

希望没有什么副作用...

\documentclass{article}
\usepackage[no-math]{fontspec}
\usepackage{unicode-math}
\setmathfont{latinmodern-math.otf}
\setmathfont[
    range={
        up/{num,latin,Latin,greek,Greek},
        it/{latin,Latin,greek,Greek},
        bfup/{num,latin,Latin,greek,Greek},
        bfit/{latin,Latin,greek,Greek},
        "0021,"002C,"002E,"003B,"003F
        }
]{texgyretermes-math.otf}
\DeclareSymbolFont{yhlargesymbols}{OMX}{yhex}{m}{n}
\Udelcode 40 = \symyhlargesymbols 0
\Udelcode 41 = \symyhlargesymbols 1
\begin{document}

123abcABC,.;?! +-*/

$123abcABC,.;?!\alpha\beta\Gamma\Delta$ 

\[
\iint_S \vec{F}\cdot d\vec{S},
\oint_C \vec{B}\cdot d\vec{l},
\sum_{i=1}^{N}a_i,
\prod_{k=1}^{n}(x-x_k)
\]

\[
\begin{bmatrix}
    \dfrac{\partial^2 f}{\partial x^2} &
    \dfrac{\partial^2 f}
    {\partial x \partial y} \\
    \dfrac{\partial^2 f}
    {\partial x \partial y} &
    \dfrac{\partial^2 f}{\partial y^2}
\end{bmatrix} 
=
\begin{pmatrix}
            a_{11} & a_{12} & \cdots & a_{1n} \\
            a_{21} & a_{22} & \cdots & a_{2n} \\
            \vdots & \vdots & \ddots & \vdots \\
            a_{n1} & a_{n2} & \cdots & a_{nn}
\end{pmatrix}
\]    

\end{document}

image.png

发布
问题