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

注册于 3年前

回答
478
文章
0
关注者
16

并不太简单,需要注意不少细节。而且大量\multicolumn散落分布在表格正文中其实是会影响表格代码的可读性的。

虽然tabularray提供了方便的接口,但是基础的也得会!

两手都要抓,两手都要硬!

没记错的话,高中数学也 切忌 过于追求高等数学的高观点“秒杀”法,比较繁琐的计算、基础的方法更是重中之重。

从一名学习者的角度,个人还是建议都掌握😀用的时候选择「最佳实践」即可。

只要加上\cline{2-6}就报错,删掉或改成\cline{2-3}就通过

\cline{2-6}报错的主要原因是合并后仅剩4列了...

\documentclass[11pt,space]{ctexart}
\usepackage{showframe}
\usepackage{array}
\usepackage{multirow}
\begin{document}
\noindent%
\begin{tabular}{|*{2}{c|}*{2}{>{\centering\arraybackslash}m{4cm}|}}
    \hline
    \multicolumn{4}{|c|}{$y=a^x(a>0,a\neq 1)$} \\ 
    \hline
    \multicolumn{2}{|c|}{\multirow{6.25}{*}{图象}} & $a>1$  & $0<a<1$  \\
    \cline{3-4}
    %问题1:如何调节行高,留出画图的空间?
    \multicolumn{2}{|c|}{} %<- 刻意用于占位以避免垂直竖线
     &\vbox{\vspace{3cm}} &  \\
    \hline  
    \multirow{7}{*}{性质} & 定义域 &  \multicolumn{2}{c|}{}\\
    \cline{2-4}%<-add % 问题2:如何给后6行画横线?
    & 值域   & \multicolumn{2}{c|}{}  \\ 
    \cline{2-4}%<-add
    & 定点   & \multicolumn{2}{c|}{} \\
    \cline{2-4}%<-add
    & 单调性 & \multicolumn{2}{c|}{} \\ 
    \cline{2-4}%<-add
    & 奇偶性 & \multicolumn{2}{c|}{} \\
    \cline{2-4}%<-add
    & 对称性 & $y=a^x$~与~$y=(\frac{1}{a})^x$的图象关于\qquad 对称 & \\ 
    \hline
\end{tabular}

\end{document}

image.png

  • 提问时描述预期效果最好用图,只用语言描述可能导致误解...(虽然这里没有什么歧义...)
  • 要善用文档里提到的便捷语法、避免大量冗余代码
  • 合并行和合并列方式是类似的...
  • 「如何在第2行的a>10<a<1下面画横线」...其实不要理解为画线,理解为被合并前的单元格会更合适...
\documentclass[11pt,space]{ctexart} 
\usepackage{tabularray}
\begin{document}
\SetTblrInner{hlines, vlines, hspan=minimal}
\begin{tblr}{
    colspec = {Q[c,m,wd=10mm]Q[c,m,wd=20mm]Q[c,m,wd=30mm]Q[c,m,wd=30mm]}, 
    row{1} = {ht=10mm},
    row{3} = {ht=40mm},
    cell{1}{1}={c=4}{c},
    % cell{2}{1}={c=2}{c},%<--
    cell{2}{1}={c=2,r=2}{c},
    cell{4-8}{3}={c=2}{l},
    cell{4}{1}={r=6}{c},%<-合并第1列后6行
  }
    $y=a^x(a>0,a\neq 1)$ &  &  &        \\  
    图象 &           & $a>1$  & $0<a<1$ \\  
    &  & &  \\%<-新增一个空行用于合并(a.k.a. 在第2行的a>1和0<a<1下面画横线)
    性质 & 定义域 & & \\ 
    & 值域   & &  \\ 
    & 定点   & &  \\ 
    & 单调性 & &  \\ 
    & 奇偶性 & &  \\
    & 对称性 & $y=a^x$~与~$y=(\frac{1}{a})^x$的图象关于$y=x$对称 & \\
\end{tblr}

\end{document}

image.png

如果有较多类似的教学表格排版需求,可以在本站搜索有关的回答参考学习:

时隔一年,一个简化版coffin递归实现可见:

\documentclass[border=5pt]{standalone}
\usepackage{fourier}
\usepackage{cmupint}
\usepackage{fixdif}
\DeclareRobustCommand{\myint}{$\displaystyle\int\nolimits$}

\begin{document}

\ExplSyntaxOn

