如何排版物理问题及其解答

如何排版物理问题及其解答

我想要像这样排版物理解决方案:

示例1

它是乌克兰语的,但内容并不重要。

我想要有两列:

  • 左列应有两个单元格:一个具有给定值,另一个具有未知值。
  • 右栏中有一个解决方案。

应该有一条线将这两列分开。在给定值之后应该有一条水平线,将未知数分开。

在解决方案单元格中,用户应该能够编写格式化的文本、换行、文本居中、公式等。

我曾尝试使用表格和来实现这一点multicols,但这些尝试均未成功。

我的尝试的一个例子:

\documentclass[12pt]{article}

\usepackage{amsmath}

\usepackage{tabularray}

\begin{document}
    \begin{table}
        \centering
        \begin{tblr}{
                width = \linewidth,
                colspec = {Q[273]Q[273]},
                cells = {t},
                cell{1}{2} = {r=2}{},
                vline{2} = {-}{},
                hline{2} = {1}{},
            }
            \textbf{Givens}:
            
            $V$
            
            $V_0$
            
            $p$
            
            $p_0$
            
            $T = const$
            
            &
            \begin{center}
                \textbf{Solution}
            \end{center}
            
            Lorem ipsum... We got this formula:
            \[p_0V = p_1(V_0 + V)\]
            
            And then we got this:
            \[p_1 = \dfrac{p_0V}{V_0 + V}\]
            
            ...
            
            \\
            $n\ =\ ?$
            &   
        \end{tblr}
    \end{table}
\end{document}

尽管如此,看起来还是不够理想。而且还会产生很多错误。

图像: 我的尝试

答案1

您可以使用wrapfig包在文档的左上角放置一个表格。解决方案文本将使用全文区域流动。

C

\documentclass{article}

\usepackage{wrapfig} % added <<<<<<<<<<<<<

\usepackage{amsmath}

\usepackage{lipsum}% dummy text <<<

%------------------------------------------
\begin{document}
    
    \setlength\parindent{0pt}
    %------------------------------------------
    \begin{wraptable}{l}{0pt} % left side, natural width \begin{wraptable}[number of text rows]{position}{width}
        \renewcommand{\arraystretch}{1.15} %optional
        \begin{tabular}{p{0.2\textwidth}|}  % wider rows
            \textbf{Givens}:\\          
            $V$\\       
            $V_0$\\     
            $p$\\       
            $p_0$\\     
            $T = const$\\ \hline    
            \rule{0pt}{1.5em} % this row higher
            $n\ =\ ?$
        \end{tabular}
    \end{wraptable}
    %------------------------------------------
        
    \hfill\textbf{Solution}\hfill
    \bigskip
    
    Lorem ipsum... We got this formula:
    \[p_0V = p_1(V_0 + V)\]
    
    And then we got this:
    \[p_1 = \dfrac{p_0V}{V_0 + V}\]     
    
    \lipsum[2] 

\end{document}

为了使解决方案保持在右侧,例如使用

\begin{wraptable}[46]{l}{0pt}

延长wraptable至文本区域的末尾。

d

替代解决方案使用该paracol包写两列。

X

\documentclass{article}

\usepackage{amsmath}

\usepackage{paracol}% added <<<<<<<<<

\usepackage{lipsum}% dummy text <<<  
    
\begin{document}
    \setlength{\columnseprule}{0.5pt}  % width of the vertical rule
    \columnratio{0.2} % column ratio
    \setlength{\columnsep}{20pt}  % column separation
    \setlength{\parindent}{0pt}
    
    \begin{paracol}{2}\sloppy   
        \renewcommand{\arraystretch}{1.2} %optional
        \begin{tabular}{p{0.2\textwidth}}   % wider rows
            \textbf{Givens}:\\          
            $V$\\       
            $V_0$\\ 
            $p$\\       
            $p_0$\\     
            $T = const$\\[-2ex] \rule{\dimexpr\columnwidth-\tabcolsep+0.5\columnsep}{0.5pt} 
            $n\ =\ ?$
        \end{tabular}
        
        \switchcolumn  % to right column

         \begin{center}
            \textbf{Solution}
        \end{center}
        
        Lorem ipsum... We got this formula:
        \[p_0V = p_1(V_0 + V)\]
        
        And then we got this:
        \[p_1 = \dfrac{p_0V}{V_0 + V}\]     
        
        \lipsum[2-6] 
    \end{paracol}
    
\end{document}

相关内容