问题描述
所以我必须用意大利语为我的实验班写我的实验报告。在课堂上,他们教我们如何使用 gnuplot 创建图形,所以我使用它来生成我们的图形,然后我需要将其放入我的乳胶文档中。问题是我必须将 y 轴上的标签设置为“veLocità”,然后当我将文件保存在 ps 中并转换为 pdf 时,“à”消失或被其他东西取代。我尝试做的是使用命令的变体
set encoding iso_8859_1
set ylabel "veLocit\340"
然后我使用 set term postscript color 保存绘图,设置输出“graf.ps”,重新绘图,并从 wsl 终端,使用 ps2pdf,我将其转换为 pdf,但是当我打开 pdf 时,字母 ' à' 不再出现,即使它确实显示在先前由 gnuplot 生成的图表中。我应该怎么办?万一,还有其他方法可以在我的乳胶文档中附加原始图形吗?
解决方法
Gnuplot 提供了几种 LaTeX 友好的终端类型。后记不是其中之一。 Postscript 的字符编码充其量是特殊的。如果您的目标是在 Latex 中包含 gnuplot 输出,请选择专为它设计的终端类型。某些终端类型(例如 cairolatex)只 使用 Latex 工作,因为它们依赖于 Latex 来完成所有文本处理。其他(例如 pdf、png、tikz)产生的输出与乳胶完全兼容,但已经嵌入了文本。最好对所有内容使用 UTF-8 编码,包括重音字符。例如:
struct TaskView:View{
@Binding var text:String
@State private var textHeight : CGFloat = 40
var body: some View{
HStack(alignment:.top,spacing:8){
Button(action: {
print("Test")
}){
Circle()
.strokeBorder(Color.gray,lineWidth: 1)
.background(Circle().foregroundColor(Color.white))
.frame(width:22,height: 22)
}
.buttonStyle(PlainButtonStyle())
FieldView(text: $text,heightToTransmit: $textHeight)
.frame(height: textHeight)
.border(Color.red)
}
.frame(maxWidth: .infinity,alignment: .leading)
.padding(EdgeInsets(top:10,leading:10,bottom: 10,trailing: 30))
.background(Color.white)
.cornerRadius(5)
}
}
struct FieldView : UIViewRepresentable {
@Binding var text : String
@Binding var heightToTransmit: CGFloat
func makeUIView(context: Context) -> UIView {
let view = UIView()
let textView = UITextView(frame: .zero,textContainer: nil)
textView.delegate = context.coordinator
textView.backgroundColor = .yellow // visual debugging
textView.isScrollEnabled = false // causes expanding height
context.coordinator.textView = textView
textView.text = text
view.addSubview(textView)
// Auto Layout
textView.translatesAutoresizingMaskIntoConstraints = false
let safeArea = view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
textView.topAnchor.constraint(equalTo: safeArea.topAnchor),textView.leadingAnchor.constraint(equalTo: safeArea.leadingAnchor),textView.trailingAnchor.constraint(equalTo: safeArea.trailingAnchor)
])
return view
}
func updateUIView(_ view: UIView,context: Context) {
context.coordinator.heightBinding = $heightToTransmit
context.coordinator.textBinding = $text
DispatchQueue.main.async {
context.coordinator.runSizing()
}
}
func makeCoordinator() -> Coordinator {
return Coordinator()
}
class Coordinator : NSObject,UITextViewDelegate {
var textBinding : Binding<String>?
var heightBinding : Binding<CGFloat>?
var textView : UITextView?
func runSizing() {
guard let textView = textView else { return }
textView.sizeToFit()
self.textBinding?.wrappedValue = textView.text
self.heightBinding?.wrappedValue = textView.frame.size.height
}
func textViewDidChange(_ textView: UITextView) {
runSizing()
}
}
}
然后在您的乳胶文档中,例如:
set term pdf size 7cm,5cm
set output 'myfigure.pdf'
set encoding utf8
set ylabel "velocità"
set xlabel "tempo"
plot [0:10] x**2 title "velocità"