% 基础内容盒子
\coffin_new:N \l_base_int_coffin
\hcoffin_set:Nn \l_base_int_coffin { \myint }
\coffin_new:N \l_base_dx_coffin
\hcoffin_set:Nn \l_base_dx_coffin { $x \d x$ }

% 递归用的临时变量
\coffin_new:N \l_rec_root_coffin
\coffin_new:N \l_rec_child_coffin
\coffin_new:N \l_rec_dx_coffin

% 全局变量
\coffin_new:N \g_export_tmp_coffin
\coffin_new:N \l_final_result_coffin

\cs_new_protected:Npn \typeset_integral_recursive:Nnn #1 #2 #3
  {
    \group_begin:
      % 当前层的 Root
      \coffin_set_eq:NN \l_rec_root_coffin \l_base_int_coffin
      \coffin_scale:Nnn \l_rec_root_coffin { #3 } { #3 }
      
      % 当前层的 dx 
      \coffin_set_eq:NN \l_rec_dx_coffin \l_base_dx_coffin
      \coffin_scale:Nnn \l_rec_dx_coffin { #3 } { #3 }

      \int_compare:nNnTF { #2 } = { 0 }
        {
          \coffin_join:NnnNnnnn 
              \l_rec_root_coffin { r } { vc } 
              \l_rec_dx_coffin { l } { vc } { 0pt } { 0pt }
        }
        {
          % 递归
          % 计算子层缩放比例
          \fp_set:Nn \l_tmpa_fp { #3 * 0.5 }
          % 递归生成子节点
          \typeset_integral_recursive:Nnn \l_rec_child_coffin
            { \int_eval:n { #2 - 1 } } 
            { \l_tmpa_fp }

          % 拼接子节点到 Root
          \coffin_join:NnnNnnnn 
            \l_rec_root_coffin { r } { t } 
            \l_rec_child_coffin { l } { vc } { 0pt } { 0pt }
          \coffin_join:NnnNnnnn 
            \l_rec_root_coffin { r } { b } 
            \l_rec_child_coffin { r } { vc } { 0pt } { 0pt }
          \coffin_join:NnnNnnnn 
            \l_rec_root_coffin { r } { vc } 
            \l_rec_dx_coffin { l } { vc } { 0pt } { 0pt }
        }
      \coffin_gset_eq:NN \g_export_tmp_coffin \l_rec_root_coffin
      
    \group_end:
    \coffin_set_eq:NN #1 \g_export_tmp_coffin
  }

\typeset_integral_recursive:Nnn \l_final_result_coffin { 5 } { 2.0 }

\coffin_typeset:Nnnnn \l_final_result_coffin { l } { vc } { 0pt } { 0pt }

\ExplSyntaxOff

\end{document}

image.png

其实可以不用coffin的,但是注意到整体积分上下限的位置并不好控制,进一步的不成功实践如下:

\documentclass[border=5pt,multi=tmpenv]{standalone}
\usepackage{amsmath}
\usepackage{fouriernc}
\usepackage{cmupint}
\usepackage{fixdif}
\parindent=0pt
% \DeclareMathOperator{\myint}{\int\nolimits}
\DeclareRobustCommand{\myint}{\int\nolimits}
\newcommand{\basicint}{\myint_0^1xdx}
\newcommand{\basicintt}{\myint_{\basicint}^{\basicint}xdx}
% https://tex.stackexchange.com/a/5192/322482
\makeatletter
\newcommand{\raisemath}[1]{\mathpalette{\raisem@th{#1}}}
\newcommand{\raisem@th}[3]{\raisebox{#1}{$#2#3$}}
\makeatother
\newcommand{\originintunit}{%
    \displaystyle\myint_{
    \textstyle\myint^{0}_{\basicintt}
    }^{
        \textstyle\myint_{1}^{\basicintt}
    }
}%
\newcommand{\intunit}[2]{%
    \myint_{
        \myint^{0}_{\myint_{#1}^{\basicint}xdx}
    }^{
        \myint_{1}^{\myint_{\basicint}^{#2}xdx}
    }
}
\ExplSyntaxOn
% \cs_generate_variant:Nn \tl_use:N {V}
\tl_new:N \l_explorer_base_tl
\tl_new:N \l_explorer_tmp_tl
\tl_new:N \l_explorer_script_tl
\tl_new:N \g_export_tmp_tl 

\cs_new_protected:Npn \typeset_integral_recursive:Nn #1#2
{
    % #1:tl to store
    % #2:depth
    \group_begin:
      \tl_set_eq:NN \l_explorer_tmp_tl #1
        \int_compare:nNnTF { #2 } = { 0 }
            {
               \tl_put_right:Ne \l_explorer_tmp_tl { \intunit{\basicint}{\basicint} }
            }
            {
                \tl_clear:N \l_explorer_script_tl
                \typeset_integral_recursive:Nn \l_explorer_script_tl { \int_eval:n { #2 - 1 } } 
                \tl_put_right:Ne \l_explorer_tmp_tl { \intunit{\l_explorer_script_tl}{\l_explorer_script_tl} } 
            }
        \tl_put_right:Nn \l_explorer_tmp_tl { xdx } 
        \tl_gset_eq:NN \g_export_tmp_tl \l_explorer_tmp_tl
    \group_end:
    \tl_set_eq:NN #1 \g_export_tmp_tl
}

% \typeset_integral_recursive:Nn \l_explorer_base_tl { 4 }

\NewDocumentCommand{\exploreint}{ m }{
    \begingroup
    \typeset_integral_recursive:Nn \l_explorer_base_tl { #1 }
    \begin{tmpenv}
    $\l_explorer_base_tl$
    \end{tmpenv}
    \endgroup
}
\ExplSyntaxOff

\newenvironment{tmpenv}{}{}
\begin{document}

\exploreint{0}

\exploreint{1}

\exploreint{2}

\exploreint{3}

\end{document}

image.png

image.png

Step0: 在「阿里巴巴官网查看字体预览」

image.png

在叶典查看字体信息为「扩展B区」

image.png

Step 1. windows打开字体文件查看信息

我本地「个性化」-「字体」的信息为:

  • AlibabaPuHuiTi-3-55-Regular.otf

image.png

  • AlibabaPuHuiTi-3-55-RegularL3.otf

image.png

Step 2.打开windows-设置-个性化-字体 查看信息

字体一

image.png

字体二

image.png

Step3. 使用fc-list查看调用的字体族名信息:

fc-list :lang=zh | grep "Alibaba"

其中仅有...

$ fc-list :lang=zh | grep "AlibabaPuHuiTi-3-55"
C:/WINDOWS/fonts/AlibabaPuHuiTi-3-55-Regular.otf: 阿里巴巴普惠体 3.0,Alibaba PuHuiTi 3.0,Alibaba PuHuiTi 3.0 55 Regular,阿里巴巴普惠体 3.0 55 Regular:style=55 Regular,Regular

而缺少AlibabaPuHuiTi-3-55-RegularL3.otf的信息...

注意到这两个字体的大小各不相同,使用otfinfo看看...

image.png

$ otfinfo -i AlibabaPuHuiTi-3-55-Regular.otf
Family:              Alibaba PuHuiTi 3.0 55 Regular
Subfamily:           Regular
Full name:           Alibaba PuHuiTi 3 55 Regular
PostScript name:     AlibabaPuHuiTi_3_55_Regular
Preferred family:    Alibaba PuHuiTi 3.0
Preferred subfamily: 55 Regular
Version:             Version 3.01
Unique ID:           Hanyi Alibaba-PuHuiTi-3-55-Regular v3.01
Description:         GB18030-2022 Level2
Designer:            Alibaba Design
Manufacturer:        Alibaba Design;Hanyi Fonts
Trademark:           Alibaba is a trademark of Alibaba Group Holding Limited.
Copyright:           Copyright © 2020-2023 Alibaba (China) Co., Ltd. All rights reserved.
Vendor ID:           HNYI
Permissions:         Preview & Print

以及

$ otfinfo -i AlibabaPuHuiTi-3-55-RegularL3.otf
Family:              Alibaba PuHuiTi 3.0 55 Regular L3
Subfamily:           Regular
Full name:           Alibaba PuHuiTi 3 55 Regular L3
PostScript name:     AlibabaPuHuiTi_3_55_Regular_L3
Preferred family:    Alibaba PuHuiTi 3.0
Preferred subfamily: 55 Regular L3
Version:             Version 3.00
Unique ID:           Hanyi Alibaba-PuHuiTi-3-55-Regular-L3 v3.00
Description:         GB18030-2022 Level3
Designer:            Alibaba Design
Manufacturer:        Alibaba Design;Hanyi Fonts
Trademark:           Alibaba is a trademark of Alibaba Group Holding Limited.
Copyright:           Copyright © 2020-2023 Alibaba (China) Co., Ltd. All rights reserved.
Vendor ID:           HNYI
Permissions:         Preview & Print

Edited

特别感谢Osbert Wang @u40 老师提出直接用字体的文件名

\documentclass{article}
\usepackage{xeCJK}
\xeCJKsetup{AutoFallBack=true}
\setCJKmainfont[FallBack=AlibabaPuHuiTi-3-55-RegularL3.otf]{AlibabaPuHuiTi-3-55-Regular.otf}

\begin{document}

正常测试

前𩩻后

\end{document}

image.png

Edited Again:

使用「FontCreator」查看字形预览:

image.png

image.png

duplicated: https://gitee.com/xkwxdyy/exam-zh/issues/ID9HGT


Remark:

  • 请正确使用markdown!!!
  • 注意提问的题目要对整个问题有概括作用,而不只是粘贴报错信息(已修改)

修改「.bst」是很坏的做法...因为可能在编辑那里就无法编译。这里有大量的沟通成本。

求己不如求人:

如果使用这些patch过的IEEEtran.bst,可以在「本地」解决这个问题...

image.png

描述问题要详细,最好给预期效果:

  • 什么是「居右」?
  • 什么是「自动换行」?
  • \newcommand{\HYXSQS}{}存在的意义是?

另外,我建议你不要在这里用titlesec...ctex原生提供了一套方法...

我到现在也不太明白何为「如何在居右的情况下,转行后“这”与“需”对齐」

\documentclass[fontset=fandol,openany]{ctexbook}
\usepackage[paperheight=15cm,showframe]{geometry}%
\usepackage{xcolor}
\usepackage{varwidth}
\newcommand{\HZSBH}{\sffamily\bfseries\color[cmyk]{1,1,0,0}\selectfont}
\newcommand\chaptertitleformat[1]{%
\begin{varwidth}[t]{.7\linewidth}#1\end{varwidth}}
\ctexset{
    chapter/number = \arabic{chapter},
    chapter/titleformat = \chaptertitleformat,
    chapter/format+ = {\raggedleft\HZSBH},
}
\begin{document}
\chapter{这是一个很长的章节标题需要自动换行}
\chapter{这是一个很长的章节标题\\需要手动换行}
\end{document}

image.png

\documentclass[titlepage]{article}
\newcommand{\mycontent}{??????}
\usepackage{magicwatermark}%% v1.2B  
  \MagicWatermark{
    setup = {
      pages   = {1-i},
      content = {\mycontent},
      style   = {
        shift = {(0,-.6\textheight)},
        scale = 3, 
        text  = cyan, 
        font  = \ttfamily
      } 
    }
  }
\usepackage{tikz}         
\usepackage{lipsum}

\makeatletter
% from Line 423~437 in article.cls
\renewenvironment{titlepage}
{%
  \if@twocolumn
    \@restonecoltrue\onecolumn
  \else
    \@restonecolfalse\newpage
  \fi
  \thispagestyle{empty}%
%   \setcounter{page}\@ne
    \setcounter{page}{0}
}%
{\if@restonecol\twocolumn \else \newpage \fi
 \if@twoside\else
    \setcounter{page}\@ne
 \fi
}
\makeatother

\begin{document}
\title{title}
\author{author}
\date{\today}
\maketitle

\section{Hello, Ben!}
\lipsum[1-10]
\section{Hello, Carl!}
\lipsum[1-20]
\section{Hello, David!}
\lipsum[1-15]

\end{document}

image.png

一个基于tkz-elements+tkz-euclide的方案如下:

% lualatex
\documentclass[tikz,border=5pt]{standalone}
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements}
\usepackage{fouriernc}
\directlua{
    init_elements()
    z.O = point(0, 0)
    z.F = point(1, 0)
    z.m = point(-1, 1)
    z.n = point(-1, -1)
    L.mn = line(z.m, z.n)
    CO.PA = conic(z.F, L.mn, 1)
    PA.curve = CO.PA:points(-6, 6, 100)
    slope = 1.1 -- you can modify the slope of Line.AB
    z.Fp = z.F + point(1,slope)
    L.AB = line(z.F, z.Fp)
    z.B, z.A = intersection(CO.PA, L.AB)
    z.Fpp = z.F:rotation( -math.pi / 2, z.Fp )
    L.CD = line(z.F, z.Fpp)
    z.C, z.D = intersection(CO.PA, L.CD)
}
\begin{document}
\begin{tikzpicture}
\tkzGetNodes
\tkzInit[xmin=-1,xmax=9,ymin=-6,ymax=4]
\tkzDrawX[noticks,thick]\tkzDrawY[noticks,thick]
\tkzDrawCoordinates[smooth,thick](PA.curve)
\tkzDrawSegments[thick](A,B C,D)
\tkzDrawPoints[blue](O,F,A,B,C,D)
\tkzLabelPoints[below left](O)
\tkzLabelPoints[below=3pt](A,D,F)
\tkzLabelPoints[right](B,C)
\end{tikzpicture}
\end{document}

image.png

一个显然的优点是方便控制「斜率参数」、「坐标轴长度」、「抛物线的焦点准线参数」等...

不过有点小瑕疵,如何使用一行命令控制全局的line width=1pt呢,不知为何\tkzSetUpLine并不能对图里的所有线都生效ε=( o`ω′)ノ

XeLaTeX下没有可以调整字体基线的方式,但是LuaLaTeX可以,详情可查阅luatex-ja的文档:

\documentclass{ctexart}
\setmainfont{Times New Roman}
% TeXpage:fandol-song + Time New Roman
\begin{document}

\bfseries

调整前:

1. 这是中文

1.1 这是中文

1.1.1 这是中文

\bigskip

调整后:

{
\ltjsetparameter{yjabaselineshift=-1pt}
2. 这是中文

2.1 这是中文

2.1.1 这是中文
}
\end{document}

image.png

请尽可能提供具体是如何解决的,否则这个页面的问题没有任何意义,对后来人无法提供任何帮助。

推荐阅读:https://lug.ustc.edu.cn/wiki/doc/smart-questions/#问题解决后加个简短的补充说明

具体是怎么不可更改,这与模板/主题的设置也有关系,请提供可以编译的完整代码

零个人知道你具体遇到了什么问题...

或许试试这个...

\documentclass[fontset=fandol,12pt]{ctexart}
% \xeCJKsetup{Verb=true}
\usepackage{tabularray}
\usepackage{codehigh}%
\usepackage[most]{tcolorbox}
\begin{document}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black}
\xeCJKVerbAddon
\verb|boxrule=<长度>| \verb|boxrule=<length>|%

\begin{verbatim}
boxrule=<长度> boxrule=<length>
\end{verbatim}

\begin{tblr}{l}%
\fakeverb{boxrule=<长度>} \fakeverb{boxrule=<length>}%
\end{tblr}%

\fakeverb{boxrule=<长度>} \fakeverb{boxrule=<length>}%

\texttt{boxrule=<长度>} \texttt{boxrule=<length>}%

\texttt{boxrule=<}长度\texttt{>} \texttt{boxrule=<length>}%
\xeCJKOffVerbAddon
\end{tcblisting}
\end{document}

image.png

我没有细看文档,但似乎「\SetArgSty」可以修改这里的样式

\SetArgSty{<font>} sets the argument typography (by default: emph).
\documentclass[fontset=fandol]{ctexart}
\usepackage{graphicx} % Required for inserting images
\usepackage[ruled,vlined,linesnumbered]{algorithm2e}
\usepackage{amsmath,amsfonts}

\begin{document}
\SetArgSty{textup}%
\section{Introduction}

\begin{algorithm}[H]
    \SetAlgoLined
    \KwData{this text}
    \KwResult{how to write algorithm with \LaTeX2e}
    \While{not at end of this document}{
        read current\; 
        \eIf{understand}{
        go to next section\;
        current section becomes this one\;
        }{
        go back to the beginning of current section\;
        }
    }
\end{algorithm}

\begin{algorithm}[htb]
    \SetAlgoLined
    \KwResult{每个时间步的参数$\theta$}
        \For{第$1,2,\dots,n$个时间步}{
        对上一步的态$|\psi(\theta_t) \rangle$作用时间演化算子$e^{-iH\Delta t}$,得参照态$e^{-iH\Delta t}|\psi(\theta_t) \rangle$ \;
        初始化$\theta = \theta_t$ \;
        求惩罚函数的梯度$\nabla_{\theta}C(\theta)$ \;
        \While{$|\nabla_{\theta}C(\theta)| > \text{grad}_{\text{tol}}$ 且 $\text{count} < \text{count}_{\text{max}}$}{
        根据梯度$\nabla_{\theta}C(\theta)$,利用ADAM优化器更新参数$\theta$ \;
        $\text{count}$加1 \;
        求惩罚函数的梯度$\nabla_{\theta}C(\theta)$ \;
        }
    }  
\end{algorithm}

\end{document}

嗯...因为我懒得读完全部文档...所以未必是好的实践...

发布
问题